xref: /rk3399_rockchip-uboot/board/gateworks/gw_ventana/ventana_eeprom.h (revision 1622559066d890f1b7622be0ede8a5d64de66ef3)
159189a8bSTim Harvey /*
259189a8bSTim Harvey  * Copyright (C) 2013 Gateworks Corporation
359189a8bSTim Harvey  *
459189a8bSTim Harvey  * SPDX-License-Identifier: GPL-2.0+
559189a8bSTim Harvey  */
659189a8bSTim Harvey 
759189a8bSTim Harvey #ifndef _VENTANA_EEPROM_
859189a8bSTim Harvey #define _VENTANA_EEPROM_
959189a8bSTim Harvey 
1059189a8bSTim Harvey struct ventana_board_info {
1159189a8bSTim Harvey 	u8 mac0[6];          /* 0x00: MAC1 */
1259189a8bSTim Harvey 	u8 mac1[6];          /* 0x06: MAC2 */
1359189a8bSTim Harvey 	u8 res0[12];         /* 0x0C: reserved */
1459189a8bSTim Harvey 	u32 serial;          /* 0x18: Serial Number (read only) */
1559189a8bSTim Harvey 	u8 res1[4];          /* 0x1C: reserved */
1659189a8bSTim Harvey 	u8 mfgdate[4];       /* 0x20: MFG date (read only) */
1759189a8bSTim Harvey 	u8 res2[7];          /* 0x24 */
1859189a8bSTim Harvey 	/* sdram config */
19a594a6f1STim Harvey 	u8 sdram_size;       /* 0x2B: (16 << n) MB */
20a594a6f1STim Harvey 	u8 sdram_speed;      /* 0x2C: (33.333 * n) MHz */
21a594a6f1STim Harvey 	u8 sdram_width;      /* 0x2D: (8 << n) bit */
2259189a8bSTim Harvey 	/* cpu config */
23a594a6f1STim Harvey 	u8 cpu_speed;        /* 0x2E: (33.333 * n) MHz */
24a594a6f1STim Harvey 	u8 cpu_type;         /* 0x2F: 7=imx6q, 8=imx6dl */
2559189a8bSTim Harvey 	u8 model[16];        /* 0x30: model string */
2659189a8bSTim Harvey 	/* FLASH config */
27a594a6f1STim Harvey 	u8 nand_flash_size;  /* 0x40: (8 << (n-1)) MB */
28a594a6f1STim Harvey 	u8 spi_flash_size;   /* 0x41: (4 << (n-1)) MB */
2959189a8bSTim Harvey 
3059189a8bSTim Harvey 	/* Config1: SoC Peripherals */
3159189a8bSTim Harvey 	u8 config[8];        /* 0x42: loading options */
3259189a8bSTim Harvey 
3359189a8bSTim Harvey 	u8 res3[4];          /* 0x4A */
3459189a8bSTim Harvey 
3559189a8bSTim Harvey 	u8 chksum[2];        /* 0x4E */
3659189a8bSTim Harvey };
3759189a8bSTim Harvey 
3859189a8bSTim Harvey /* config bits */
3959189a8bSTim Harvey enum {
4059189a8bSTim Harvey 	EECONFIG_ETH0,
4159189a8bSTim Harvey 	EECONFIG_ETH1,
4259189a8bSTim Harvey 	EECONFIG_HDMI_OUT,
4359189a8bSTim Harvey 	EECONFIG_SATA,
4459189a8bSTim Harvey 	EECONFIG_PCIE,
4559189a8bSTim Harvey 	EECONFIG_SSI0,
4659189a8bSTim Harvey 	EECONFIG_SSI1,
4759189a8bSTim Harvey 	EECONFIG_LCD,
4859189a8bSTim Harvey 	EECONFIG_LVDS0,
4959189a8bSTim Harvey 	EECONFIG_LVDS1,
5059189a8bSTim Harvey 	EECONFIG_USB0,
5159189a8bSTim Harvey 	EECONFIG_USB1,
5259189a8bSTim Harvey 	EECONFIG_SD0,
5359189a8bSTim Harvey 	EECONFIG_SD1,
5459189a8bSTim Harvey 	EECONFIG_SD2,
5559189a8bSTim Harvey 	EECONFIG_SD3,
5659189a8bSTim Harvey 	EECONFIG_UART0,
5759189a8bSTim Harvey 	EECONFIG_UART1,
5859189a8bSTim Harvey 	EECONFIG_UART2,
5959189a8bSTim Harvey 	EECONFIG_UART3,
6059189a8bSTim Harvey 	EECONFIG_UART4,
6159189a8bSTim Harvey 	EECONFIG_IPU0,
6259189a8bSTim Harvey 	EECONFIG_IPU1,
6359189a8bSTim Harvey 	EECONFIG_FLEXCAN,
6459189a8bSTim Harvey 	EECONFIG_MIPI_DSI,
6559189a8bSTim Harvey 	EECONFIG_MIPI_CSI,
6659189a8bSTim Harvey 	EECONFIG_TZASC0,
6759189a8bSTim Harvey 	EECONFIG_TZASC1,
6859189a8bSTim Harvey 	EECONFIG_I2C0,
6959189a8bSTim Harvey 	EECONFIG_I2C1,
7059189a8bSTim Harvey 	EECONFIG_I2C2,
7159189a8bSTim Harvey 	EECONFIG_VPU,
7259189a8bSTim Harvey 	EECONFIG_CSI0,
7359189a8bSTim Harvey 	EECONFIG_CSI1,
7459189a8bSTim Harvey 	EECONFIG_CAAM,
7559189a8bSTim Harvey 	EECONFIG_MEZZ,
7659189a8bSTim Harvey 	EECONFIG_RES1,
7759189a8bSTim Harvey 	EECONFIG_RES2,
7859189a8bSTim Harvey 	EECONFIG_RES3,
7959189a8bSTim Harvey 	EECONFIG_RES4,
8059189a8bSTim Harvey 	EECONFIG_ESPCI0,
8159189a8bSTim Harvey 	EECONFIG_ESPCI1,
8259189a8bSTim Harvey 	EECONFIG_ESPCI2,
8359189a8bSTim Harvey 	EECONFIG_ESPCI3,
8459189a8bSTim Harvey 	EECONFIG_ESPCI4,
8559189a8bSTim Harvey 	EECONFIG_ESPCI5,
8659189a8bSTim Harvey 	EECONFIG_RES5,
8759189a8bSTim Harvey 	EECONFIG_RES6,
8859189a8bSTim Harvey 	EECONFIG_GPS,
8959189a8bSTim Harvey 	EECONFIG_SPIFL0,
9059189a8bSTim Harvey 	EECONFIG_SPIFL1,
9159189a8bSTim Harvey 	EECONFIG_GSPBATT,
9259189a8bSTim Harvey 	EECONFIG_HDMI_IN,
9359189a8bSTim Harvey 	EECONFIG_VID_OUT,
9459189a8bSTim Harvey 	EECONFIG_VID_IN,
9559189a8bSTim Harvey 	EECONFIG_NAND,
9659189a8bSTim Harvey 	EECONFIG_RES8,
9759189a8bSTim Harvey 	EECONFIG_RES9,
9859189a8bSTim Harvey 	EECONFIG_RES10,
9959189a8bSTim Harvey 	EECONFIG_RES11,
10059189a8bSTim Harvey 	EECONFIG_RES12,
10159189a8bSTim Harvey 	EECONFIG_RES13,
10259189a8bSTim Harvey 	EECONFIG_RES14,
10359189a8bSTim Harvey 	EECONFIG_RES15,
10459189a8bSTim Harvey };
10559189a8bSTim Harvey 
1061badf2f4STim Harvey enum {
1071badf2f4STim Harvey 	GW54proto, /* original GW5400-A prototype */
1081badf2f4STim Harvey 	GW51xx,
1091badf2f4STim Harvey 	GW52xx,
1101badf2f4STim Harvey 	GW53xx,
1111badf2f4STim Harvey 	GW54xx,
11275f21e31STim Harvey 	GW551x,
1133aa22674STim Harvey 	GW552x,
114385575bcSTim Harvey 	GW553x,
11594a1d6c6STim Harvey 	GW560x,
116*214fb19bSTim Harvey 	GW5903,
1178d1a6ff8STim Harvey 	GW5904,
1181badf2f4STim Harvey 	GW_UNKNOWN,
1199c0fe83eSTim Harvey 	GW_BADCRC,
1201badf2f4STim Harvey };
1211badf2f4STim Harvey 
1229c0fe83eSTim Harvey /* config items */
1239c0fe83eSTim Harvey struct ventana_eeprom_config {
1249c0fe83eSTim Harvey 	const char *name;	/* name of item */
1259c0fe83eSTim Harvey 	const char *dtalias;	/* name of dt node to remove if not set */
1269c0fe83eSTim Harvey 	int bit;		/* bit within config */
1279c0fe83eSTim Harvey };
1289c0fe83eSTim Harvey 
1299c0fe83eSTim Harvey extern struct ventana_eeprom_config econfig[];
1309c0fe83eSTim Harvey extern struct ventana_board_info ventana_info;
1319c0fe83eSTim Harvey 
1321badf2f4STim Harvey int read_eeprom(int bus, struct ventana_board_info *);
1331badf2f4STim Harvey 
13459189a8bSTim Harvey #endif
135