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