xref: /OK3568_Linux_fs/kernel/drivers/media/i2c/imx258_eeprom_head.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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