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