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/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')
     56 enum 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 };
     62 enum 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 };
     76 enum 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 */
     84 enum 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 };
    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_RELEASE,
    172 };
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174 enum 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 };
    180 enum camera_vreg_type {
    181   VREG_TYPE_DEFAULT,
    182   VREG_TYPE_CUSTOM,
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184 };
    185 enum 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 };
    190 enum 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 };
    196 struct 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 };
    201 struct 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 */
    209 struct 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 };
    215 struct 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 };
    220 struct 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 */
    229 struct 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 };
    241 struct 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 };
    252 struct 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 };
    262 struct 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 };
    271 struct 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 };
    280 enum 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 */
    289 struct eeprom_get_t {
    290   uint32_t num_bytes;
    291 };
    292 struct 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 };
    297 struct 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 };
    302 struct 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 */
    309 struct 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 };
    322 enum 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 };
    357 enum 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 };
    370 enum 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 */
    379 enum 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 */
    384 struct 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 */
    394 struct 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 */
    404 struct msm_ois_set_info_t {
    405   struct msm_ois_params_t ois_params;
    406 };
    407 struct 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 };
    417 struct 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 };
    426 struct 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 */
    434 struct 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 */
    449 struct 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 */
    454 struct 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 };
    471 enum 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 };
    485 struct 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 */
    494 struct 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 };
    501 struct 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 };
    515 enum 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 */
    524 struct 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 };
    531 struct 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 */
    539 struct 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 };
    550 enum 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 };
    556 struct 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