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_MEDIA_MSM_CAM_SENSOR_H 20 #define _UAPI_MEDIA_MSM_CAM_SENSOR_H 21 #ifdef MSM_CAMERA_BIONIC 22 #include <sys/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #endif 25 #include <linux/types.h> 26 #include <linux/v4l2-mediabus.h> 27 #include <linux/i2c.h> 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #define I2C_SEQ_REG_SETTING_MAX 5 30 #define I2C_SEQ_REG_DATA_MAX 20 31 #define MAX_CID 16 32 #define MSM_SENSOR_MCLK_8HZ 8000000 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 #define MSM_SENSOR_MCLK_16HZ 16000000 35 #define MSM_SENSOR_MCLK_24HZ 24000000 36 #define GPIO_OUT_LOW (0 << 1) 37 #define GPIO_OUT_HIGH (1 << 1) 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 #define CSI_EMBED_DATA 0x12 40 #define CSI_RESERVED_DATA_0 0x13 41 #define CSI_YUV422_8 0x1E 42 #define CSI_RAW8 0x2A 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define CSI_RAW10 0x2B 45 #define CSI_RAW12 0x2C 46 #define CSI_DECODE_6BIT 0 47 #define CSI_DECODE_8BIT 1 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define CSI_DECODE_10BIT 2 50 #define CSI_DECODE_DPCM_10_8_10 5 51 #define MAX_SENSOR_NAME 32 52 #define MAX_ACT_MOD_NAME_SIZE 32 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define MAX_ACT_NAME_SIZE 32 55 #define NUM_ACTUATOR_DIR 2 56 #define MAX_ACTUATOR_SCENARIO 8 57 #define MAX_ACTUATOR_REGION 5 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 #define MAX_ACTUATOR_INIT_SET 12 60 #define MAX_ACTUATOR_REG_TBL_SIZE 8 61 #define MOVE_NEAR 0 62 #define MOVE_FAR 1 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 #define MAX_EEPROM_NAME 32 65 enum msm_camera_i2c_reg_addr_type { 66 MSM_CAMERA_I2C_BYTE_ADDR = 1, 67 MSM_CAMERA_I2C_WORD_ADDR, 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 }; 70 enum msm_camera_i2c_data_type { 71 MSM_CAMERA_I2C_BYTE_DATA = 1, 72 MSM_CAMERA_I2C_WORD_DATA, 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 MSM_CAMERA_I2C_SET_BYTE_MASK, 75 MSM_CAMERA_I2C_UNSET_BYTE_MASK, 76 MSM_CAMERA_I2C_SET_WORD_MASK, 77 MSM_CAMERA_I2C_UNSET_WORD_MASK, 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA, 80 }; 81 enum msm_sensor_power_seq_type_t { 82 SENSOR_CLK, 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 SENSOR_GPIO, 85 SENSOR_VREG, 86 SENSOR_I2C_MUX, 87 }; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 enum msm_sensor_clk_type_t { 90 SENSOR_CAM_MCLK, 91 SENSOR_CAM_CLK, 92 SENSOR_CAM_CLK_MAX, 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 }; 95 enum msm_sensor_power_seq_gpio_t { 96 SENSOR_GPIO_RESET, 97 SENSOR_GPIO_STANDBY, 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 SENSOR_GPIO_MAX, 100 }; 101 enum msm_camera_vreg_name_t { 102 CAM_VDIG, 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 CAM_VIO, 105 CAM_VANA, 106 CAM_VAF, 107 CAM_VREG_MAX, 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 }; 110 enum msm_sensor_resolution_t { 111 MSM_SENSOR_RES_FULL, 112 MSM_SENSOR_RES_QTR, 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 MSM_SENSOR_RES_2, 115 MSM_SENSOR_RES_3, 116 MSM_SENSOR_RES_4, 117 MSM_SENSOR_RES_5, 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 MSM_SENSOR_RES_6, 120 MSM_SENSOR_RES_7, 121 MSM_SENSOR_INVALID_RES, 122 }; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 enum sensor_sub_module_t { 125 SUB_MODULE_SENSOR, 126 SUB_MODULE_CHROMATIX, 127 SUB_MODULE_ACTUATOR, 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 SUB_MODULE_EEPROM, 130 SUB_MODULE_LED_FLASH, 131 SUB_MODULE_STROBE_FLASH, 132 SUB_MODULE_CSID, 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 SUB_MODULE_CSID_3D, 135 SUB_MODULE_CSIPHY, 136 SUB_MODULE_CSIPHY_3D, 137 SUB_MODULE_MAX, 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 }; 140 enum csid_cfg_type_t { 141 CSID_INIT, 142 CSID_CFG, 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 CSID_RELEASE, 145 }; 146 enum csiphy_cfg_type_t { 147 CSIPHY_INIT, 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 CSIPHY_CFG, 150 CSIPHY_RELEASE, 151 }; 152 enum camera_vreg_type { 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 REG_LDO, 155 REG_VS, 156 REG_GPIO, 157 }; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 struct msm_sensor_power_setting { 160 enum msm_sensor_power_seq_type_t seq_type; 161 uint16_t seq_val; 162 long config_val; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 uint16_t delay; 165 void *data[10]; 166 }; 167 struct msm_sensor_power_setting_array { 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 struct msm_sensor_power_setting *power_setting; 170 uint16_t size; 171 }; 172 struct msm_sensor_id_info_t { 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 uint16_t sensor_id_reg_addr; 175 uint16_t sensor_id; 176 }; 177 struct msm_camera_sensor_slave_info { 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 uint16_t slave_addr; 180 enum msm_camera_i2c_reg_addr_type addr_type; 181 struct msm_sensor_id_info_t sensor_id_info; 182 struct msm_sensor_power_setting_array power_setting_array; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 }; 185 struct msm_camera_i2c_reg_array { 186 uint16_t reg_addr; 187 uint16_t reg_data; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 }; 190 struct msm_camera_i2c_reg_setting { 191 struct msm_camera_i2c_reg_array *reg_setting; 192 uint16_t size; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 enum msm_camera_i2c_reg_addr_type addr_type; 195 enum msm_camera_i2c_data_type data_type; 196 uint16_t delay; 197 }; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 struct msm_camera_i2c_seq_reg_array { 200 uint16_t reg_addr; 201 uint8_t reg_data[I2C_SEQ_REG_DATA_MAX]; 202 uint16_t reg_data_size; 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 }; 205 struct msm_camera_i2c_seq_reg_setting { 206 struct msm_camera_i2c_seq_reg_array *reg_setting; 207 uint16_t size; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 enum msm_camera_i2c_reg_addr_type addr_type; 210 uint16_t delay; 211 }; 212 struct msm_camera_csid_vc_cfg { 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 uint8_t cid; 215 uint8_t dt; 216 uint8_t decode_format; 217 }; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 struct msm_camera_csid_lut_params { 220 uint8_t num_cid; 221 struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID]; 222 }; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 struct msm_camera_csid_params { 225 uint8_t lane_cnt; 226 uint16_t lane_assign; 227 uint8_t phy_sel; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 struct msm_camera_csid_lut_params lut_params; 230 }; 231 struct msm_camera_csiphy_params { 232 uint8_t lane_cnt; 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 uint8_t settle_cnt; 235 uint16_t lane_mask; 236 uint8_t combo_mode; 237 }; 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 struct msm_camera_csi2_params { 240 struct msm_camera_csid_params csid_params; 241 struct msm_camera_csiphy_params csiphy_params; 242 }; 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 struct msm_camera_csi_lane_params { 245 uint16_t csi_lane_assign; 246 uint16_t csi_lane_mask; 247 }; 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 struct csi_lane_params_t { 250 uint16_t csi_lane_assign; 251 uint8_t csi_lane_mask; 252 uint8_t csi_if; 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 uint8_t csid_core[2]; 255 uint8_t csi_phy_sel; 256 }; 257 struct msm_sensor_info_t { 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 char sensor_name[MAX_SENSOR_NAME]; 260 int32_t session_id; 261 int32_t subdev_id[SUB_MODULE_MAX]; 262 }; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 struct camera_vreg_t { 265 const char *reg_name; 266 enum camera_vreg_type type; 267 int min_voltage; 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 int max_voltage; 270 int op_mode; 271 uint32_t delay; 272 }; 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 enum camb_position_t { 275 BACK_CAMERA_B, 276 FRONT_CAMERA_B, 277 }; 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279 enum camerab_mode_t { 280 CAMERA_MODE_2D_B = (1<<0), 281 CAMERA_MODE_3D_B = (1<<1) 282 }; 283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 struct msm_sensor_init_params { 285 int modes_supported; 286 enum camb_position_t position; 287 uint32_t sensor_mount_angle; 288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289 }; 290 struct sensorb_cfg_data { 291 int cfgtype; 292 union { 293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 struct msm_sensor_info_t sensor_info; 295 struct msm_sensor_init_params sensor_init_params; 296 void *setting; 297 int8_t effect; 298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 uint8_t wb_val; 300 int8_t exp_compensation; 301 int8_t fps; 302 } cfg; 303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 }; 305 struct csid_cfg_data { 306 enum csid_cfg_type_t cfgtype; 307 union { 308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 uint32_t csid_version; 310 struct msm_camera_csid_params *csid_params; 311 } cfg; 312 }; 313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314 struct csiphy_cfg_data { 315 enum csiphy_cfg_type_t cfgtype; 316 union { 317 struct msm_camera_csiphy_params *csiphy_params; 318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319 struct msm_camera_csi_lane_params *csi_lane_params; 320 } cfg; 321 }; 322 enum eeprom_cfg_type_t { 323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324 CFG_EEPROM_GET_INFO, 325 CFG_EEPROM_GET_DATA, 326 CFG_EEPROM_READ_DATA, 327 CFG_EEPROM_WRITE_DATA, 328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 329 }; 330 struct eeprom_get_t { 331 uint16_t num_bytes; 332 }; 333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 334 struct eeprom_read_t { 335 uint8_t *dbuffer; 336 uint16_t num_bytes; 337 }; 338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 339 struct eeprom_write_t { 340 uint8_t *dbuffer; 341 uint16_t num_bytes; 342 }; 343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 344 struct msm_eeprom_cfg_data { 345 enum eeprom_cfg_type_t cfgtype; 346 uint8_t is_supported; 347 union { 348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 349 char eeprom_name[MAX_SENSOR_NAME]; 350 struct eeprom_get_t get_data; 351 struct eeprom_read_t read_data; 352 struct eeprom_write_t write_data; 353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 354 } cfg; 355 }; 356 enum msm_sensor_cfg_type_t { 357 CFG_SET_SLAVE_INFO, 358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 359 CFG_WRITE_I2C_ARRAY, 360 CFG_WRITE_I2C_SEQ_ARRAY, 361 CFG_POWER_UP, 362 CFG_POWER_DOWN, 363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 364 CFG_SET_STOP_STREAM_SETTING, 365 CFG_GET_SENSOR_INFO, 366 CFG_GET_SENSOR_INIT_PARAMS, 367 CFG_SET_INIT_SETTING, 368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 369 CFG_SET_RESOLUTION, 370 CFG_SET_STOP_STREAM, 371 CFG_SET_START_STREAM, 372 CFG_SET_EFFECT, 373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 374 CFG_SET_WB, 375 CFG_SET_FPS, 376 CFG_SET_EXPOSURE_COMPENSATION, 377 }; 378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 379 enum msm_actuator_cfg_type_t { 380 CFG_GET_ACTUATOR_INFO, 381 CFG_SET_ACTUATOR_INFO, 382 CFG_SET_DEFAULT_FOCUS, 383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 384 CFG_MOVE_FOCUS, 385 CFG_ACTUATOR_POWERDOWN, 386 }; 387 enum actuator_type { 388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 389 ACTUATOR_VCM, 390 ACTUATOR_PIEZO, 391 }; 392 enum msm_actuator_data_type { 393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 394 MSM_ACTUATOR_BYTE_DATA = 1, 395 MSM_ACTUATOR_WORD_DATA, 396 }; 397 enum msm_actuator_addr_type { 398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 399 MSM_ACTUATOR_BYTE_ADDR = 1, 400 MSM_ACTUATOR_WORD_ADDR, 401 }; 402 struct reg_settings_t { 403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 404 uint16_t reg_addr; 405 uint16_t reg_data; 406 }; 407 struct region_params_t { 408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 409 uint16_t step_bound[2]; 410 uint16_t code_per_step; 411 }; 412 struct damping_params_t { 413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 414 uint32_t damping_step; 415 uint32_t damping_delay; 416 uint32_t hw_params; 417 }; 418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 419 struct msm_actuator_move_params_t { 420 int8_t dir; 421 int8_t sign_dir; 422 int16_t dest_step_pos; 423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 424 int32_t num_steps; 425 struct damping_params_t *ringing_params; 426 }; 427 struct msm_actuator_tuning_params_t { 428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 429 int16_t initial_code; 430 uint16_t pwd_step; 431 uint16_t region_size; 432 uint32_t total_steps; 433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 434 struct region_params_t *region_params; 435 }; 436 struct msm_actuator_params_t { 437 enum actuator_type act_type; 438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 439 uint8_t reg_tbl_size; 440 uint16_t data_size; 441 uint16_t init_setting_size; 442 uint32_t i2c_addr; 443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 444 enum msm_actuator_addr_type i2c_addr_type; 445 enum msm_actuator_data_type i2c_data_type; 446 struct msm_actuator_reg_params_t *reg_tbl_params; 447 struct reg_settings_t *init_settings; 448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 449 }; 450 struct msm_actuator_set_info_t { 451 struct msm_actuator_params_t actuator_params; 452 struct msm_actuator_tuning_params_t af_tuning_params; 453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 454 }; 455 struct msm_actuator_get_info_t { 456 uint32_t focal_length_num; 457 uint32_t focal_length_den; 458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 459 uint32_t f_number_num; 460 uint32_t f_number_den; 461 uint32_t f_pix_num; 462 uint32_t f_pix_den; 463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 464 uint32_t total_f_dist_num; 465 uint32_t total_f_dist_den; 466 uint32_t hor_view_angle_num; 467 uint32_t hor_view_angle_den; 468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 469 uint32_t ver_view_angle_num; 470 uint32_t ver_view_angle_den; 471 }; 472 enum af_camera_name { 473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 474 ACTUATOR_MAIN_CAM_0, 475 ACTUATOR_MAIN_CAM_1, 476 ACTUATOR_MAIN_CAM_2, 477 ACTUATOR_MAIN_CAM_3, 478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 479 ACTUATOR_MAIN_CAM_4, 480 ACTUATOR_MAIN_CAM_5, 481 ACTUATOR_WEB_CAM_0, 482 ACTUATOR_WEB_CAM_1, 483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 484 ACTUATOR_WEB_CAM_2, 485 }; 486 #define CAMERA_EFFECT_OFF 0 487 #define CAMERA_EFFECT_MONO 1 488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 489 #define CAMERA_EFFECT_NEGATIVE 2 490 #define CAMERA_EFFECT_SOLARIZE 3 491 #define CAMERA_EFFECT_SEPIA 4 492 #define CAMERA_EFFECT_POSTERIZE 5 493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 494 #define CAMERA_EFFECT_WHITEBOARD 6 495 #define CAMERA_EFFECT_BLACKBOARD 7 496 #define CAMERA_EFFECT_AQUA 8 497 #define CAMERA_EFFECT_EMBOSS 9 498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 499 #define CAMERA_EFFECT_SKETCH 10 500 #define CAMERA_EFFECT_NEON 11 501 #define CAMERA_EFFECT_MAX 12 502 #define YUV_CAMERA_WB_AUTO 0 503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 504 #define YUV_CAMERA_WB_CUSTOM 1 505 #define YUV_CAMERA_WB_INCANDESCENT 2 506 #define YUV_CAMERA_WB_FLUORESCENT 3 507 #define YUV_CAMERA_WB_WARM_FLUORESCENT 4 508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 509 #define YUV_CAMERA_WB_DAYLIGHT 5 510 #define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6 511 #define YUV_CAMERA_WB_TWILIGHT 7 512 #define YUV_CAMERA_WB_SHADE 8 513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 514 #define CAMERA_EXPOSURE_COMPENSATION_LV0 12 515 #define CAMERA_EXPOSURE_COMPENSATION_LV1 6 516 #define CAMERA_EXPOSURE_COMPENSATION_LV2 0 517 #define CAMERA_EXPOSURE_COMPENSATION_LV3 -6 518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 519 #define CAMERA_EXPOSURE_COMPENSATION_LV4 -12 520 #define CAMERA_FPS_FIX_30 30 521 #define CAMERA_FPS_FIX_25 25 522 #define CAMERA_FPS_FIX_24 24 523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 524 #define CAMERA_FPS_FIX_20 20 525 #define CAMERA_FPS_FIX_15 15 526 #define CAMERA_FPS_AUTO_30 0 527 struct msm_actuator_cfg_data { 528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 529 int cfgtype; 530 uint8_t is_af_supported; 531 union { 532 struct msm_actuator_move_params_t move; 533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 534 struct msm_actuator_set_info_t set_info; 535 struct msm_actuator_get_info_t get_info; 536 enum af_camera_name cam_name; 537 } cfg; 538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 539 }; 540 enum msm_actuator_write_type { 541 MSM_ACTUATOR_WRITE_HW_DAMP, 542 MSM_ACTUATOR_WRITE_DAC, 543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 544 }; 545 struct msm_actuator_reg_params_t { 546 enum msm_actuator_write_type reg_write_type; 547 uint32_t hw_mask; 548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 549 uint16_t reg_addr; 550 uint16_t hw_shift; 551 uint16_t data_shift; 552 }; 553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 554 enum msm_camera_led_config_t { 555 MSM_CAMERA_LED_OFF, 556 MSM_CAMERA_LED_LOW, 557 MSM_CAMERA_LED_HIGH, 558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 559 MSM_CAMERA_LED_INIT, 560 MSM_CAMERA_LED_RELEASE, 561 }; 562 struct msm_camera_led_cfg_t { 563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 564 enum msm_camera_led_config_t cfgtype; 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 csid_cfg_data) 571 #define VIDIOC_MSM_CSID_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csiphy_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 MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') 577 #define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0') 578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 579 #endif 580