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 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  MSM_CAMERA_I2C_3B_ADDR,
     70 };
     71 enum msm_camera_i2c_data_type {
     72  MSM_CAMERA_I2C_BYTE_DATA = 1,
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74  MSM_CAMERA_I2C_WORD_DATA,
     75  MSM_CAMERA_I2C_SET_BYTE_MASK,
     76  MSM_CAMERA_I2C_UNSET_BYTE_MASK,
     77  MSM_CAMERA_I2C_SET_WORD_MASK,
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79  MSM_CAMERA_I2C_UNSET_WORD_MASK,
     80  MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA,
     81 };
     82 enum msm_sensor_power_seq_type_t {
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84  SENSOR_CLK,
     85  SENSOR_GPIO,
     86  SENSOR_VREG,
     87  SENSOR_I2C_MUX,
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89 };
     90 enum msm_sensor_clk_type_t {
     91  SENSOR_CAM_MCLK,
     92  SENSOR_CAM_CLK,
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94  SENSOR_CAM_CLK_MAX,
     95 };
     96 enum msm_sensor_power_seq_gpio_t {
     97  SENSOR_GPIO_RESET,
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99  SENSOR_GPIO_STANDBY,
    100  SENSOR_GPIO_VANA,
    101  SENSOR_GPIO_VDIG,
    102  SENSOR_GPIO_VIO,
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104  SENSOR_GPIO_VCM,
    105  SENSOR_GPIO_OIS_LDO_EN,
    106  SENSOR_GPIO_OIS_RESET,
    107  SENSOR_GPIO_MAX,
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109 };
    110 enum msm_camera_vreg_name_t {
    111  CAM_VDIG,
    112  CAM_VIO,
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114  CAM_VANA,
    115  CAM_VAF,
    116  CAM_VREG_MAX,
    117 };
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119 enum msm_sensor_resolution_t {
    120  MSM_SENSOR_RES_FULL,
    121  MSM_SENSOR_RES_QTR,
    122  MSM_SENSOR_RES_2,
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124  MSM_SENSOR_RES_3,
    125  MSM_SENSOR_RES_4,
    126  MSM_SENSOR_RES_5,
    127  MSM_SENSOR_RES_6,
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129  MSM_SENSOR_RES_7,
    130  MSM_SENSOR_INVALID_RES,
    131 };
    132 enum sensor_sub_module_t {
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134  SUB_MODULE_SENSOR,
    135  SUB_MODULE_CHROMATIX,
    136  SUB_MODULE_ACTUATOR,
    137  SUB_MODULE_EEPROM,
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139  SUB_MODULE_LED_FLASH,
    140  SUB_MODULE_STROBE_FLASH,
    141  SUB_MODULE_CSID,
    142  SUB_MODULE_CSID_3D,
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144  SUB_MODULE_CSIPHY,
    145  SUB_MODULE_CSIPHY_3D,
    146  SUB_MODULE_MAX,
    147 };
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149 enum csid_cfg_type_t {
    150  CSID_INIT,
    151  CSID_CFG,
    152  CSID_RELEASE,
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154 };
    155 enum csiphy_cfg_type_t {
    156  CSIPHY_INIT,
    157  CSIPHY_CFG,
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159  CSIPHY_RELEASE,
    160 };
    161 enum camera_vreg_type {
    162  REG_LDO,
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164  REG_VS,
    165  REG_GPIO,
    166 };
    167 struct msm_sensor_power_setting {
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169  enum msm_sensor_power_seq_type_t seq_type;
    170  uint16_t seq_val;
    171  long config_val;
    172  uint16_t delay;
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174  void *data[10];
    175 };
    176 struct msm_sensor_power_setting_array {
    177  struct msm_sensor_power_setting *power_setting;
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179  uint16_t size;
    180 };
    181 struct msm_sensor_id_info_t {
    182  uint16_t sensor_id_reg_addr;
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184  uint16_t sensor_id;
    185 };
    186 struct msm_camera_sensor_slave_info {
    187  uint16_t slave_addr;
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189  enum msm_camera_i2c_reg_addr_type addr_type;
    190  struct msm_sensor_id_info_t sensor_id_info;
    191  struct msm_sensor_power_setting_array power_setting_array;
    192 };
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194 struct msm_camera_i2c_reg_array {
    195  uint16_t reg_addr;
    196  uint16_t reg_data;
    197  uint32_t delay;
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199 };
    200 struct msm_camera_i2c_reg_setting {
    201  struct msm_camera_i2c_reg_array *reg_setting;
    202  uint16_t size;
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204  enum msm_camera_i2c_reg_addr_type addr_type;
    205  enum msm_camera_i2c_data_type data_type;
    206  uint16_t delay;
    207 };
    208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    209 struct msm_camera_i2c_seq_reg_array {
    210  uint16_t reg_addr;
    211  uint8_t reg_data[I2C_SEQ_REG_DATA_MAX];
    212  uint16_t reg_data_size;
    213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    214 };
    215 struct msm_camera_i2c_seq_reg_setting {
    216  struct msm_camera_i2c_seq_reg_array *reg_setting;
    217  uint16_t size;
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219  enum msm_camera_i2c_reg_addr_type addr_type;
    220  uint16_t delay;
    221 };
    222 struct msm_camera_i2c_array_write_config {
    223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    224  struct msm_camera_i2c_reg_setting conf_array;
    225  uint16_t slave_addr;
    226 };
    227 struct msm_camera_i2c_read_config {
    228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    229  uint16_t slave_addr;
    230  uint16_t reg_addr;
    231  enum msm_camera_i2c_data_type data_type;
    232  uint16_t *data;
    233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    234 };
    235 struct msm_camera_csid_vc_cfg {
    236  uint8_t cid;
    237  uint8_t dt;
    238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    239  uint8_t decode_format;
    240 };
    241 struct msm_camera_csid_lut_params {
    242  uint8_t num_cid;
    243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    244  struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID];
    245  uint32_t vc_cfg_size;
    246 };
    247 struct msm_camera_csid_params {
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249  uint8_t lane_cnt;
    250  uint16_t lane_assign;
    251  uint8_t phy_sel;
    252  struct msm_camera_csid_lut_params lut_params;
    253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    254 };
    255 struct msm_camera_csiphy_params {
    256  uint8_t lane_cnt;
    257  uint8_t settle_cnt;
    258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    259  uint16_t lane_mask;
    260  uint8_t combo_mode;
    261  uint8_t csid_core;
    262 };
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264 struct msm_camera_csi2_params {
    265  struct msm_camera_csid_params csid_params;
    266  struct msm_camera_csiphy_params csiphy_params;
    267 };
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269 struct msm_camera_csi_lane_params {
    270  uint16_t csi_lane_assign;
    271  uint16_t csi_lane_mask;
    272 };
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274 struct csi_lane_params_t {
    275  uint16_t csi_lane_assign;
    276  uint8_t csi_lane_mask;
    277  uint8_t csi_if;
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279  uint8_t csid_core[2];
    280  uint8_t csi_phy_sel;
    281 };
    282 struct msm_sensor_info_t {
    283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    284  char sensor_name[MAX_SENSOR_NAME];
    285  int32_t session_id;
    286  int32_t subdev_id[SUB_MODULE_MAX];
    287 };
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289 struct msm_sensor_ois_info_t {
    290  char ois_provider[MAX_SENSOR_NAME];
    291  int16_t gyro[2];
    292  int16_t target[2];
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294  int16_t hall[2];
    295  uint8_t is_stable;
    296 };
    297 enum ois_mode_t {
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299  OIS_MODE_PREVIEW_CAPTURE,
    300  OIS_MODE_VIDEO,
    301  OIS_MODE_CAPTURE,
    302  OIS_MODE_CENTERING_ONLY,
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304  OIS_MODE_CENTERING_OFF
    305 };
    306 enum ois_ver_t {
    307  OIS_VER_RELEASE,
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309  OIS_VER_CALIBRATION,
    310  OIS_VER_DEBUG
    311 };
    312 struct camera_vreg_t {
    313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    314  const char *reg_name;
    315  enum camera_vreg_type type;
    316  int min_voltage;
    317  int max_voltage;
    318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    319  int op_mode;
    320  uint32_t delay;
    321 };
    322 enum camb_position_t {
    323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    324  BACK_CAMERA_B,
    325  FRONT_CAMERA_B,
    326 };
    327 enum camerab_mode_t {
    328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    329  CAMERA_MODE_2D_B = (1<<0),
    330  CAMERA_MODE_3D_B = (1<<1)
    331 };
    332 struct msm_sensor_init_params {
    333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    334  int modes_supported;
    335  enum camb_position_t position;
    336  uint32_t sensor_mount_angle;
    337  int ois_supported;
    338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    339 };
    340 struct sensorb_cfg_data {
    341  int cfgtype;
    342  union {
    343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    344  struct msm_sensor_info_t sensor_info;
    345  struct msm_sensor_init_params sensor_init_params;
    346  struct msm_sensor_ois_info_t ois_info;
    347  void *setting;
    348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    349  } cfg;
    350  uint32_t setting_size;
    351 };
    352 struct msm_sensor_csid_cfg_params {
    353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    354  struct msm_camera_csid_params *csid_params;
    355  uint32_t csid_params_size;
    356 };
    357 struct csid_cfg_data {
    358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    359  enum csid_cfg_type_t cfgtype;
    360  union {
    361  uint32_t csid_version;
    362  struct msm_sensor_csid_cfg_params csid_cfg_params;
    363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    364  } cfg;
    365 };
    366 struct csiphy_cfg_data {
    367  enum csiphy_cfg_type_t cfgtype;
    368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    369  union {
    370  struct msm_camera_csiphy_params *csiphy_params;
    371  struct msm_camera_csi_lane_params *csi_lane_params;
    372  } cfg;
    373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    374  uint32_t cfg_params_size;
    375 };
    376 enum eeprom_cfg_type_t {
    377  CFG_EEPROM_GET_INFO,
    378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    379  CFG_EEPROM_GET_CAL_DATA,
    380  CFG_EEPROM_READ_CAL_DATA,
    381  CFG_EEPROM_WRITE_DATA,
    382 };
    383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    384 struct eeprom_get_t {
    385  uint16_t num_bytes;
    386 };
    387 struct eeprom_read_t {
    388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    389  uint8_t *dbuffer;
    390  uint16_t num_bytes;
    391 };
    392 struct eeprom_write_t {
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394  uint8_t *dbuffer;
    395  uint16_t num_bytes;
    396 };
    397 struct msm_eeprom_cfg_data {
    398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    399  enum eeprom_cfg_type_t cfgtype;
    400  uint8_t is_supported;
    401  union {
    402  char eeprom_name[MAX_SENSOR_NAME];
    403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    404  struct eeprom_get_t get_data;
    405  struct eeprom_read_t read_data;
    406  struct eeprom_write_t write_data;
    407  } cfg;
    408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    409 };
    410 enum msm_sensor_cfg_type_t {
    411  CFG_SET_SLAVE_INFO,
    412  CFG_SLAVE_READ_I2C,
    413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    414  CFG_WRITE_I2C_ARRAY,
    415  CFG_SLAVE_WRITE_I2C_ARRAY,
    416  CFG_WRITE_I2C_SEQ_ARRAY,
    417  CFG_POWER_UP,
    418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    419  CFG_POWER_DOWN,
    420  CFG_SET_STOP_STREAM_SETTING,
    421  CFG_GET_SENSOR_INFO,
    422  CFG_GET_SENSOR_INIT_PARAMS,
    423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    424  CFG_SET_INIT_SETTING,
    425  CFG_SET_RESOLUTION,
    426  CFG_SET_STOP_STREAM,
    427  CFG_SET_START_STREAM,
    428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    429  CFG_OIS_ON,
    430  CFG_OIS_OFF,
    431  CFG_GET_OIS_INFO,
    432  CFG_SET_OIS_MODE,
    433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    434  CFG_OIS_MOVE_LENS
    435 };
    436 enum msm_actuator_cfg_type_t {
    437  CFG_GET_ACTUATOR_INFO,
    438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    439  CFG_SET_ACTUATOR_INFO,
    440  CFG_SET_DEFAULT_FOCUS,
    441  CFG_MOVE_FOCUS,
    442 };
    443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    444 enum actuator_type {
    445  ACTUATOR_VCM,
    446  ACTUATOR_PIEZO,
    447 };
    448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    449 enum msm_actuator_data_type {
    450  MSM_ACTUATOR_BYTE_DATA = 1,
    451  MSM_ACTUATOR_WORD_DATA,
    452 };
    453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    454 enum msm_actuator_addr_type {
    455  MSM_ACTUATOR_BYTE_ADDR = 1,
    456  MSM_ACTUATOR_WORD_ADDR,
    457 };
    458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    459 struct reg_settings_t {
    460  uint16_t reg_addr;
    461  uint16_t reg_data;
    462 };
    463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    464 struct region_params_t {
    465  uint16_t step_bound[2];
    466  uint16_t code_per_step;
    467 };
    468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    469 struct damping_params_t {
    470  uint32_t damping_step;
    471  uint32_t damping_delay;
    472  uint32_t hw_params;
    473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    474 };
    475 struct msm_actuator_move_params_t {
    476  int8_t dir;
    477  int8_t sign_dir;
    478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    479  int16_t dest_step_pos;
    480  int32_t num_steps;
    481  int32_t num_steps_inf_pos;
    482  struct damping_params_t *ringing_params;
    483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    484 };
    485 struct msm_actuator_tuning_params_t {
    486  int16_t initial_code;
    487  uint16_t pwd_step;
    488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    489  uint16_t region_size;
    490  uint32_t total_steps;
    491  struct region_params_t *region_params;
    492 };
    493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    494 struct msm_actuator_params_t {
    495  enum actuator_type act_type;
    496  uint8_t reg_tbl_size;
    497  uint16_t data_size;
    498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    499  uint16_t init_setting_size;
    500  uint32_t i2c_addr;
    501  enum msm_actuator_addr_type i2c_addr_type;
    502  enum msm_actuator_data_type i2c_data_type;
    503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    504  struct msm_actuator_reg_params_t *reg_tbl_params;
    505  struct reg_settings_t *init_settings;
    506 };
    507 struct msm_actuator_set_info_t {
    508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    509  struct msm_actuator_params_t actuator_params;
    510  struct msm_actuator_tuning_params_t af_tuning_params;
    511 };
    512 struct msm_actuator_get_info_t {
    513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    514  uint32_t focal_length_num;
    515  uint32_t focal_length_den;
    516  uint32_t f_number_num;
    517  uint32_t f_number_den;
    518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    519  uint32_t f_pix_num;
    520  uint32_t f_pix_den;
    521  uint32_t total_f_dist_num;
    522  uint32_t total_f_dist_den;
    523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    524  uint32_t hor_view_angle_num;
    525  uint32_t hor_view_angle_den;
    526  uint32_t ver_view_angle_num;
    527  uint32_t ver_view_angle_den;
    528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    529 };
    530 enum af_camera_name {
    531  ACTUATOR_MAIN_CAM_0,
    532  ACTUATOR_MAIN_CAM_1,
    533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    534  ACTUATOR_MAIN_CAM_2,
    535  ACTUATOR_MAIN_CAM_3,
    536  ACTUATOR_MAIN_CAM_4,
    537  ACTUATOR_MAIN_CAM_5,
    538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    539  ACTUATOR_WEB_CAM_0,
    540  ACTUATOR_WEB_CAM_1,
    541  ACTUATOR_WEB_CAM_2,
    542 };
    543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    544 struct msm_actuator_cfg_data {
    545  int cfgtype;
    546  uint8_t is_af_supported;
    547  union {
    548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    549  struct msm_actuator_move_params_t move;
    550  struct msm_actuator_set_info_t set_info;
    551  struct msm_actuator_get_info_t get_info;
    552  enum af_camera_name cam_name;
    553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    554  } cfg;
    555 };
    556 enum msm_actuator_write_type {
    557  MSM_ACTUATOR_WRITE_HW_DAMP,
    558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    559  MSM_ACTUATOR_WRITE_DAC,
    560 };
    561 struct msm_actuator_reg_params_t {
    562  enum msm_actuator_write_type reg_write_type;
    563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    564  uint32_t hw_mask;
    565  uint16_t reg_addr;
    566  uint16_t hw_shift;
    567  uint16_t data_shift;
    568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    569 };
    570 enum msm_camera_led_config_t {
    571  MSM_CAMERA_LED_OFF,
    572  MSM_CAMERA_LED_LOW,
    573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    574  MSM_CAMERA_LED_HIGH,
    575  MSM_CAMERA_LED_INIT,
    576  MSM_CAMERA_LED_RELEASE,
    577 };
    578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    579 struct msm_camera_led_cfg_t {
    580  enum msm_camera_led_config_t cfgtype;
    581 };
    582 #define VIDIOC_MSM_SENSOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
    583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    584 #define VIDIOC_MSM_SENSOR_RELEASE   _IO('V', BASE_VIDIOC_PRIVATE + 2)
    585 #define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
    586 #define VIDIOC_MSM_CSIPHY_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data)
    587 #define VIDIOC_MSM_CSID_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data)
    588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    589 #define VIDIOC_MSM_ACTUATOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
    590 #define VIDIOC_MSM_FLASH_LED_DATA_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
    591 #define VIDIOC_MSM_EEPROM_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
    592 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
    593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    594 #endif
    595 
    596