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