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') 55enum 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}; 61enum 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}; 75enum 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}; 82enum 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}; 101enum { 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}; 120enum { 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}; 136enum { 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}; 167enum 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}; 175enum 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}; 181enum camera_vreg_type { 182 VREG_TYPE_DEFAULT, 183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 VREG_TYPE_CUSTOM, 185}; 186enum 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}; 191enum 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}; 197struct 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}; 202struct 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}; 211struct 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}; 217struct 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}; 222struct 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}; 231struct 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 */ 244struct 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}; 255struct 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}; 266struct 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}; 276struct 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}; 285enum 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}; 295struct eeprom_get_t { 296 uint32_t num_bytes; 297}; 298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299struct 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 */ 304struct 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 */ 309struct 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}; 315struct 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}; 321struct 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}; 336enum 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}; 376enum 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 */ 389enum 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}; 397enum 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}; 402struct 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}; 412struct 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 */ 424struct msm_ois_set_info_t { 425 struct msm_ois_params_t ois_params; 426}; 427struct 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}; 437struct 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}; 446struct 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 */ 454struct 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}; 470struct 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}; 475struct 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}; 492enum 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}; 506struct 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}; 515struct 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}; 522struct 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}; 536enum 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}; 545struct 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}; 552struct 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}; 561struct 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}; 572enum 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 */ 579struct 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