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