xref: /OK3568_Linux_fs/u-boot/board/gateworks/gw_ventana/ventana_eeprom.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (C) 2013 Gateworks Corporation
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier: GPL-2.0+
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef _VENTANA_EEPROM_
8*4882a593Smuzhiyun #define _VENTANA_EEPROM_
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun struct ventana_board_info {
11*4882a593Smuzhiyun 	u8 mac0[6];          /* 0x00: MAC1 */
12*4882a593Smuzhiyun 	u8 mac1[6];          /* 0x06: MAC2 */
13*4882a593Smuzhiyun 	u8 res0[12];         /* 0x0C: reserved */
14*4882a593Smuzhiyun 	u32 serial;          /* 0x18: Serial Number (read only) */
15*4882a593Smuzhiyun 	u8 res1[4];          /* 0x1C: reserved */
16*4882a593Smuzhiyun 	u8 mfgdate[4];       /* 0x20: MFG date (read only) */
17*4882a593Smuzhiyun 	u8 res2[7];          /* 0x24 */
18*4882a593Smuzhiyun 	/* sdram config */
19*4882a593Smuzhiyun 	u8 sdram_size;       /* 0x2B: (16 << n) MB */
20*4882a593Smuzhiyun 	u8 sdram_speed;      /* 0x2C: (33.333 * n) MHz */
21*4882a593Smuzhiyun 	u8 sdram_width;      /* 0x2D: (8 << n) bit */
22*4882a593Smuzhiyun 	/* cpu config */
23*4882a593Smuzhiyun 	u8 cpu_speed;        /* 0x2E: (33.333 * n) MHz */
24*4882a593Smuzhiyun 	u8 cpu_type;         /* 0x2F: 7=imx6q, 8=imx6dl */
25*4882a593Smuzhiyun 	u8 model[16];        /* 0x30: model string */
26*4882a593Smuzhiyun 	/* FLASH config */
27*4882a593Smuzhiyun 	u8 nand_flash_size;  /* 0x40: (8 << (n-1)) MB */
28*4882a593Smuzhiyun 	u8 spi_flash_size;   /* 0x41: (4 << (n-1)) MB */
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun 	/* Config1: SoC Peripherals */
31*4882a593Smuzhiyun 	u8 config[8];        /* 0x42: loading options */
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun 	u8 res3[4];          /* 0x4A */
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun 	u8 chksum[2];        /* 0x4E */
36*4882a593Smuzhiyun };
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /* config bits */
39*4882a593Smuzhiyun enum {
40*4882a593Smuzhiyun 	EECONFIG_ETH0,
41*4882a593Smuzhiyun 	EECONFIG_ETH1,
42*4882a593Smuzhiyun 	EECONFIG_HDMI_OUT,
43*4882a593Smuzhiyun 	EECONFIG_SATA,
44*4882a593Smuzhiyun 	EECONFIG_PCIE,
45*4882a593Smuzhiyun 	EECONFIG_SSI0,
46*4882a593Smuzhiyun 	EECONFIG_SSI1,
47*4882a593Smuzhiyun 	EECONFIG_LCD,
48*4882a593Smuzhiyun 	EECONFIG_LVDS0,
49*4882a593Smuzhiyun 	EECONFIG_LVDS1,
50*4882a593Smuzhiyun 	EECONFIG_USB0,
51*4882a593Smuzhiyun 	EECONFIG_USB1,
52*4882a593Smuzhiyun 	EECONFIG_SD0,
53*4882a593Smuzhiyun 	EECONFIG_SD1,
54*4882a593Smuzhiyun 	EECONFIG_SD2,
55*4882a593Smuzhiyun 	EECONFIG_SD3,
56*4882a593Smuzhiyun 	EECONFIG_UART0,
57*4882a593Smuzhiyun 	EECONFIG_UART1,
58*4882a593Smuzhiyun 	EECONFIG_UART2,
59*4882a593Smuzhiyun 	EECONFIG_UART3,
60*4882a593Smuzhiyun 	EECONFIG_UART4,
61*4882a593Smuzhiyun 	EECONFIG_IPU0,
62*4882a593Smuzhiyun 	EECONFIG_IPU1,
63*4882a593Smuzhiyun 	EECONFIG_FLEXCAN,
64*4882a593Smuzhiyun 	EECONFIG_MIPI_DSI,
65*4882a593Smuzhiyun 	EECONFIG_MIPI_CSI,
66*4882a593Smuzhiyun 	EECONFIG_TZASC0,
67*4882a593Smuzhiyun 	EECONFIG_TZASC1,
68*4882a593Smuzhiyun 	EECONFIG_I2C0,
69*4882a593Smuzhiyun 	EECONFIG_I2C1,
70*4882a593Smuzhiyun 	EECONFIG_I2C2,
71*4882a593Smuzhiyun 	EECONFIG_VPU,
72*4882a593Smuzhiyun 	EECONFIG_CSI0,
73*4882a593Smuzhiyun 	EECONFIG_CSI1,
74*4882a593Smuzhiyun 	EECONFIG_CAAM,
75*4882a593Smuzhiyun 	EECONFIG_MEZZ,
76*4882a593Smuzhiyun 	EECONFIG_RES1,
77*4882a593Smuzhiyun 	EECONFIG_RES2,
78*4882a593Smuzhiyun 	EECONFIG_RES3,
79*4882a593Smuzhiyun 	EECONFIG_RES4,
80*4882a593Smuzhiyun 	EECONFIG_ESPCI0,
81*4882a593Smuzhiyun 	EECONFIG_ESPCI1,
82*4882a593Smuzhiyun 	EECONFIG_ESPCI2,
83*4882a593Smuzhiyun 	EECONFIG_ESPCI3,
84*4882a593Smuzhiyun 	EECONFIG_ESPCI4,
85*4882a593Smuzhiyun 	EECONFIG_ESPCI5,
86*4882a593Smuzhiyun 	EECONFIG_RES5,
87*4882a593Smuzhiyun 	EECONFIG_RES6,
88*4882a593Smuzhiyun 	EECONFIG_GPS,
89*4882a593Smuzhiyun 	EECONFIG_SPIFL0,
90*4882a593Smuzhiyun 	EECONFIG_SPIFL1,
91*4882a593Smuzhiyun 	EECONFIG_GSPBATT,
92*4882a593Smuzhiyun 	EECONFIG_HDMI_IN,
93*4882a593Smuzhiyun 	EECONFIG_VID_OUT,
94*4882a593Smuzhiyun 	EECONFIG_VID_IN,
95*4882a593Smuzhiyun 	EECONFIG_NAND,
96*4882a593Smuzhiyun 	EECONFIG_RES8,
97*4882a593Smuzhiyun 	EECONFIG_RES9,
98*4882a593Smuzhiyun 	EECONFIG_RES10,
99*4882a593Smuzhiyun 	EECONFIG_RES11,
100*4882a593Smuzhiyun 	EECONFIG_RES12,
101*4882a593Smuzhiyun 	EECONFIG_RES13,
102*4882a593Smuzhiyun 	EECONFIG_RES14,
103*4882a593Smuzhiyun 	EECONFIG_RES15,
104*4882a593Smuzhiyun };
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun enum {
107*4882a593Smuzhiyun 	GW54proto, /* original GW5400-A prototype */
108*4882a593Smuzhiyun 	GW51xx,
109*4882a593Smuzhiyun 	GW52xx,
110*4882a593Smuzhiyun 	GW53xx,
111*4882a593Smuzhiyun 	GW54xx,
112*4882a593Smuzhiyun 	GW551x,
113*4882a593Smuzhiyun 	GW552x,
114*4882a593Smuzhiyun 	GW553x,
115*4882a593Smuzhiyun 	GW560x,
116*4882a593Smuzhiyun 	GW5903,
117*4882a593Smuzhiyun 	GW5904,
118*4882a593Smuzhiyun 	GW_UNKNOWN,
119*4882a593Smuzhiyun 	GW_BADCRC,
120*4882a593Smuzhiyun };
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun /* config items */
123*4882a593Smuzhiyun struct ventana_eeprom_config {
124*4882a593Smuzhiyun 	const char *name;	/* name of item */
125*4882a593Smuzhiyun 	const char *dtalias;	/* name of dt node to remove if not set */
126*4882a593Smuzhiyun 	int bit;		/* bit within config */
127*4882a593Smuzhiyun };
128*4882a593Smuzhiyun 
129*4882a593Smuzhiyun extern struct ventana_eeprom_config econfig[];
130*4882a593Smuzhiyun extern struct ventana_board_info ventana_info;
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun int read_eeprom(int bus, struct ventana_board_info *);
133*4882a593Smuzhiyun 
134*4882a593Smuzhiyun #endif
135