1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd. */ 3 4 #ifndef IMX258_EEPROM_HEAD_H 5 #define IMX258_EEPROM_HEAD_H 6 7 #define SLAVE_ADDRESS_GZ 0x50 8 #define GZ_INFO_FLAG_REG 0X0000 9 #define GZ_ID_REG 0X0005 10 #define GZ_LENS_ID_REG 0X0006 11 #define GZ_PRODUCT_YEAR_REG 0X000A 12 #define GZ_PRODUCT_MONTH_REG 0X000B 13 #define GZ_PRODUCT_DAY_REG 0X000C 14 #define GZ_AWB_FLAG_REG 0x001c 15 #define GZ_CUR_R_REG 0x001d 16 #define GZ_CUR_GR_REG 0x001e 17 #define GZ_CUR_GB_REG 0x001f 18 #define GZ_CUR_B_REG 0x0020 19 #define GZ_GOLDEN_R_REG 0x0021 20 #define GZ_GOLDEN_GR_REG 0x0022 21 #define GZ_GOLDEN_GB_REG 0x0023 22 #define GZ_GOLDEN_B_REG 0x0024 23 #define GZ_AWB_CHECKSUM_REG 0x0025 24 #define GZ_LSC_FLAG_REG 0X003A 25 #define GZ_LSC_DATA_START_REG 0x003B 26 #define GZ_LSC_CHECKSUM_REG 0x0233 27 #define GZ_VCM_FLAG_REG 0X0788 28 #define GZ_VCM_DIR_REG 0X0789 29 #define GZ_VCM_START_REG 0X078C 30 #define GZ_VCM_END_REG 0X078A 31 #define GZ_VCM_CHECKSUM_REG 0x0790 32 #define GZ_SPC_FLAG_REG 0X0CE1 33 #define GZ_SPC_DATA_START_REG 0x0CE2 34 #define GZ_SPC_CHECKSUM_REG 0x0d60 35 36 struct imx258_otp_info { 37 u32 flag; //bit[7]: info bit[6]:wb bit[5]:vcm bit[4]:lenc bit[3]:spc 38 u32 module_id; 39 u32 lens_id; 40 u32 year; 41 u32 month; 42 u32 day; 43 u32 rg_ratio; 44 u32 bg_ratio; 45 u32 rg_golden; 46 u32 bg_golden; 47 int vcm_start; 48 int vcm_end; 49 int vcm_dir; 50 u8 lenc[504]; 51 u8 spc[126]; 52 }; 53 54 /* imx258_eeprom device structure */ 55 struct imx258_eeprom_device { 56 struct v4l2_subdev sd; 57 struct i2c_client *client; 58 struct imx258_otp_info *otp; 59 }; 60 61 #endif /* IMX258_EEPROM_HEAD_H */ 62 63