Home | History | Annotate | Download | only in media
      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/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 256
     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 MAX_ACTUATOR_AF_TOTAL_STEPS 1024
     62 #define MAX_OIS_MOD_NAME_SIZE 32
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64 #define MAX_OIS_NAME_SIZE 32
     65 #define MAX_OIS_REG_SETTINGS 800
     66 #define MOVE_NEAR 0
     67 #define MOVE_FAR 1
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69 #define MSM_ACTUATOR_MOVE_SIGNED_FAR -1
     70 #define MSM_ACTUATOR_MOVE_SIGNED_NEAR 1
     71 #define MAX_EEPROM_NAME 32
     72 #define MAX_AF_ITERATIONS 3
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74 #define MAX_NUMBER_OF_STEPS 47
     75 #define MAX_LED_TRIGGERS 3
     76 #define MAX_POWER_CONFIG 12
     77 enum sensor_stats_type {
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79  YRGB,
     80  YYYY,
     81 };
     82 enum flash_type {
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84  LED_FLASH = 1,
     85  STROBE_FLASH,
     86  GPIO_FLASH
     87 };
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89 enum msm_camera_i2c_reg_addr_type {
     90  MSM_CAMERA_I2C_BYTE_ADDR = 1,
     91  MSM_CAMERA_I2C_WORD_ADDR,
     92  MSM_CAMERA_I2C_3B_ADDR,
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94  MSM_CAMERA_I2C_ADDR_TYPE_MAX,
     95 };
     96 enum msm_camera_i2c_data_type {
     97  MSM_CAMERA_I2C_BYTE_DATA = 1,
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99  MSM_CAMERA_I2C_WORD_DATA,
    100  MSM_CAMERA_I2C_DWORD_DATA,
    101  MSM_CAMERA_I2C_SET_BYTE_MASK,
    102  MSM_CAMERA_I2C_UNSET_BYTE_MASK,
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104  MSM_CAMERA_I2C_SET_WORD_MASK,
    105  MSM_CAMERA_I2C_UNSET_WORD_MASK,
    106  MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA,
    107  MSM_CAMERA_I2C_DATA_TYPE_MAX,
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109 };
    110 enum msm_sensor_power_seq_type_t {
    111  SENSOR_CLK,
    112  SENSOR_GPIO,
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114  SENSOR_VREG,
    115  SENSOR_I2C_MUX,
    116 };
    117 enum msm_sensor_clk_type_t {
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119  SENSOR_CAM_MCLK,
    120  SENSOR_CAM_CLK,
    121  SENSOR_CAM_CLK_MAX,
    122 };
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124 enum msm_sensor_power_seq_gpio_t {
    125  SENSOR_GPIO_RESET,
    126  SENSOR_GPIO_STANDBY,
    127  SENSOR_GPIO_AF_PWDM,
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129  SENSOR_GPIO_VIO,
    130  SENSOR_GPIO_VANA,
    131  SENSOR_GPIO_VDIG,
    132  SENSOR_GPIO_VAF,
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134  SENSOR_GPIO_FL_EN,
    135  SENSOR_GPIO_FL_NOW,
    136  SENSOR_GPIO_TOR_EN,
    137  SENSOR_GPIO_MAX,
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139 };
    140 enum msm_camera_vreg_name_t {
    141  CAM_VDIG,
    142  CAM_VIO,
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144  CAM_VANA,
    145  CAM_VAF,
    146  CAM_VREG_MAX,
    147 };
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149 enum msm_sensor_resolution_t {
    150  MSM_SENSOR_RES_FULL,
    151  MSM_SENSOR_RES_QTR,
    152  MSM_SENSOR_RES_2,
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154  MSM_SENSOR_RES_3,
    155  MSM_SENSOR_RES_4,
    156  MSM_SENSOR_RES_5,
    157  MSM_SENSOR_RES_6,
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159  MSM_SENSOR_RES_7,
    160  MSM_SENSOR_INVALID_RES,
    161 };
    162 enum msm_camera_stream_type_t {
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164  MSM_CAMERA_STREAM_PREVIEW,
    165  MSM_CAMERA_STREAM_SNAPSHOT,
    166  MSM_CAMERA_STREAM_VIDEO,
    167  MSM_CAMERA_STREAM_INVALID,
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169 };
    170 enum sensor_sub_module_t {
    171  SUB_MODULE_SENSOR,
    172  SUB_MODULE_CHROMATIX,
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174  SUB_MODULE_ACTUATOR,
    175  SUB_MODULE_EEPROM,
    176  SUB_MODULE_LED_FLASH,
    177  SUB_MODULE_STROBE_FLASH,
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179  SUB_MODULE_CSID,
    180  SUB_MODULE_CSID_3D,
    181  SUB_MODULE_CSIPHY,
    182  SUB_MODULE_CSIPHY_3D,
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184  SUB_MODULE_OIS,
    185  SUB_MODULE_MAX,
    186 };
    187 struct otp_info_t {
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189  uint8_t enable;
    190  uint16_t page_size;
    191  uint16_t num_of_pages;
    192  uint16_t page_reg_addr;
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194  uint16_t page_reg_base_addr;
    195  uint16_t ctrl_reg_addr;
    196  uint16_t ctrl_reg_read_mode;
    197  uint16_t status_reg_addr;
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199  uint16_t status_reg_read_complete_bit;
    200  uint16_t reset_reg_addr;
    201  uint16_t reset_reg_stream_on;
    202  uint16_t reset_reg_stream_off;
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204  uint16_t data_seg_addr;
    205  enum msm_camera_i2c_data_type data_size;
    206  uint8_t big_endian;
    207  uint8_t poll_times;
    208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    209  uint16_t poll_usleep;
    210  uint8_t *otp_info;
    211  uint8_t otp_read;
    212 };
    213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    214 enum {
    215  MSM_CAMERA_EFFECT_MODE_OFF,
    216  MSM_CAMERA_EFFECT_MODE_MONO,
    217  MSM_CAMERA_EFFECT_MODE_NEGATIVE,
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219  MSM_CAMERA_EFFECT_MODE_SOLARIZE,
    220  MSM_CAMERA_EFFECT_MODE_SEPIA,
    221  MSM_CAMERA_EFFECT_MODE_POSTERIZE,
    222  MSM_CAMERA_EFFECT_MODE_WHITEBOARD,
    223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    224  MSM_CAMERA_EFFECT_MODE_BLACKBOARD,
    225  MSM_CAMERA_EFFECT_MODE_AQUA,
    226  MSM_CAMERA_EFFECT_MODE_EMBOSS,
    227  MSM_CAMERA_EFFECT_MODE_SKETCH,
    228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    229  MSM_CAMERA_EFFECT_MODE_NEON,
    230  MSM_CAMERA_EFFECT_MODE_MAX
    231 };
    232 enum {
    233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    234  MSM_CAMERA_WB_MODE_AUTO,
    235  MSM_CAMERA_WB_MODE_CUSTOM,
    236  MSM_CAMERA_WB_MODE_INCANDESCENT,
    237  MSM_CAMERA_WB_MODE_FLUORESCENT,
    238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    239  MSM_CAMERA_WB_MODE_WARM_FLUORESCENT,
    240  MSM_CAMERA_WB_MODE_DAYLIGHT,
    241  MSM_CAMERA_WB_MODE_CLOUDY_DAYLIGHT,
    242  MSM_CAMERA_WB_MODE_TWILIGHT,
    243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    244  MSM_CAMERA_WB_MODE_SHADE,
    245  MSM_CAMERA_WB_MODE_OFF,
    246  MSM_CAMERA_WB_MODE_MAX
    247 };
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249 enum {
    250  MSM_CAMERA_SCENE_MODE_OFF,
    251  MSM_CAMERA_SCENE_MODE_AUTO,
    252  MSM_CAMERA_SCENE_MODE_LANDSCAPE,
    253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    254  MSM_CAMERA_SCENE_MODE_SNOW,
    255  MSM_CAMERA_SCENE_MODE_BEACH,
    256  MSM_CAMERA_SCENE_MODE_SUNSET,
    257  MSM_CAMERA_SCENE_MODE_NIGHT,
    258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    259  MSM_CAMERA_SCENE_MODE_PORTRAIT,
    260  MSM_CAMERA_SCENE_MODE_BACKLIGHT,
    261  MSM_CAMERA_SCENE_MODE_SPORTS,
    262  MSM_CAMERA_SCENE_MODE_ANTISHAKE,
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264  MSM_CAMERA_SCENE_MODE_FLOWERS,
    265  MSM_CAMERA_SCENE_MODE_CANDLELIGHT,
    266  MSM_CAMERA_SCENE_MODE_FIREWORKS,
    267  MSM_CAMERA_SCENE_MODE_PARTY,
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269  MSM_CAMERA_SCENE_MODE_NIGHT_PORTRAIT,
    270  MSM_CAMERA_SCENE_MODE_THEATRE,
    271  MSM_CAMERA_SCENE_MODE_ACTION,
    272  MSM_CAMERA_SCENE_MODE_AR,
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274  MSM_CAMERA_SCENE_MODE_FACE_PRIORITY,
    275  MSM_CAMERA_SCENE_MODE_BARCODE,
    276  MSM_CAMERA_SCENE_MODE_HDR,
    277  MSM_CAMERA_SCENE_MODE_MAX
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279 };
    280 enum csid_cfg_type_t {
    281  CSID_INIT,
    282  CSID_CFG,
    283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    284  CSID_RELEASE,
    285 };
    286 enum csiphy_cfg_type_t {
    287  CSIPHY_INIT,
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289  CSIPHY_CFG,
    290  CSIPHY_RELEASE,
    291 };
    292 enum camera_vreg_type {
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294  REG_LDO,
    295  REG_VS,
    296  REG_GPIO,
    297 };
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299 enum sensor_af_t {
    300  SENSOR_AF_FOCUSSED,
    301  SENSOR_AF_NOT_FOCUSSED,
    302 };
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304 struct msm_sensor_power_setting {
    305  enum msm_sensor_power_seq_type_t seq_type;
    306  uint16_t seq_val;
    307  long config_val;
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309  uint16_t delay;
    310  void *data[10];
    311 };
    312 struct msm_sensor_power_setting_array {
    313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    314  struct msm_sensor_power_setting *power_setting;
    315  uint16_t size;
    316  struct msm_sensor_power_setting *power_down_setting;
    317  uint16_t size_down;
    318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    319 };
    320 struct msm_sensor_id_info_t {
    321  uint16_t sensor_id_reg_addr;
    322  uint16_t sensor_id;
    323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    324 };
    325 enum msm_sensor_camera_id_t {
    326  CAMERA_0,
    327  CAMERA_1,
    328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    329  CAMERA_2,
    330  CAMERA_3,
    331  MAX_CAMERAS,
    332 };
    333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    334 enum cci_i2c_master_t {
    335  MASTER_0,
    336  MASTER_1,
    337  MASTER_MAX,
    338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    339 };
    340 enum i2c_freq_mode_t {
    341  I2C_STANDARD_MODE,
    342  I2C_FAST_MODE,
    343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    344  I2C_CUSTOM_MODE,
    345  I2C_MAX_MODES,
    346 };
    347 struct msm_camera_i2c_reg_array {
    348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    349  uint16_t reg_addr;
    350  uint16_t reg_data;
    351  uint32_t delay;
    352 };
    353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    354 struct msm_camera_i2c_reg_setting {
    355  struct msm_camera_i2c_reg_array *reg_setting;
    356  uint16_t size;
    357  enum msm_camera_i2c_reg_addr_type addr_type;
    358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    359  enum msm_camera_i2c_data_type data_type;
    360  uint16_t delay;
    361 };
    362 struct msm_camera_i2c_seq_reg_array {
    363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    364  uint16_t reg_addr;
    365  uint8_t reg_data[I2C_SEQ_REG_DATA_MAX];
    366  uint16_t reg_data_size;
    367 };
    368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    369 struct msm_camera_i2c_seq_reg_setting {
    370  struct msm_camera_i2c_seq_reg_array *reg_setting;
    371  uint16_t size;
    372  enum msm_camera_i2c_reg_addr_type addr_type;
    373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    374  uint16_t delay;
    375 };
    376 struct msm_camera_i2c_array_write_config {
    377  struct msm_camera_i2c_reg_setting conf_array;
    378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    379  uint16_t slave_addr;
    380 };
    381 struct msm_camera_i2c_read_config {
    382  uint16_t slave_addr;
    383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    384  uint16_t reg_addr;
    385  enum msm_camera_i2c_data_type data_type;
    386  uint16_t *data;
    387 };
    388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    389 struct msm_camera_csid_vc_cfg {
    390  uint8_t cid;
    391  uint8_t dt;
    392  uint8_t decode_format;
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394 };
    395 struct msm_camera_csid_lut_params {
    396  uint8_t num_cid;
    397  struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID];
    398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    399 };
    400 struct msm_camera_csid_params {
    401  uint8_t lane_cnt;
    402  uint16_t lane_assign;
    403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    404  uint8_t phy_sel;
    405  struct msm_camera_csid_lut_params lut_params;
    406 };
    407 struct msm_camera_csiphy_params {
    408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    409  uint8_t lane_cnt;
    410  uint8_t settle_cnt;
    411  uint16_t lane_mask;
    412  uint8_t combo_mode;
    413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    414  uint8_t csid_core;
    415 };
    416 struct msm_camera_csi2_params {
    417  struct msm_camera_csid_params csid_params;
    418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    419  struct msm_camera_csiphy_params csiphy_params;
    420 };
    421 struct msm_camera_csi_lane_params {
    422  uint16_t csi_lane_assign;
    423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    424  uint16_t csi_lane_mask;
    425 };
    426 struct csi_lane_params_t {
    427  uint16_t csi_lane_assign;
    428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    429  uint8_t csi_lane_mask;
    430  uint8_t csi_if;
    431  uint8_t csid_core[2];
    432  uint8_t csi_phy_sel;
    433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    434 };
    435 enum camb_position_t {
    436  BACK_CAMERA_B,
    437  FRONT_CAMERA_B,
    438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    439  INVALID_CAMERA_B,
    440 };
    441 struct msm_sensor_info_t {
    442  char sensor_name[MAX_SENSOR_NAME];
    443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    444  uint32_t session_id;
    445  int32_t subdev_id[SUB_MODULE_MAX];
    446  uint8_t is_mount_angle_valid;
    447  uint32_t sensor_mount_angle;
    448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    449  int modes_supported;
    450  enum camb_position_t position;
    451 };
    452 struct camera_vreg_t {
    453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    454  const char *reg_name;
    455  int min_voltage;
    456  int max_voltage;
    457  int op_mode;
    458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    459  uint32_t delay;
    460 };
    461 enum camerab_mode_t {
    462  CAMERA_MODE_2D_B = (1<<0),
    463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    464  CAMERA_MODE_3D_B = (1<<1),
    465  CAMERA_MODE_INVALID = (1<<2),
    466 };
    467 struct msm_sensor_init_params {
    468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    469  int modes_supported;
    470  enum camb_position_t position;
    471  uint32_t sensor_mount_angle;
    472  struct otp_info_t sensor_otp;
    473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    474 };
    475 struct msm_camera_sensor_slave_info {
    476  char sensor_name[32];
    477  char eeprom_name[32];
    478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    479  char actuator_name[32];
    480  char ois_name[32];
    481  enum msm_sensor_camera_id_t camera_id;
    482  uint16_t slave_addr;
    483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    484  enum i2c_freq_mode_t i2c_freq_mode;
    485  enum msm_camera_i2c_reg_addr_type addr_type;
    486  struct msm_sensor_id_info_t sensor_id_info;
    487  struct msm_sensor_power_setting_array power_setting_array;
    488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    489  uint8_t is_init_params_valid;
    490  struct msm_sensor_init_params sensor_init_params;
    491  uint8_t is_flash_supported;
    492 };
    493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    494 struct sensorb_cfg_data {
    495  int cfgtype;
    496  union {
    497  struct msm_sensor_info_t sensor_info;
    498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    499  struct msm_sensor_init_params sensor_init_params;
    500  void *setting;
    501  } cfg;
    502 };
    503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    504 struct csid_cfg_data {
    505  enum csid_cfg_type_t cfgtype;
    506  union {
    507  uint32_t csid_version;
    508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    509  struct msm_camera_csid_params *csid_params;
    510  } cfg;
    511 };
    512 struct csiphy_cfg_data {
    513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    514  enum csiphy_cfg_type_t cfgtype;
    515  union {
    516  struct msm_camera_csiphy_params *csiphy_params;
    517  struct msm_camera_csi_lane_params *csi_lane_params;
    518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    519  } cfg;
    520 };
    521 enum eeprom_cfg_type_t {
    522  CFG_EEPROM_GET_INFO,
    523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    524  CFG_EEPROM_GET_CAL_DATA,
    525  CFG_EEPROM_READ_CAL_DATA,
    526  CFG_EEPROM_WRITE_DATA,
    527  CFG_EEPROM_GET_MM_INFO,
    528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    529 };
    530 struct eeprom_get_t {
    531  uint32_t num_bytes;
    532 };
    533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    534 struct eeprom_read_t {
    535  uint8_t *dbuffer;
    536  uint32_t num_bytes;
    537 };
    538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    539 struct eeprom_write_t {
    540  uint8_t *dbuffer;
    541  uint32_t num_bytes;
    542 };
    543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    544 struct eeprom_get_cmm_t {
    545  uint32_t cmm_support;
    546  uint32_t cmm_compression;
    547  uint32_t cmm_size;
    548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    549 };
    550 struct msm_eeprom_cfg_data {
    551  enum eeprom_cfg_type_t cfgtype;
    552  uint8_t is_supported;
    553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    554  union {
    555  char eeprom_name[MAX_SENSOR_NAME];
    556  struct eeprom_get_t get_data;
    557  struct eeprom_read_t read_data;
    558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    559  struct eeprom_write_t write_data;
    560  struct eeprom_get_cmm_t get_cmm_data;
    561  } cfg;
    562 };
    563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    564 enum msm_sensor_cfg_type_t {
    565  CFG_SET_SLAVE_INFO,
    566  CFG_SLAVE_READ_I2C,
    567  CFG_WRITE_I2C_ARRAY,
    568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    569  CFG_SLAVE_WRITE_I2C_ARRAY,
    570  CFG_WRITE_I2C_SEQ_ARRAY,
    571  CFG_POWER_UP,
    572  CFG_POWER_DOWN,
    573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    574  CFG_SET_STOP_STREAM_SETTING,
    575  CFG_GET_SENSOR_INFO,
    576  CFG_GET_MODULE_INFO,
    577  CFG_GET_SENSOR_INIT_PARAMS,
    578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    579  CFG_SET_INIT_SETTING,
    580  CFG_SET_RESOLUTION,
    581  CFG_SET_STOP_STREAM,
    582  CFG_SET_START_STREAM,
    583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    584  CFG_SET_SATURATION,
    585  CFG_SET_CONTRAST,
    586  CFG_SET_SHARPNESS,
    587  CFG_SET_ISO,
    588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    589  CFG_SET_EXPOSURE_COMPENSATION,
    590  CFG_SET_ANTIBANDING,
    591  CFG_SET_BESTSHOT_MODE,
    592  CFG_SET_EFFECT,
    593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    594  CFG_SET_WHITE_BALANCE,
    595  CFG_SET_AUTOFOCUS,
    596  CFG_CANCEL_AUTOFOCUS,
    597  CFG_SET_STREAM_TYPE,
    598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    599 };
    600 enum msm_actuator_cfg_type_t {
    601  CFG_GET_ACTUATOR_INFO,
    602  CFG_SET_ACTUATOR_INFO,
    603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    604  CFG_SET_DEFAULT_FOCUS,
    605  CFG_SET_POSITION,
    606  CFG_MOVE_FOCUS,
    607  CFG_ACTUATOR_POWERDOWN,
    608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    609  CFG_ACTUATOR_POWERUP,
    610  CFG_ACTUATOR_INIT,
    611  CFG_DIRECT_I2C_WRITE,
    612 };
    613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    614 enum msm_ois_cfg_type_t {
    615  CFG_OIS_INIT,
    616  CFG_GET_OIS_INFO,
    617  CFG_OIS_POWERDOWN,
    618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    619  CFG_OIS_INI_SET,
    620  CFG_OIS_ENABLE,
    621  CFG_OIS_DISABLE,
    622  CFG_OIS_SET_MOVIE_MODE,
    623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    624  CFG_OIS_SET_STILL_MODE,
    625  CFG_OIS_SET_CENTERING_ON,
    626  CFG_OIS_SET_PANTILT_ON,
    627  CFG_OIS_POWERUP,
    628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    629  CFG_OIS_I2C_WRITE_SEQ_TABLE,
    630 };
    631 enum msm_ois_i2c_operation {
    632  MSM_OIS_WRITE = 0,
    633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    634  MSM_OIS_POLL,
    635 };
    636 struct reg_settings_ois_t {
    637  uint16_t reg_addr;
    638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    639  enum msm_camera_i2c_reg_addr_type addr_type;
    640  uint32_t reg_data;
    641  enum msm_camera_i2c_data_type data_type;
    642  enum msm_ois_i2c_operation i2c_operation;
    643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    644  uint32_t delay;
    645 };
    646 struct msm_ois_params_t {
    647  uint16_t data_size;
    648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    649  uint16_t init_setting_size;
    650  uint16_t enable_ois_setting_size;
    651  uint16_t disable_ois_setting_size;
    652  uint16_t movie_mode_ois_setting_size;
    653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    654  uint16_t still_mode_ois_setting_size;
    655  uint16_t centering_on_ois_setting_size;
    656  uint16_t centering_off_ois_setting_size;
    657  uint16_t pantilt_on_ois_setting_size;
    658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    659  uint32_t i2c_addr;
    660  enum msm_camera_i2c_reg_addr_type i2c_addr_type;
    661  enum msm_camera_i2c_data_type i2c_data_type;
    662  struct reg_settings_ois_t *init_settings;
    663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    664  struct reg_settings_ois_t *enable_ois_settings;
    665  struct reg_settings_ois_t *disable_ois_settings;
    666  struct reg_settings_ois_t *movie_mode_ois_settings;
    667  struct reg_settings_ois_t *still_mode_ois_settings;
    668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    669  struct reg_settings_ois_t *centering_on_ois_settings;
    670  struct reg_settings_ois_t *centering_off_ois_settings;
    671  struct reg_settings_ois_t *pantilt_on_ois_settings;
    672 };
    673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    674 struct msm_ois_set_info_t {
    675  struct msm_ois_params_t ois_params;
    676 };
    677 enum actuator_type {
    678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    679  ACTUATOR_VCM,
    680  ACTUATOR_PIEZO,
    681  ACTUATOR_HVCM,
    682 };
    683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    684 enum msm_actuator_data_type {
    685  MSM_ACTUATOR_BYTE_DATA = 1,
    686  MSM_ACTUATOR_WORD_DATA,
    687 };
    688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    689 enum msm_actuator_addr_type {
    690  MSM_ACTUATOR_BYTE_ADDR = 1,
    691  MSM_ACTUATOR_WORD_ADDR,
    692 };
    693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    694 enum msm_actuator_i2c_operation {
    695  MSM_ACT_WRITE = 0,
    696  MSM_ACT_POLL,
    697 };
    698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    699 struct reg_settings_t {
    700  uint16_t reg_addr;
    701  enum msm_actuator_addr_type addr_type;
    702  uint16_t reg_data;
    703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    704  enum msm_actuator_data_type data_type;
    705  enum msm_actuator_i2c_operation i2c_operation;
    706  uint32_t delay;
    707 };
    708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    709 struct region_params_t {
    710  uint16_t step_bound[2];
    711  uint16_t code_per_step;
    712 };
    713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    714 struct damping_params_t {
    715  uint32_t damping_step;
    716  uint32_t damping_delay;
    717  uint32_t hw_params;
    718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    719 };
    720 struct msm_actuator_move_params_t {
    721  int8_t dir;
    722  int8_t sign_dir;
    723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    724  int16_t dest_step_pos;
    725  int32_t num_steps;
    726  uint16_t curr_lens_pos;
    727  struct damping_params_t *ringing_params;
    728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    729 };
    730 struct msm_actuator_tuning_params_t {
    731  int16_t initial_code;
    732  uint16_t pwd_step;
    733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    734  uint16_t region_size;
    735  uint32_t total_steps;
    736  struct region_params_t *region_params;
    737 };
    738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    739 struct park_lens_data_t {
    740  uint32_t damping_step;
    741  uint32_t damping_delay;
    742  uint32_t hw_params;
    743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    744  uint32_t max_step;
    745 };
    746 struct msm_actuator_params_t {
    747  enum actuator_type act_type;
    748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    749  uint8_t reg_tbl_size;
    750  uint16_t data_size;
    751  uint16_t init_setting_size;
    752  uint32_t i2c_addr;
    753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    754  enum msm_actuator_addr_type i2c_addr_type;
    755  enum msm_actuator_data_type i2c_data_type;
    756  struct msm_actuator_reg_params_t *reg_tbl_params;
    757  struct reg_settings_t *init_settings;
    758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    759  struct park_lens_data_t park_lens;
    760 };
    761 struct msm_actuator_set_info_t {
    762  struct msm_actuator_params_t actuator_params;
    763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    764  struct msm_actuator_tuning_params_t af_tuning_params;
    765 };
    766 struct msm_actuator_get_info_t {
    767  uint32_t focal_length_num;
    768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    769  uint32_t focal_length_den;
    770  uint32_t f_number_num;
    771  uint32_t f_number_den;
    772  uint32_t f_pix_num;
    773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    774  uint32_t f_pix_den;
    775  uint32_t total_f_dist_num;
    776  uint32_t total_f_dist_den;
    777  uint32_t hor_view_angle_num;
    778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    779  uint32_t hor_view_angle_den;
    780  uint32_t ver_view_angle_num;
    781  uint32_t ver_view_angle_den;
    782 };
    783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    784 enum af_camera_name {
    785  ACTUATOR_MAIN_CAM_0,
    786  ACTUATOR_MAIN_CAM_1,
    787  ACTUATOR_MAIN_CAM_2,
    788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    789  ACTUATOR_MAIN_CAM_3,
    790  ACTUATOR_MAIN_CAM_4,
    791  ACTUATOR_MAIN_CAM_5,
    792  ACTUATOR_WEB_CAM_0,
    793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    794  ACTUATOR_WEB_CAM_1,
    795  ACTUATOR_WEB_CAM_2,
    796 };
    797 struct msm_ois_cfg_data {
    798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    799  int cfgtype;
    800  uint8_t is_ois_supported;
    801  union {
    802  uint8_t enable_centering_ois;
    803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    804  struct msm_ois_set_info_t set_info;
    805  struct msm_camera_i2c_seq_reg_setting *settings;
    806  } cfg;
    807 };
    808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    809 struct msm_actuator_set_position_t {
    810  uint16_t number_of_steps;
    811  uint16_t pos[MAX_NUMBER_OF_STEPS];
    812  uint16_t delay[MAX_NUMBER_OF_STEPS];
    813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    814 };
    815 struct msm_actuator_i2c {
    816  uint16_t addr;
    817  uint16_t value;
    818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    819  uint32_t wait_time;
    820 };
    821 #define MSM_ACTUATOR_I2C_MAX_TABLE_SIZE (8)
    822 struct msm_actuator_i2c_table {
    823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    824  struct msm_actuator_i2c data[MSM_ACTUATOR_I2C_MAX_TABLE_SIZE];
    825  uint32_t size;
    826 };
    827 struct msm_actuator_cfg_data {
    828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    829  int cfgtype;
    830  uint8_t is_af_supported;
    831  union {
    832  struct msm_actuator_move_params_t move;
    833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    834  struct msm_actuator_set_info_t set_info;
    835  struct msm_actuator_get_info_t get_info;
    836  struct msm_actuator_set_position_t setpos;
    837  enum af_camera_name cam_name;
    838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    839  struct msm_actuator_i2c_table i2c_table;
    840  } cfg;
    841 };
    842 enum msm_actuator_write_type {
    843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    844  MSM_ACTUATOR_WRITE_HW_DAMP,
    845  MSM_ACTUATOR_WRITE_DAC,
    846 };
    847 struct msm_actuator_reg_params_t {
    848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    849  enum msm_actuator_write_type reg_write_type;
    850  uint32_t hw_mask;
    851  uint16_t reg_addr;
    852  uint16_t hw_shift;
    853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    854  uint16_t data_shift;
    855 };
    856 enum msm_camera_led_config_t {
    857  MSM_CAMERA_LED_OFF,
    858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    859  MSM_CAMERA_LED_LOW,
    860  MSM_CAMERA_LED_HIGH,
    861  MSM_CAMERA_LED_INIT,
    862  MSM_CAMERA_LED_RELEASE,
    863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    864 };
    865 struct msm_camera_led_cfg_t {
    866  enum msm_camera_led_config_t cfgtype;
    867  uint32_t torch_current;
    868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    869  uint32_t flash_current[MAX_LED_TRIGGERS];
    870  uint32_t flash_duration[MAX_LED_TRIGGERS];
    871 };
    872 enum msm_sensor_init_cfg_type_t {
    873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    874  CFG_SINIT_PROBE,
    875  CFG_SINIT_PROBE_DONE,
    876  CFG_SINIT_PROBE_WAIT_DONE,
    877 };
    878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    879 struct sensor_init_cfg_data {
    880  enum msm_sensor_init_cfg_type_t cfgtype;
    881  union {
    882  void *setting;
    883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    884  } cfg;
    885 };
    886 #define VIDIOC_MSM_SENSOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
    887 #define VIDIOC_MSM_SENSOR_RELEASE   _IO('V', BASE_VIDIOC_PRIVATE + 2)
    888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    889 #define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
    890 #define VIDIOC_MSM_CSIPHY_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data)
    891 #define VIDIOC_MSM_CSID_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data)
    892 #define VIDIOC_MSM_ACTUATOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
    893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    894 #define VIDIOC_MSM_FLASH_LED_DATA_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
    895 #define VIDIOC_MSM_EEPROM_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
    896 #define VIDIOC_MSM_SENSOR_GET_AF_STATUS   _IOWR('V', BASE_VIDIOC_PRIVATE + 9, uint32_t)
    897 #define VIDIOC_MSM_SENSOR_INIT_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data)
    898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    899 #define VIDIOC_MSM_OIS_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data)
    900 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
    901 #endif
    902