105abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch#ifndef __UAPI_LINUX_MSM_CAMSENSOR_SDK_H 205abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch#define __UAPI_LINUX_MSM_CAMSENSOR_SDK_H 305abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch 405abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch#include <linux/videodev2.h> 55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define KVERSION 0x1 75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_POWER_CONFIG 12 95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define GPIO_OUT_LOW (0 << 1) 105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define GPIO_OUT_HIGH (1 << 1) 115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_EMBED_DATA 0x12 125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_RESERVED_DATA_0 0x13 135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_YUV422_8 0x1E 145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_RAW8 0x2A 155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_RAW10 0x2B 165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_RAW12 0x2C 175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_DECODE_6BIT 0 185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_DECODE_8BIT 1 195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_DECODE_10BIT 2 205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_DECODE_12BIT 3 214e5a1b379f3de5287e3d129e27df9a6b38653b1dSteve Pfetsch#define CSI_DECODE_DPCM_10_6_10 4 225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CSI_DECODE_DPCM_10_8_10 5 235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_CID 16 245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define I2C_SEQ_REG_DATA_MAX 1024 255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define I2C_REG_DATA_MAX (8*1024) 265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A') /* META */ 285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4') 295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* 14 BGBG.. GRGR.. */ 305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4') 315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* 14 GBGB.. RGRG.. */ 325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4') 335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* 14 GRGR.. BGBG.. */ 345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4') 355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* 14 RGRG.. GBGB.. */ 365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACTUATOR_REG_TBL_SIZE 8 385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACTUATOR_REGION 5 395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define NUM_ACTUATOR_DIR 2 405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACTUATOR_SCENARIO 8 415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACT_MOD_NAME_SIZE 32 425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACT_NAME_SIZE 32 435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ACTUATOR_INIT_SET 120 445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_I2C_REG_SET 12 455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_LED_TRIGGERS 3 475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_EEPROM_MEMORY_MAP_MAX_SIZE 80 495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSM_EEPROM_MAX_MEM_MAP_CNT 8 505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_sensor_camera_id_t { 525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_0, 535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_1, 545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_2, 555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_3, 565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MAX_CAMERAS, 575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum i2c_freq_mode_t { 605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin I2C_STANDARD_MODE, 615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin I2C_FAST_MODE, 625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin I2C_CUSTOM_MODE, 63559dc63e2b51440525b5a5467d6ecaa8120be85eZhijun He I2C_CUSTOM1_MODE, 64559dc63e2b51440525b5a5467d6ecaa8120be85eZhijun He I2C_CUSTOM2_MODE, 655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin I2C_FAST_PLUS_MODE, 665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin I2C_MAX_MODES, 675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum camb_position_t { 705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin BACK_CAMERA_B, 715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin FRONT_CAMERA_B, 725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin AUX_CAMERA_B = 0x100, 735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin INVALID_CAMERA_B, 745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_sensor_power_seq_type_t { 775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_CLK, 785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO, 795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_VREG, 805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_I2C_MUX, 815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_I2C, 825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_camera_i2c_reg_addr_type { 855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_BYTE_ADDR = 1, 865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_WORD_ADDR, 875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_3B_ADDR, 885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_ADDR_TYPE_MAX, 895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_camera_i2c_data_type { 925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_BYTE_DATA = 1, 935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_WORD_DATA, 945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_DWORD_DATA, 955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_SET_BYTE_MASK, 965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_UNSET_BYTE_MASK, 975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_SET_WORD_MASK, 985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_UNSET_WORD_MASK, 995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_SET_BYTE_WRITE_MASK_DATA, 1005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAMERA_I2C_DATA_TYPE_MAX, 1015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_sensor_power_seq_gpio_t { 1045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_RESET, 1055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_STANDBY, 1065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_AF_PWDM, 1075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_VIO, 1085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_VANA, 1095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_VDIG, 1105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_VAF, 1115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_FL_EN, 1125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_FL_NOW, 1135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_FL_RESET, 1145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_CUSTOM1, 1155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_CUSTOM2, 1165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_GPIO_MAX, 1175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_camera_vreg_name_t { 1205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_VDIG, 1215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_VIO, 1225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_VANA, 1235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_VAF, 1245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_V_CUSTOM1, 1255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_V_CUSTOM2, 1265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAM_VREG_MAX, 1275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_sensor_clk_type_t { 1305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_CAM_MCLK, 1315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_CAM_CLK, 1325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin SENSOR_CAM_CLK_MAX, 1335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum camerab_mode_t { 1365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_MODE_2D_B = (1<<0), 1375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_MODE_3D_B = (1<<1), 1385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CAMERA_MODE_INVALID = (1<<2), 1395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_actuator_data_type { 1425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_BYTE_DATA = 1, 1435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WORD_DATA, 1445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_actuator_addr_type { 1475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_BYTE_ADDR = 1, 1485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WORD_ADDR, 1495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_actuator_write_type { 1525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WRITE_HW_DAMP, 1535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WRITE_DAC, 1545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WRITE, 1555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_WRITE_DIR_REG, 1565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_POLL, 1575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACTUATOR_READ_WRITE, 1585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_actuator_i2c_operation { 1615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACT_WRITE = 0, 1625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_ACT_POLL, 1635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum actuator_type { 1665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ACTUATOR_VCM, 1675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ACTUATOR_PIEZO, 1685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ACTUATOR_HVCM, 1695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin ACTUATOR_BIVCM, 1705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_flash_driver_type { 1735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin FLASH_DRIVER_PMIC, 1745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin FLASH_DRIVER_I2C, 1755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin FLASH_DRIVER_GPIO, 1765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin FLASH_DRIVER_DEFAULT 1775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_flash_cfg_type_t { 1805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CFG_FLASH_INIT, 1815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CFG_FLASH_RELEASE, 1825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CFG_FLASH_OFF, 1835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CFG_FLASH_LOW, 1845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin CFG_FLASH_HIGH, 1855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_sensor_output_format_t { 1885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SENSOR_BAYER, 1895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SENSOR_YCBCR, 1905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_SENSOR_META, 1915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 1925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 1935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_sensor_power_setting { 1945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_sensor_power_seq_type_t seq_type; 1955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short seq_val; 1965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin long config_val; 1975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 1985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin void *data[10]; 1995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_sensor_power_setting_array { 2025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_power_setting power_setting_a[MAX_POWER_CONFIG]; 2035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_power_setting *power_setting; 2045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short size; 2055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_power_setting power_down_setting_a[MAX_POWER_CONFIG]; 2065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_power_setting *power_down_setting; 2075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short size_down; 2085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum msm_camera_i2c_operation { 2115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAM_WRITE = 0, 2125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAM_POLL, 2135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin MSM_CAM_READ, 2145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_sensor_i2c_sync_params { 2175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int cid; 2185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int csid; 2195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short line; 2205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 2215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_reg_settings_t { 2245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t reg_addr; 2255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_reg_addr_type addr_type; 2265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t reg_data; 2275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_data_type data_type; 2285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_operation i2c_operation; 2295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint16_t delay; 2305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_eeprom_mem_map_t { 2335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int slave_addr; 2345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_reg_settings_t 2355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin mem_settings[MSM_EEPROM_MEMORY_MAP_MAX_SIZE]; 2365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int memory_map_size; 2375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_eeprom_memory_map_array { 2405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_eeprom_mem_map_t memory_map[MSM_EEPROM_MAX_MEM_MAP_CNT]; 2415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin uint32_t msm_size_of_max_mappings; 2425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_sensor_init_params { 2455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* mask of modes supported: 2D, 3D */ 2465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int modes_supported; 2475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* sensor position: front, back */ 2485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum camb_position_t position; 2495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* sensor mount angle */ 2505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int sensor_mount_angle; 2515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_sensor_id_info_t { 2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short sensor_id_reg_addr; 2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short sensor_id; 2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short sensor_id_mask; 2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_sensor_slave_info { 2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char sensor_name[32]; 2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char eeprom_name[32]; 2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char actuator_name[32]; 2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char ois_name[32]; 2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char flash_name[32]; 2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_sensor_camera_id_t camera_id; 2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short slave_addr; 2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum i2c_freq_mode_t i2c_freq_mode; 2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_reg_addr_type addr_type; 2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_id_info_t sensor_id_info; 2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_power_setting_array power_setting_array; 2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char is_init_params_valid; 2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_sensor_init_params sensor_init_params; 2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_sensor_output_format_t output_format; 2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_i2c_reg_array { 2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_addr; 2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_data; 2795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int delay; 2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_i2c_reg_setting { 2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_i2c_reg_array *reg_setting; 2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short size; 2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_reg_addr_type addr_type; 2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_data_type data_type; 2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_csid_vc_cfg { 2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char cid; 2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char dt; 2935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char decode_format; 2945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_csid_lut_params { 2975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char num_cid; 2985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_csid_vc_cfg vc_cfg_a[MAX_CID]; 2995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_csid_vc_cfg *vc_cfg[MAX_CID]; 3005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_csid_params { 3035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char lane_cnt; 3045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short lane_assign; 3055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char phy_sel; 3065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int csi_clk; 3075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_csid_lut_params lut_params; 3085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char csi_3p_sel; 3095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_csid_testmode_parms { 3125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int num_bytes_per_line; 3135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int num_lines; 3145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int h_blanking_count; 3155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int v_blanking_count; 3165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int payload_mode; 3175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_csiphy_params { 3205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char lane_cnt; 3215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char settle_cnt; 3225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short lane_mask; 3235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char combo_mode; 3245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char csid_core; 3255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int csiphy_clk; 3265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char csi_3phase; 3275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_i2c_seq_reg_array { 3305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_addr; 3315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char reg_data[I2C_SEQ_REG_DATA_MAX]; 3325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_data_size; 3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_i2c_seq_reg_setting { 3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_i2c_seq_reg_array *reg_setting; 3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short size; 3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_reg_addr_type addr_type; 3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_actuator_reg_params_t { 3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_actuator_write_type reg_write_type; 3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int hw_mask; 3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_addr; 3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short hw_shift; 3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short data_shift; 3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short data_type; 3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short addr_type; 3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_data; 3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct damping_params_t { 3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int damping_step; 3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int damping_delay; 3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int hw_params; 3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct region_params_t { 3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* [0] = ForwardDirection Macro boundary 3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin [1] = ReverseDirection Inf boundary 3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */ 3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short step_bound[2]; 3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short code_per_step; 3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin /* qvalue for converting float type numbers to integer format */ 3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int qvalue; 3695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct reg_settings_t { 3725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_addr; 373530e397c9e4fcc38f5e85d1ecc0f1539e186361bSteve Pfetsch enum msm_camera_i2c_reg_addr_type addr_type; 3745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short reg_data; 375530e397c9e4fcc38f5e85d1ecc0f1539e186361bSteve Pfetsch enum msm_camera_i2c_data_type data_type; 3765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_actuator_i2c_operation i2c_operation; 3775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int delay; 3785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 3795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct msm_camera_i2c_reg_setting_array { 3815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct msm_camera_i2c_reg_array reg_setting_a[MAX_I2C_REG_SET]; 3825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short size; 3835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_reg_addr_type addr_type; 3845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin enum msm_camera_i2c_data_type data_type; 3855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned short delay; 3865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 38705abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch 38805abf077198fdb75e0b4e991728e3d84fea133f1Steve Pfetsch#endif 389