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_LINUX_MSM_CAM_SENSOR_H
20 #define __UAPI_LINUX_MSM_CAM_SENSOR_H
21 #include <linux/v4l2-mediabus.h>
22 #include <media/msm_camsensor_sdk.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <linux/types.h>
25 #include <linux/i2c.h>
26 #define I2C_SEQ_REG_SETTING_MAX 5
27 #define MSM_SENSOR_MCLK_8HZ 8000000
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define MSM_SENSOR_MCLK_16HZ 16000000
30 #define MSM_SENSOR_MCLK_24HZ 24000000
31 #define MAX_SENSOR_NAME 32
32 #define MAX_ACTUATOR_AF_TOTAL_STEPS 1024
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define MAX_OIS_MOD_NAME_SIZE 32
35 #define MAX_OIS_NAME_SIZE 32
36 #define MAX_OIS_REG_SETTINGS 800
37 #define MOVE_NEAR 0
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define MOVE_FAR 1
40 #define MSM_ACTUATOR_MOVE_SIGNED_FAR - 1
41 #define MSM_ACTUATOR_MOVE_SIGNED_NEAR 1
42 #define MAX_ACTUATOR_REGION 5
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define MAX_EEPROM_NAME 32
45 #define MAX_AF_ITERATIONS 3
46 #define MAX_NUMBER_OF_STEPS 47
47 #define MAX_REGULATOR 5
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
50 #define MSM_V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4')
51 #define MSM_V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4')
52 #define MSM_V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4')
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define MSM_V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4')
55 enum flash_type {
56   LED_FLASH = 1,
57   STROBE_FLASH,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   GPIO_FLASH
60 };
61 enum msm_sensor_resolution_t {
62   MSM_SENSOR_RES_FULL,
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   MSM_SENSOR_RES_QTR,
65   MSM_SENSOR_RES_2,
66   MSM_SENSOR_RES_3,
67   MSM_SENSOR_RES_4,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69   MSM_SENSOR_RES_5,
70   MSM_SENSOR_RES_6,
71   MSM_SENSOR_RES_7,
72   MSM_SENSOR_INVALID_RES,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 };
75 enum msm_camera_stream_type_t {
76   MSM_CAMERA_STREAM_PREVIEW,
77   MSM_CAMERA_STREAM_SNAPSHOT,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   MSM_CAMERA_STREAM_VIDEO,
80   MSM_CAMERA_STREAM_INVALID,
81 };
82 enum sensor_sub_module_t {
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   SUB_MODULE_SENSOR,
85   SUB_MODULE_CHROMATIX,
86   SUB_MODULE_ACTUATOR,
87   SUB_MODULE_EEPROM,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89   SUB_MODULE_LED_FLASH,
90   SUB_MODULE_STROBE_FLASH,
91   SUB_MODULE_CSID,
92   SUB_MODULE_CSID_3D,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   SUB_MODULE_CSIPHY,
95   SUB_MODULE_CSIPHY_3D,
96   SUB_MODULE_OIS,
97   SUB_MODULE_EXT,
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   SUB_MODULE_MAX,
100 };
101 enum {
102   MSM_CAMERA_EFFECT_MODE_OFF,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   MSM_CAMERA_EFFECT_MODE_MONO,
105   MSM_CAMERA_EFFECT_MODE_NEGATIVE,
106   MSM_CAMERA_EFFECT_MODE_SOLARIZE,
107   MSM_CAMERA_EFFECT_MODE_SEPIA,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109   MSM_CAMERA_EFFECT_MODE_POSTERIZE,
110   MSM_CAMERA_EFFECT_MODE_WHITEBOARD,
111   MSM_CAMERA_EFFECT_MODE_BLACKBOARD,
112   MSM_CAMERA_EFFECT_MODE_AQUA,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   MSM_CAMERA_EFFECT_MODE_EMBOSS,
115   MSM_CAMERA_EFFECT_MODE_SKETCH,
116   MSM_CAMERA_EFFECT_MODE_NEON,
117   MSM_CAMERA_EFFECT_MODE_MAX
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 };
120 enum {
121   MSM_CAMERA_WB_MODE_AUTO,
122   MSM_CAMERA_WB_MODE_CUSTOM,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   MSM_CAMERA_WB_MODE_INCANDESCENT,
125   MSM_CAMERA_WB_MODE_FLUORESCENT,
126   MSM_CAMERA_WB_MODE_WARM_FLUORESCENT,
127   MSM_CAMERA_WB_MODE_DAYLIGHT,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   MSM_CAMERA_WB_MODE_CLOUDY_DAYLIGHT,
130   MSM_CAMERA_WB_MODE_TWILIGHT,
131   MSM_CAMERA_WB_MODE_SHADE,
132   MSM_CAMERA_WB_MODE_OFF,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   MSM_CAMERA_WB_MODE_MAX
135 };
136 enum {
137   MSM_CAMERA_SCENE_MODE_OFF,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   MSM_CAMERA_SCENE_MODE_AUTO,
140   MSM_CAMERA_SCENE_MODE_LANDSCAPE,
141   MSM_CAMERA_SCENE_MODE_SNOW,
142   MSM_CAMERA_SCENE_MODE_BEACH,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   MSM_CAMERA_SCENE_MODE_SUNSET,
145   MSM_CAMERA_SCENE_MODE_NIGHT,
146   MSM_CAMERA_SCENE_MODE_PORTRAIT,
147   MSM_CAMERA_SCENE_MODE_BACKLIGHT,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   MSM_CAMERA_SCENE_MODE_SPORTS,
150   MSM_CAMERA_SCENE_MODE_ANTISHAKE,
151   MSM_CAMERA_SCENE_MODE_FLOWERS,
152   MSM_CAMERA_SCENE_MODE_CANDLELIGHT,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   MSM_CAMERA_SCENE_MODE_FIREWORKS,
155   MSM_CAMERA_SCENE_MODE_PARTY,
156   MSM_CAMERA_SCENE_MODE_NIGHT_PORTRAIT,
157   MSM_CAMERA_SCENE_MODE_THEATRE,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   MSM_CAMERA_SCENE_MODE_ACTION,
160   MSM_CAMERA_SCENE_MODE_AR,
161   MSM_CAMERA_SCENE_MODE_FACE_PRIORITY,
162   MSM_CAMERA_SCENE_MODE_BARCODE,
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   MSM_CAMERA_SCENE_MODE_HDR,
165   MSM_CAMERA_SCENE_MODE_MAX
166 };
167 enum csid_cfg_type_t {
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   CSID_INIT,
170   CSID_CFG,
171   CSID_TESTMODE_CFG,
172   CSID_RELEASE,
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 };
175 enum csiphy_cfg_type_t {
176   CSIPHY_INIT,
177   CSIPHY_CFG,
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   CSIPHY_RELEASE,
180 };
181 enum camera_vreg_type {
182   VREG_TYPE_DEFAULT,
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   VREG_TYPE_CUSTOM,
185 };
186 enum sensor_af_t {
187   SENSOR_AF_FOCUSSED,
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   SENSOR_AF_NOT_FOCUSSED,
190 };
191 enum cci_i2c_master_t {
192   MASTER_0,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   MASTER_1,
195   MASTER_MAX,
196 };
197 struct msm_camera_i2c_array_write_config {
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   struct msm_camera_i2c_reg_setting conf_array;
200   uint16_t slave_addr;
201 };
202 struct msm_camera_i2c_read_config {
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   uint16_t slave_addr;
205   uint16_t reg_addr;
206   enum msm_camera_i2c_reg_addr_type addr_type;
207   enum msm_camera_i2c_data_type data_type;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   uint16_t data;
210 };
211 struct msm_camera_csi2_params {
212   struct msm_camera_csid_params csid_params;
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214   struct msm_camera_csiphy_params csiphy_params;
215   uint8_t csi_clk_scale_enable;
216 };
217 struct msm_camera_csi_lane_params {
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219   uint16_t csi_lane_assign;
220   uint16_t csi_lane_mask;
221 };
222 struct csi_lane_params_t {
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224   uint16_t csi_lane_assign;
225   uint8_t csi_lane_mask;
226   uint8_t csi_if;
227   int8_t csid_core[2];
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229   uint8_t csi_phy_sel;
230 };
231 struct msm_sensor_info_t {
232   char sensor_name[MAX_SENSOR_NAME];
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   uint32_t session_id;
235   int32_t subdev_id[SUB_MODULE_MAX];
236   int32_t subdev_intf[SUB_MODULE_MAX];
237   uint8_t is_mount_angle_valid;
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   uint32_t sensor_mount_angle;
240   int modes_supported;
241   enum camb_position_t position;
242 };
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 struct camera_vreg_t {
245   const char * reg_name;
246   int min_voltage;
247   int max_voltage;
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   int op_mode;
250   uint32_t delay;
251   const char * custom_vreg_name;
252   enum camera_vreg_type type;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 };
255 struct sensorb_cfg_data {
256   int cfgtype;
257   union {
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259     struct msm_sensor_info_t sensor_info;
260     struct msm_sensor_init_params sensor_init_params;
261     void * setting;
262     struct msm_sensor_i2c_sync_params sensor_i2c_sync_params;
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   } cfg;
265 };
266 struct csid_cfg_data {
267   enum csid_cfg_type_t cfgtype;
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   union {
270     uint32_t csid_version;
271     struct msm_camera_csid_params * csid_params;
272     struct msm_camera_csid_testmode_parms * csid_testmode_params;
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   } cfg;
275 };
276 struct csiphy_cfg_data {
277   enum csiphy_cfg_type_t cfgtype;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   union {
280     struct msm_camera_csiphy_params * csiphy_params;
281     struct msm_camera_csi_lane_params * csi_lane_params;
282   } cfg;
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 };
285 enum eeprom_cfg_type_t {
286   CFG_EEPROM_GET_INFO,
287   CFG_EEPROM_GET_CAL_DATA,
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   CFG_EEPROM_READ_CAL_DATA,
290   CFG_EEPROM_WRITE_DATA,
291   CFG_EEPROM_GET_MM_INFO,
292   CFG_EEPROM_INIT,
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 };
295 struct eeprom_get_t {
296   uint32_t num_bytes;
297 };
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 struct eeprom_read_t {
300   uint8_t * dbuffer;
301   uint32_t num_bytes;
302 };
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 struct eeprom_write_t {
305   uint8_t * dbuffer;
306   uint32_t num_bytes;
307 };
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 struct eeprom_get_cmm_t {
310   uint32_t cmm_support;
311   uint32_t cmm_compression;
312   uint32_t cmm_size;
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 };
315 struct msm_eeprom_info_t {
316   struct msm_sensor_power_setting_array * power_setting_array;
317   enum i2c_freq_mode_t i2c_freq_mode;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   struct msm_eeprom_memory_map_array * mem_map_array;
320 };
321 struct msm_eeprom_cfg_data {
322   enum eeprom_cfg_type_t cfgtype;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324   uint8_t is_supported;
325   union {
326     char eeprom_name[MAX_SENSOR_NAME];
327     struct eeprom_get_t get_data;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329     struct eeprom_read_t read_data;
330     struct eeprom_write_t write_data;
331     struct eeprom_get_cmm_t get_cmm_data;
332     struct msm_eeprom_info_t eeprom_info;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   } cfg;
335 };
336 enum msm_sensor_cfg_type_t {
337   CFG_SET_SLAVE_INFO,
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   CFG_SLAVE_READ_I2C,
340   CFG_WRITE_I2C_ARRAY,
341   CFG_SLAVE_WRITE_I2C_ARRAY,
342   CFG_WRITE_I2C_SEQ_ARRAY,
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   CFG_POWER_UP,
345   CFG_POWER_DOWN,
346   CFG_SET_STOP_STREAM_SETTING,
347   CFG_GET_SENSOR_INFO,
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   CFG_GET_SENSOR_INIT_PARAMS,
350   CFG_SET_INIT_SETTING,
351   CFG_SET_RESOLUTION,
352   CFG_SET_STOP_STREAM,
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   CFG_SET_START_STREAM,
355   CFG_SET_SATURATION,
356   CFG_SET_CONTRAST,
357   CFG_SET_SHARPNESS,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   CFG_SET_ISO,
360   CFG_SET_EXPOSURE_COMPENSATION,
361   CFG_SET_ANTIBANDING,
362   CFG_SET_BESTSHOT_MODE,
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   CFG_SET_EFFECT,
365   CFG_SET_WHITE_BALANCE,
366   CFG_SET_AUTOFOCUS,
367   CFG_CANCEL_AUTOFOCUS,
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369   CFG_SET_STREAM_TYPE,
370   CFG_SET_I2C_SYNC_PARAM,
371   CFG_WRITE_I2C_ARRAY_ASYNC,
372   CFG_WRITE_I2C_ARRAY_SYNC,
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374   CFG_WRITE_I2C_ARRAY_SYNC_BLOCK,
375 };
376 enum msm_actuator_cfg_type_t {
377   CFG_GET_ACTUATOR_INFO,
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379   CFG_SET_ACTUATOR_INFO,
380   CFG_SET_DEFAULT_FOCUS,
381   CFG_MOVE_FOCUS,
382   CFG_SET_POSITION,
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384   CFG_ACTUATOR_POWERDOWN,
385   CFG_ACTUATOR_POWERUP,
386   CFG_ACTUATOR_INIT,
387 };
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 enum msm_ois_cfg_type_t {
390   CFG_OIS_INIT,
391   CFG_OIS_POWERDOWN,
392   CFG_OIS_POWERUP,
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394   CFG_OIS_CONTROL,
395   CFG_OIS_I2C_WRITE_SEQ_TABLE,
396 };
397 enum msm_ois_i2c_operation {
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399   MSM_OIS_WRITE = 0,
400   MSM_OIS_POLL,
401 };
402 struct reg_settings_ois_t {
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404   uint16_t reg_addr;
405   enum msm_camera_i2c_reg_addr_type addr_type;
406   uint32_t reg_data;
407   enum msm_camera_i2c_data_type data_type;
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409   enum msm_ois_i2c_operation i2c_operation;
410   uint32_t delay;
411 };
412 struct msm_ois_params_t {
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414   uint16_t data_size;
415   uint16_t setting_size;
416   uint32_t i2c_addr;
417   enum i2c_freq_mode_t i2c_freq_mode;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419   enum msm_camera_i2c_reg_addr_type i2c_addr_type;
420   enum msm_camera_i2c_data_type i2c_data_type;
421   struct reg_settings_ois_t * settings;
422 };
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 struct msm_ois_set_info_t {
425   struct msm_ois_params_t ois_params;
426 };
427 struct msm_actuator_move_params_t {
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429   int8_t dir;
430   int8_t sign_dir;
431   int16_t dest_step_pos;
432   int32_t num_steps;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   uint16_t curr_lens_pos;
435   struct damping_params_t * ringing_params;
436 };
437 struct msm_actuator_tuning_params_t {
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   int16_t initial_code;
440   uint16_t pwd_step;
441   uint16_t region_size;
442   uint32_t total_steps;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   struct region_params_t * region_params;
445 };
446 struct park_lens_data_t {
447   uint32_t damping_step;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   uint32_t damping_delay;
450   uint32_t hw_params;
451   uint32_t max_step;
452 };
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454 struct msm_actuator_params_t {
455   enum actuator_type act_type;
456   uint8_t reg_tbl_size;
457   uint16_t data_size;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459   uint16_t init_setting_size;
460   uint32_t i2c_addr;
461   enum i2c_freq_mode_t i2c_freq_mode;
462   enum msm_camera_i2c_reg_addr_type i2c_addr_type;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   enum msm_camera_i2c_data_type i2c_data_type;
465   struct msm_actuator_reg_params_t * reg_tbl_params;
466   struct reg_settings_t * init_settings;
467   struct park_lens_data_t park_lens;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469 };
470 struct msm_actuator_set_info_t {
471   struct msm_actuator_params_t actuator_params;
472   struct msm_actuator_tuning_params_t af_tuning_params;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474 };
475 struct msm_actuator_get_info_t {
476   uint32_t focal_length_num;
477   uint32_t focal_length_den;
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   uint32_t f_number_num;
480   uint32_t f_number_den;
481   uint32_t f_pix_num;
482   uint32_t f_pix_den;
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   uint32_t total_f_dist_num;
485   uint32_t total_f_dist_den;
486   uint32_t hor_view_angle_num;
487   uint32_t hor_view_angle_den;
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   uint32_t ver_view_angle_num;
490   uint32_t ver_view_angle_den;
491 };
492 enum af_camera_name {
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   ACTUATOR_MAIN_CAM_0,
495   ACTUATOR_MAIN_CAM_1,
496   ACTUATOR_MAIN_CAM_2,
497   ACTUATOR_MAIN_CAM_3,
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499   ACTUATOR_MAIN_CAM_4,
500   ACTUATOR_MAIN_CAM_5,
501   ACTUATOR_WEB_CAM_0,
502   ACTUATOR_WEB_CAM_1,
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504   ACTUATOR_WEB_CAM_2,
505 };
506 struct msm_ois_cfg_data {
507   int cfgtype;
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509   union {
510     struct msm_ois_set_info_t set_info;
511     struct msm_camera_i2c_seq_reg_setting * settings;
512   } cfg;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 };
515 struct msm_actuator_set_position_t {
516   uint16_t number_of_steps;
517   uint32_t hw_params;
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519   uint16_t pos[MAX_NUMBER_OF_STEPS];
520   uint16_t delay[MAX_NUMBER_OF_STEPS];
521 };
522 struct msm_actuator_cfg_data {
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524   int cfgtype;
525   uint8_t is_af_supported;
526   union {
527     struct msm_actuator_move_params_t move;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529     struct msm_actuator_set_info_t set_info;
530     struct msm_actuator_get_info_t get_info;
531     struct msm_actuator_set_position_t setpos;
532     enum af_camera_name cam_name;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534   } cfg;
535 };
536 enum msm_camera_led_config_t {
537   MSM_CAMERA_LED_OFF,
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   MSM_CAMERA_LED_LOW,
540   MSM_CAMERA_LED_HIGH,
541   MSM_CAMERA_LED_INIT,
542   MSM_CAMERA_LED_RELEASE,
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544 };
545 struct msm_camera_led_cfg_t {
546   enum msm_camera_led_config_t cfgtype;
547   int32_t torch_current[MAX_LED_TRIGGERS];
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549   int32_t flash_current[MAX_LED_TRIGGERS];
550   int32_t flash_duration[MAX_LED_TRIGGERS];
551 };
552 struct msm_flash_init_info_t {
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554   enum msm_flash_driver_type flash_driver_type;
555   uint32_t slave_addr;
556   enum i2c_freq_mode_t i2c_freq_mode;
557   struct msm_sensor_power_setting_array * power_setting_array;
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559   struct msm_camera_i2c_reg_setting_array * settings;
560 };
561 struct msm_flash_cfg_data_t {
562   enum msm_flash_cfg_type_t cfg_type;
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564   int32_t flash_current[MAX_LED_TRIGGERS];
565   int32_t flash_duration[MAX_LED_TRIGGERS];
566   union {
567     struct msm_flash_init_info_t * flash_init_info;
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569     struct msm_camera_i2c_reg_setting_array * settings;
570   } cfg;
571 };
572 enum msm_sensor_init_cfg_type_t {
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574   CFG_SINIT_PROBE,
575   CFG_SINIT_PROBE_DONE,
576   CFG_SINIT_PROBE_WAIT_DONE,
577 };
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579 struct sensor_init_cfg_data {
580   enum msm_sensor_init_cfg_type_t cfgtype;
581   struct msm_sensor_info_t probed_info;
582   char entity_name[MAX_SENSOR_NAME];
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584   union {
585     void * setting;
586   } cfg;
587 };
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589 #define VIDIOC_MSM_SENSOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
590 #define VIDIOC_MSM_SENSOR_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 2)
591 #define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
592 #define VIDIOC_MSM_CSIPHY_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data)
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594 #define VIDIOC_MSM_CSID_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data)
595 #define VIDIOC_MSM_ACTUATOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
596 #define VIDIOC_MSM_FLASH_LED_DATA_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
597 #define VIDIOC_MSM_EEPROM_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599 #define VIDIOC_MSM_SENSOR_GET_AF_STATUS _IOWR('V', BASE_VIDIOC_PRIVATE + 9, uint32_t)
600 #define VIDIOC_MSM_SENSOR_INIT_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data)
601 #define VIDIOC_MSM_OIS_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data)
602 #define VIDIOC_MSM_FLASH_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t)
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604 #endif
605 
606