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