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