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 __LINUX_MSM_CAMSENSOR_SDK_H 20 #define __LINUX_MSM_CAMSENSOR_SDK_H 21 #define KVERSION 0x1 22 #define MAX_POWER_CONFIG 12 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #define GPIO_OUT_LOW (0 << 1) 25 #define GPIO_OUT_HIGH (1 << 1) 26 #define CSI_EMBED_DATA 0x12 27 #define CSI_RESERVED_DATA_0 0x13 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #define CSI_YUV422_8 0x1E 30 #define CSI_RAW8 0x2A 31 #define CSI_RAW10 0x2B 32 #define CSI_RAW12 0x2C 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 #define CSI_DECODE_6BIT 0 35 #define CSI_DECODE_8BIT 1 36 #define CSI_DECODE_10BIT 2 37 #define CSI_DECODE_DPCM_10_8_10 5 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 #define MAX_CID 16 40 #define I2C_SEQ_REG_DATA_MAX 256 41 #define I2C_REG_DATA_MAX (8 * 1024) 42 #define MAX_ACTUATOR_REG_TBL_SIZE 8 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define MAX_ACTUATOR_REGION 5 45 #define NUM_ACTUATOR_DIR 2 46 #define MAX_ACTUATOR_SCENARIO 8 47 #define MAX_ACT_MOD_NAME_SIZE 32 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define MAX_ACT_NAME_SIZE 32 50 #define MAX_ACTUATOR_INIT_SET 120 51 #define MAX_I2C_REG_SET 12 52 #define MAX_NAME_SIZE 32 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define MAX_LED_TRIGGERS 3 55 enum msm_sensor_camera_id_t { 56 CAMERA_0, 57 CAMERA_1, 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 CAMERA_2, 60 CAMERA_3, 61 MAX_CAMERAS, 62 }; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 enum i2c_freq_mode_t { 65 I2C_STANDARD_MODE, 66 I2C_FAST_MODE, 67 I2C_CUSTOM_MODE, 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 I2C_FAST_PLUS_MODE, 70 I2C_MAX_MODES, 71 }; 72 enum camb_position_t { 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 BACK_CAMERA_B, 75 FRONT_CAMERA_B, 76 INVALID_CAMERA_B, 77 }; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 enum msm_sensor_power_seq_type_t { 80 SENSOR_CLK, 81 SENSOR_GPIO, 82 SENSOR_VREG, 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 SENSOR_I2C_MUX, 85 SENSOR_I2C, 86 }; 87 enum msm_camera_i2c_reg_addr_type { 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 MSM_CAMERA_I2C_BYTE_ADDR = 1, 90 MSM_CAMERA_I2C_WORD_ADDR, 91 MSM_CAMERA_I2C_3B_ADDR, 92 MSM_CAMERA_I2C_ADDR_TYPE_MAX, 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 }; 95 enum msm_camera_i2c_data_type { 96 MSM_CAMERA_I2C_BYTE_DATA = 1, 97 MSM_CAMERA_I2C_WORD_DATA, 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 MSM_CAMERA_I2C_DWORD_DATA, 100 MSM_CAMERA_I2C_SET_BYTE_MASK, 101 MSM_CAMERA_I2C_UNSET_BYTE_MASK, 102 MSM_CAMERA_I2C_SET_WORD_MASK, 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 MSM_CAMERA_I2C_UNSET_WORD_MASK, 105 MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA, 106 MSM_CAMERA_I2C_DATA_TYPE_MAX, 107 }; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 enum msm_sensor_power_seq_gpio_t { 110 SENSOR_GPIO_RESET, 111 SENSOR_GPIO_STANDBY, 112 SENSOR_GPIO_AF_PWDM, 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 SENSOR_GPIO_VIO, 115 SENSOR_GPIO_VANA, 116 SENSOR_GPIO_VDIG, 117 SENSOR_GPIO_VAF, 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 SENSOR_GPIO_FL_EN, 120 SENSOR_GPIO_FL_NOW, 121 SENSOR_GPIO_FL_RESET, 122 SENSOR_GPIO_CUSTOM1, 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 SENSOR_GPIO_CUSTOM2, 125 SENSOR_GPIO_MAX, 126 }; 127 enum msm_camera_vreg_name_t { 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 CAM_VDIG, 130 CAM_VIO, 131 CAM_VANA, 132 CAM_VAF, 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 CAM_V_CUSTOM1, 135 CAM_V_CUSTOM2, 136 CAM_VREG_MAX, 137 }; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 enum msm_sensor_clk_type_t { 140 SENSOR_CAM_MCLK, 141 SENSOR_CAM_CLK, 142 SENSOR_CAM_CLK_MAX, 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 }; 145 enum camerab_mode_t { 146 CAMERA_MODE_2D_B = (1 << 0), 147 CAMERA_MODE_3D_B = (1 << 1), 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 CAMERA_MODE_INVALID = (1 << 2), 150 }; 151 enum sensor_stats_type { 152 YRGB, 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 YYYY, 155 }; 156 enum msm_actuator_data_type { 157 MSM_ACTUATOR_BYTE_DATA = 1, 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 MSM_ACTUATOR_WORD_DATA, 160 }; 161 enum msm_actuator_addr_type { 162 MSM_ACTUATOR_BYTE_ADDR = 1, 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 MSM_ACTUATOR_WORD_ADDR, 165 }; 166 enum msm_actuator_write_type { 167 MSM_ACTUATOR_WRITE_HW_DAMP, 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 MSM_ACTUATOR_WRITE_DAC, 170 MSM_ACTUATOR_WRITE, 171 MSM_ACTUATOR_WRITE_DIR_REG, 172 MSM_ACTUATOR_POLL, 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 MSM_ACTUATOR_READ_WRITE, 175 }; 176 enum msm_actuator_i2c_operation { 177 MSM_ACT_WRITE = 0, 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 MSM_ACT_POLL, 180 }; 181 enum actuator_type { 182 ACTUATOR_VCM, 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 ACTUATOR_PIEZO, 185 ACTUATOR_HVCM, 186 ACTUATOR_BIVCM, 187 }; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 enum msm_flash_driver_type { 190 FLASH_DRIVER_PMIC, 191 FLASH_DRIVER_I2C, 192 FLASH_DRIVER_GPIO, 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 FLASH_DRIVER_DEFAULT 195 }; 196 enum msm_flash_cfg_type_t { 197 CFG_FLASH_INIT, 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 CFG_FLASH_RELEASE, 200 CFG_FLASH_OFF, 201 CFG_FLASH_LOW, 202 CFG_FLASH_HIGH, 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 }; 205 struct msm_sensor_power_setting { 206 enum msm_sensor_power_seq_type_t seq_type; 207 unsigned short seq_val; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 long config_val; 210 unsigned short delay; 211 void * data[10]; 212 }; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 struct msm_sensor_power_setting_array { 215 struct msm_sensor_power_setting power_setting_a[MAX_POWER_CONFIG]; 216 struct msm_sensor_power_setting * power_setting; 217 unsigned short size; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 struct msm_sensor_power_setting power_down_setting_a[MAX_POWER_CONFIG]; 220 struct msm_sensor_power_setting * power_down_setting; 221 unsigned short size_down; 222 }; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 struct msm_sensor_init_params { 225 int modes_supported; 226 enum camb_position_t position; 227 unsigned int sensor_mount_angle; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 }; 230 struct msm_sensor_id_info_t { 231 unsigned short sensor_id_reg_addr; 232 unsigned short sensor_id; 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 unsigned short sensor_id_mask; 235 unsigned short camera_id_pin; 236 }; 237 struct msm_camera_sensor_slave_info { 238 char sensor_name[32]; 239 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 240 char eeprom_name[32]; 241 char actuator_name[32]; 242 char ois_name[32]; 243 char flash_name[32]; 244 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 245 enum msm_sensor_camera_id_t camera_id; 246 unsigned short slave_addr; 247 enum i2c_freq_mode_t i2c_freq_mode; 248 enum msm_camera_i2c_reg_addr_type addr_type; 249 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 250 struct msm_sensor_id_info_t sensor_id_info; 251 struct msm_sensor_power_setting_array power_setting_array; 252 unsigned char is_init_params_valid; 253 struct msm_sensor_init_params sensor_init_params; 254 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 255 unsigned char is_flash_supported; 256 }; 257 struct msm_camera_i2c_reg_array { 258 unsigned short reg_addr; 259 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 260 unsigned short reg_data; 261 unsigned int delay; 262 }; 263 struct msm_camera_i2c_reg_setting { 264 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 265 struct msm_camera_i2c_reg_array * reg_setting; 266 unsigned short size; 267 enum msm_camera_i2c_reg_addr_type addr_type; 268 enum msm_camera_i2c_data_type data_type; 269 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 270 unsigned short delay; 271 }; 272 struct msm_camera_csid_vc_cfg { 273 unsigned char cid; 274 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 275 unsigned char dt; 276 unsigned char decode_format; 277 }; 278 struct msm_camera_csid_lut_params { 279 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 280 unsigned char num_cid; 281 struct msm_camera_csid_vc_cfg vc_cfg_a[MAX_CID]; 282 struct msm_camera_csid_vc_cfg * vc_cfg[MAX_CID]; 283 }; 284 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 285 struct msm_camera_csid_params { 286 unsigned char lane_cnt; 287 unsigned short lane_assign; 288 unsigned char phy_sel; 289 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 290 unsigned int csi_clk; 291 struct msm_camera_csid_lut_params lut_params; 292 }; 293 struct msm_camera_csiphy_params { 294 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 295 unsigned char lane_cnt; 296 unsigned char settle_cnt; 297 unsigned short lane_mask; 298 unsigned char combo_mode; 299 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 300 unsigned char csid_core; 301 unsigned int csiphy_clk; 302 }; 303 struct msm_camera_i2c_seq_reg_array { 304 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 305 unsigned short reg_addr; 306 unsigned char reg_data[I2C_SEQ_REG_DATA_MAX]; 307 unsigned short reg_data_size; 308 }; 309 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 310 struct msm_camera_i2c_seq_reg_setting { 311 struct msm_camera_i2c_seq_reg_array * reg_setting; 312 unsigned short size; 313 enum msm_camera_i2c_reg_addr_type addr_type; 314 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 315 unsigned short delay; 316 }; 317 struct msm_actuator_reg_params_t { 318 enum msm_actuator_write_type reg_write_type; 319 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 320 unsigned int hw_mask; 321 unsigned short reg_addr; 322 unsigned short hw_shift; 323 unsigned short data_shift; 324 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 325 unsigned short data_type; 326 unsigned short addr_type; 327 unsigned short reg_data; 328 unsigned short delay; 329 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 330 }; 331 struct damping_params_t { 332 unsigned int damping_step; 333 unsigned int damping_delay; 334 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 335 unsigned int hw_params; 336 }; 337 struct region_params_t { 338 unsigned short step_bound[2]; 339 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 340 unsigned short code_per_step; 341 unsigned int qvalue; 342 }; 343 struct reg_settings_t { 344 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 345 unsigned short reg_addr; 346 enum msm_actuator_addr_type addr_type; 347 unsigned short reg_data; 348 enum msm_actuator_data_type data_type; 349 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 350 enum msm_actuator_i2c_operation i2c_operation; 351 unsigned int delay; 352 }; 353 struct msm_camera_i2c_reg_setting_array { 354 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 355 struct msm_camera_i2c_reg_array reg_setting_a[MAX_I2C_REG_SET]; 356 unsigned short size; 357 enum msm_camera_i2c_reg_addr_type addr_type; 358 enum msm_camera_i2c_data_type data_type; 359 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 360 unsigned short delay; 361 }; 362 #endif 363 364