1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_MEDIA_MSM_CAM_SENSOR_H
20 #define _UAPI_MEDIA_MSM_CAM_SENSOR_H
21 #ifdef MSM_CAMERA_BIONIC
22 #include <sys/types.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #endif
25 #include <linux/types.h>
26 #include <linux/v4l2-mediabus.h>
27 #include <linux/i2c.h>
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define I2C_SEQ_REG_SETTING_MAX 5
30 #define I2C_SEQ_REG_DATA_MAX 20
31 #define MAX_CID 16
32 #define MSM_SENSOR_MCLK_8HZ 8000000
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define MSM_SENSOR_MCLK_16HZ 16000000
35 #define MSM_SENSOR_MCLK_24HZ 24000000
36 #define GPIO_OUT_LOW (0 << 1)
37 #define GPIO_OUT_HIGH (1 << 1)
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define CSI_EMBED_DATA 0x12
40 #define CSI_RESERVED_DATA_0 0x13
41 #define CSI_YUV422_8 0x1E
42 #define CSI_RAW8 0x2A
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define CSI_RAW10 0x2B
45 #define CSI_RAW12 0x2C
46 #define CSI_DECODE_6BIT 0
47 #define CSI_DECODE_8BIT 1
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define CSI_DECODE_10BIT 2
50 #define CSI_DECODE_DPCM_10_8_10 5
51 #define MAX_SENSOR_NAME 32
52 #define MAX_ACT_MOD_NAME_SIZE 32
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define MAX_ACT_NAME_SIZE 32
55 #define NUM_ACTUATOR_DIR 2
56 #define MAX_ACTUATOR_SCENARIO 8
57 #define MAX_ACTUATOR_REGION 5
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define MAX_ACTUATOR_INIT_SET 12
60 #define MAX_ACTUATOR_REG_TBL_SIZE 8
61 #define MOVE_NEAR 0
62 #define MOVE_FAR 1
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define MAX_EEPROM_NAME 32
65 enum msm_camera_i2c_reg_addr_type {
66  MSM_CAMERA_I2C_BYTE_ADDR = 1,
67  MSM_CAMERA_I2C_WORD_ADDR,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 };
70 enum msm_camera_i2c_data_type {
71  MSM_CAMERA_I2C_BYTE_DATA = 1,
72  MSM_CAMERA_I2C_WORD_DATA,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  MSM_CAMERA_I2C_SET_BYTE_MASK,
75  MSM_CAMERA_I2C_UNSET_BYTE_MASK,
76  MSM_CAMERA_I2C_SET_WORD_MASK,
77  MSM_CAMERA_I2C_UNSET_WORD_MASK,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA,
80 };
81 enum msm_sensor_power_seq_type_t {
82  SENSOR_CLK,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  SENSOR_GPIO,
85  SENSOR_VREG,
86  SENSOR_I2C_MUX,
87 };
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 enum msm_sensor_clk_type_t {
90  SENSOR_CAM_MCLK,
91  SENSOR_CAM_CLK,
92  SENSOR_CAM_CLK_MAX,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 };
95 enum msm_sensor_power_seq_gpio_t {
96  SENSOR_GPIO_RESET,
97  SENSOR_GPIO_STANDBY,
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  SENSOR_GPIO_MAX,
100 };
101 enum msm_camera_vreg_name_t {
102  CAM_VDIG,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  CAM_VIO,
105  CAM_VANA,
106  CAM_VAF,
107  CAM_VREG_MAX,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 };
110 enum msm_sensor_resolution_t {
111  MSM_SENSOR_RES_FULL,
112  MSM_SENSOR_RES_QTR,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  MSM_SENSOR_RES_2,
115  MSM_SENSOR_RES_3,
116  MSM_SENSOR_RES_4,
117  MSM_SENSOR_RES_5,
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  MSM_SENSOR_RES_6,
120  MSM_SENSOR_RES_7,
121  MSM_SENSOR_INVALID_RES,
122 };
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 enum sensor_sub_module_t {
125  SUB_MODULE_SENSOR,
126  SUB_MODULE_CHROMATIX,
127  SUB_MODULE_ACTUATOR,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  SUB_MODULE_EEPROM,
130  SUB_MODULE_LED_FLASH,
131  SUB_MODULE_STROBE_FLASH,
132  SUB_MODULE_CSID,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  SUB_MODULE_CSID_3D,
135  SUB_MODULE_CSIPHY,
136  SUB_MODULE_CSIPHY_3D,
137  SUB_MODULE_MAX,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 };
140 enum csid_cfg_type_t {
141  CSID_INIT,
142  CSID_CFG,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  CSID_RELEASE,
145 };
146 enum csiphy_cfg_type_t {
147  CSIPHY_INIT,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  CSIPHY_CFG,
150  CSIPHY_RELEASE,
151 };
152 enum camera_vreg_type {
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  REG_LDO,
155  REG_VS,
156  REG_GPIO,
157 };
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 struct msm_sensor_power_setting {
160  enum msm_sensor_power_seq_type_t seq_type;
161  uint16_t seq_val;
162  long config_val;
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  uint16_t delay;
165  void *data[10];
166 };
167 struct msm_sensor_power_setting_array {
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  struct msm_sensor_power_setting *power_setting;
170  uint16_t size;
171 };
172 struct msm_sensor_id_info_t {
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  uint16_t sensor_id_reg_addr;
175  uint16_t sensor_id;
176 };
177 struct msm_camera_sensor_slave_info {
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  uint16_t slave_addr;
180  enum msm_camera_i2c_reg_addr_type addr_type;
181  struct msm_sensor_id_info_t sensor_id_info;
182  struct msm_sensor_power_setting_array power_setting_array;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184 };
185 struct msm_camera_i2c_reg_array {
186  uint16_t reg_addr;
187  uint16_t reg_data;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 };
190 struct msm_camera_i2c_reg_setting {
191  struct msm_camera_i2c_reg_array *reg_setting;
192  uint16_t size;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  enum msm_camera_i2c_reg_addr_type addr_type;
195  enum msm_camera_i2c_data_type data_type;
196  uint16_t delay;
197 };
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 struct msm_camera_i2c_seq_reg_array {
200  uint16_t reg_addr;
201  uint8_t reg_data[I2C_SEQ_REG_DATA_MAX];
202  uint16_t reg_data_size;
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 };
205 struct msm_camera_i2c_seq_reg_setting {
206  struct msm_camera_i2c_seq_reg_array *reg_setting;
207  uint16_t size;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  enum msm_camera_i2c_reg_addr_type addr_type;
210  uint16_t delay;
211 };
212 struct msm_camera_csid_vc_cfg {
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  uint8_t cid;
215  uint8_t dt;
216  uint8_t decode_format;
217 };
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 struct msm_camera_csid_lut_params {
220  uint8_t num_cid;
221  struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID];
222 };
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 struct msm_camera_csid_params {
225  uint8_t lane_cnt;
226  uint16_t lane_assign;
227  uint8_t phy_sel;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  struct msm_camera_csid_lut_params lut_params;
230 };
231 struct msm_camera_csiphy_params {
232  uint8_t lane_cnt;
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  uint8_t settle_cnt;
235  uint16_t lane_mask;
236  uint8_t combo_mode;
237 };
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 struct msm_camera_csi2_params {
240  struct msm_camera_csid_params csid_params;
241  struct msm_camera_csiphy_params csiphy_params;
242 };
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 struct msm_camera_csi_lane_params {
245  uint16_t csi_lane_assign;
246  uint16_t csi_lane_mask;
247 };
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 struct csi_lane_params_t {
250  uint16_t csi_lane_assign;
251  uint8_t csi_lane_mask;
252  uint8_t csi_if;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  uint8_t csid_core[2];
255  uint8_t csi_phy_sel;
256 };
257 struct msm_sensor_info_t {
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  char sensor_name[MAX_SENSOR_NAME];
260  int32_t session_id;
261  int32_t subdev_id[SUB_MODULE_MAX];
262 };
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 struct camera_vreg_t {
265  const char *reg_name;
266  enum camera_vreg_type type;
267  int min_voltage;
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  int max_voltage;
270  int op_mode;
271  uint32_t delay;
272 };
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 enum camb_position_t {
275  BACK_CAMERA_B,
276  FRONT_CAMERA_B,
277 };
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 enum camerab_mode_t {
280  CAMERA_MODE_2D_B = (1<<0),
281  CAMERA_MODE_3D_B = (1<<1)
282 };
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 struct msm_sensor_init_params {
285  int modes_supported;
286  enum camb_position_t position;
287  uint32_t sensor_mount_angle;
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 };
290 struct sensorb_cfg_data {
291  int cfgtype;
292  union {
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294  struct msm_sensor_info_t sensor_info;
295  struct msm_sensor_init_params sensor_init_params;
296  void *setting;
297  int8_t effect;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  uint8_t wb_val;
300  int8_t exp_compensation;
301  int8_t fps;
302  } cfg;
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 };
305 struct csid_cfg_data {
306  enum csid_cfg_type_t cfgtype;
307  union {
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309  uint32_t csid_version;
310  struct msm_camera_csid_params *csid_params;
311  } cfg;
312 };
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 struct csiphy_cfg_data {
315  enum csiphy_cfg_type_t cfgtype;
316  union {
317  struct msm_camera_csiphy_params *csiphy_params;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319  struct msm_camera_csi_lane_params *csi_lane_params;
320  } cfg;
321 };
322 enum eeprom_cfg_type_t {
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  CFG_EEPROM_GET_INFO,
325  CFG_EEPROM_GET_DATA,
326  CFG_EEPROM_READ_DATA,
327  CFG_EEPROM_WRITE_DATA,
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 };
330 struct eeprom_get_t {
331  uint16_t num_bytes;
332 };
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 struct eeprom_read_t {
335  uint8_t *dbuffer;
336  uint16_t num_bytes;
337 };
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 struct eeprom_write_t {
340  uint8_t *dbuffer;
341  uint16_t num_bytes;
342 };
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 struct msm_eeprom_cfg_data {
345  enum eeprom_cfg_type_t cfgtype;
346  uint8_t is_supported;
347  union {
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  char eeprom_name[MAX_SENSOR_NAME];
350  struct eeprom_get_t get_data;
351  struct eeprom_read_t read_data;
352  struct eeprom_write_t write_data;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  } cfg;
355 };
356 enum msm_sensor_cfg_type_t {
357  CFG_SET_SLAVE_INFO,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  CFG_WRITE_I2C_ARRAY,
360  CFG_WRITE_I2C_SEQ_ARRAY,
361  CFG_POWER_UP,
362  CFG_POWER_DOWN,
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  CFG_SET_STOP_STREAM_SETTING,
365  CFG_GET_SENSOR_INFO,
366  CFG_GET_SENSOR_INIT_PARAMS,
367  CFG_SET_INIT_SETTING,
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  CFG_SET_RESOLUTION,
370  CFG_SET_STOP_STREAM,
371  CFG_SET_START_STREAM,
372  CFG_SET_EFFECT,
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  CFG_SET_WB,
375  CFG_SET_FPS,
376  CFG_SET_EXPOSURE_COMPENSATION,
377 };
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 enum msm_actuator_cfg_type_t {
380  CFG_GET_ACTUATOR_INFO,
381  CFG_SET_ACTUATOR_INFO,
382  CFG_SET_DEFAULT_FOCUS,
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  CFG_MOVE_FOCUS,
385  CFG_ACTUATOR_POWERDOWN,
386 };
387 enum actuator_type {
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  ACTUATOR_VCM,
390  ACTUATOR_PIEZO,
391 };
392 enum msm_actuator_data_type {
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  MSM_ACTUATOR_BYTE_DATA = 1,
395  MSM_ACTUATOR_WORD_DATA,
396 };
397 enum msm_actuator_addr_type {
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  MSM_ACTUATOR_BYTE_ADDR = 1,
400  MSM_ACTUATOR_WORD_ADDR,
401 };
402 struct reg_settings_t {
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  uint16_t reg_addr;
405  uint16_t reg_data;
406 };
407 struct region_params_t {
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  uint16_t step_bound[2];
410  uint16_t code_per_step;
411 };
412 struct damping_params_t {
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  uint32_t damping_step;
415  uint32_t damping_delay;
416  uint32_t hw_params;
417 };
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 struct msm_actuator_move_params_t {
420  int8_t dir;
421  int8_t sign_dir;
422  int16_t dest_step_pos;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  int32_t num_steps;
425  struct damping_params_t *ringing_params;
426 };
427 struct msm_actuator_tuning_params_t {
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  int16_t initial_code;
430  uint16_t pwd_step;
431  uint16_t region_size;
432  uint32_t total_steps;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  struct region_params_t *region_params;
435 };
436 struct msm_actuator_params_t {
437  enum actuator_type act_type;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  uint8_t reg_tbl_size;
440  uint16_t data_size;
441  uint16_t init_setting_size;
442  uint32_t i2c_addr;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  enum msm_actuator_addr_type i2c_addr_type;
445  enum msm_actuator_data_type i2c_data_type;
446  struct msm_actuator_reg_params_t *reg_tbl_params;
447  struct reg_settings_t *init_settings;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449 };
450 struct msm_actuator_set_info_t {
451  struct msm_actuator_params_t actuator_params;
452  struct msm_actuator_tuning_params_t af_tuning_params;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 };
455 struct msm_actuator_get_info_t {
456  uint32_t focal_length_num;
457  uint32_t focal_length_den;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  uint32_t f_number_num;
460  uint32_t f_number_den;
461  uint32_t f_pix_num;
462  uint32_t f_pix_den;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  uint32_t total_f_dist_num;
465  uint32_t total_f_dist_den;
466  uint32_t hor_view_angle_num;
467  uint32_t hor_view_angle_den;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  uint32_t ver_view_angle_num;
470  uint32_t ver_view_angle_den;
471 };
472 enum af_camera_name {
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  ACTUATOR_MAIN_CAM_0,
475  ACTUATOR_MAIN_CAM_1,
476  ACTUATOR_MAIN_CAM_2,
477  ACTUATOR_MAIN_CAM_3,
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  ACTUATOR_MAIN_CAM_4,
480  ACTUATOR_MAIN_CAM_5,
481  ACTUATOR_WEB_CAM_0,
482  ACTUATOR_WEB_CAM_1,
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  ACTUATOR_WEB_CAM_2,
485 };
486 #define CAMERA_EFFECT_OFF 0
487 #define CAMERA_EFFECT_MONO 1
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 #define CAMERA_EFFECT_NEGATIVE 2
490 #define CAMERA_EFFECT_SOLARIZE 3
491 #define CAMERA_EFFECT_SEPIA 4
492 #define CAMERA_EFFECT_POSTERIZE 5
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 #define CAMERA_EFFECT_WHITEBOARD 6
495 #define CAMERA_EFFECT_BLACKBOARD 7
496 #define CAMERA_EFFECT_AQUA 8
497 #define CAMERA_EFFECT_EMBOSS 9
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499 #define CAMERA_EFFECT_SKETCH 10
500 #define CAMERA_EFFECT_NEON 11
501 #define CAMERA_EFFECT_MAX 12
502 #define YUV_CAMERA_WB_AUTO 0
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 #define YUV_CAMERA_WB_CUSTOM 1
505 #define YUV_CAMERA_WB_INCANDESCENT 2
506 #define YUV_CAMERA_WB_FLUORESCENT 3
507 #define YUV_CAMERA_WB_WARM_FLUORESCENT 4
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 #define YUV_CAMERA_WB_DAYLIGHT 5
510 #define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6
511 #define YUV_CAMERA_WB_TWILIGHT 7
512 #define YUV_CAMERA_WB_SHADE 8
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 #define CAMERA_EXPOSURE_COMPENSATION_LV0 12
515 #define CAMERA_EXPOSURE_COMPENSATION_LV1 6
516 #define CAMERA_EXPOSURE_COMPENSATION_LV2 0
517 #define CAMERA_EXPOSURE_COMPENSATION_LV3 -6
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 #define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
520 #define CAMERA_FPS_FIX_30 30
521 #define CAMERA_FPS_FIX_25 25
522 #define CAMERA_FPS_FIX_24 24
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 #define CAMERA_FPS_FIX_20 20
525 #define CAMERA_FPS_FIX_15 15
526 #define CAMERA_FPS_AUTO_30 0
527 struct msm_actuator_cfg_data {
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529  int cfgtype;
530  uint8_t is_af_supported;
531  union {
532  struct msm_actuator_move_params_t move;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  struct msm_actuator_set_info_t set_info;
535  struct msm_actuator_get_info_t get_info;
536  enum af_camera_name cam_name;
537  } cfg;
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539 };
540 enum msm_actuator_write_type {
541  MSM_ACTUATOR_WRITE_HW_DAMP,
542  MSM_ACTUATOR_WRITE_DAC,
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544 };
545 struct msm_actuator_reg_params_t {
546  enum msm_actuator_write_type reg_write_type;
547  uint32_t hw_mask;
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  uint16_t reg_addr;
550  uint16_t hw_shift;
551  uint16_t data_shift;
552 };
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554 enum msm_camera_led_config_t {
555  MSM_CAMERA_LED_OFF,
556  MSM_CAMERA_LED_LOW,
557  MSM_CAMERA_LED_HIGH,
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  MSM_CAMERA_LED_INIT,
560  MSM_CAMERA_LED_RELEASE,
561 };
562 struct msm_camera_led_cfg_t {
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  enum msm_camera_led_config_t cfgtype;
565 };
566 #define VIDIOC_MSM_SENSOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
567 #define VIDIOC_MSM_SENSOR_RELEASE   _IO('V', BASE_VIDIOC_PRIVATE + 2)
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569 #define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
570 #define VIDIOC_MSM_CSIPHY_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csid_cfg_data)
571 #define VIDIOC_MSM_CSID_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csiphy_cfg_data)
572 #define VIDIOC_MSM_ACTUATOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574 #define VIDIOC_MSM_FLASH_LED_DATA_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
575 #define VIDIOC_MSM_EEPROM_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
576 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
577 #define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0')
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579 #endif
580