1 /******************************************************************************
2 * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 *****************************************************************************/
34 /**
35 * \brief Board library configurations
36 *
37 * This file configures the instance numbers, address and gpio reset
38 * details of different interfaces of TPR12 EVM.
39 *
40 */
41 #ifndef BOARD_CFG_H_
42 #define BOARD_CFG_H_
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
48 /* Board ID information */
49 #define BOARD_INFO_CPU_NAME "tpr12"
50 #define BOARD_INFO_BOARD_NAME "tpr12_evm"
52 /* UART LLD instance number for MSS UART port */
53 #define BOARD_MSS_UART_INSTANCE (0U)
55 #define BOARD_MSS_UARTB_INSTANCE (1U)
57 /* UART LLD instance number for DSS UART port */
58 #define BOARD_DSS_UART_INSTANCE (0U)
60 /* I2C instance as master for master/slave test example */
61 #define BOARD_I2C_MASTER_INSTANCE (0U)
62 /* I2C instance as salve for master/slave test example */
63 #define BOARD_I2C_SLAVE_INSTANCE (0U)
65 /* UART LLD instance number for primary UART port */
66 #if defined (__TI_ARM_V7R4__)
67 #define BOARD_UART_INSTANCE (BOARD_MSS_UART_INSTANCE)
68 #else
69 #define BOARD_UART_INSTANCE (BOARD_DSS_UART_INSTANCE)
70 #endif
72 /* SPI instance connected to PMIC - MSS SPIB */
73 #define BOARD_SPI_PMIC_INSTANCE (1U)
75 /* QSPI instance connected to OSPI NOR flash */
76 #define BOARD_QSPI_NOR_INSTANCE (0U)
78 /* Number of LEDS connected to GPIO */
79 #define BOARD_GPIO_LED_NUM (1U)
81 /* GPIO instance connected to LED */
82 #define BOARD_GPIO_LED_PORT_NUM (0U)
84 /* GPIO pin connected to LED */
85 #define BOARD_GPIO_LED_PIN_NUM (2U)
87 /* GPIO instance connected to push button */
88 #define BOARD_GPIO_SWITCH_PIN_NUM (28U)
90 /* MSS EMAC Port number */
91 #define BOARD_EMAC_PORT_MAX (0x1U)
92 #define BOARD_ETH_PORT (0x0U)
94 /* MCU EMAC PHY MDIO address */
95 #define BOARD_MCU_EMAC_PHY_ADDR (0U)
97 /* MSS EMAC MAX REG DUMP */
98 #define BOARD_EMAC_REG_DUMP_MAX (16U)
100 /* MSS EMAC PHY register address definitions for reading strap values */
101 #define BOARD_EMAC_STRAP_STS1_ADDR (0x6EU)
102 #define BOARD_EMAC_STRAP_STS2_ADDR (0x6FU)
104 /* MSS_ETH_INTn */
105 #define BOARD_GPIO_EMAC_INT_PIN_NUM (2U) /* MSS GPIO_2 */
107 /* MSS_ETH_INTn */
108 #define BOARD_GPIO_EMAC_RST_PIN_NUM (28U) /* MSS GPIO_28 */
110 /* Temperature sensor i2c instance */
111 #define BOARD_TEMP_SENSOR_I2C_INSTANCE (0U)
113 /* Temperature sensor slave device address */
114 #define BOARD_TEMP_SENSOR_I2C_SLAVE_DEVICE_ADDR (0x49U)
116 #define BOARD_I2C_CURRENT_MONITOR_INSTANCE (0U)
118 /* I2C instance connected to EEPROM */
119 #define BOARD_I2C_EEPROM_INSTANCE (0U)
121 /* I2C address for EEPROM */
122 #define BOARD_I2C_EEPROM_ADDR (0x50U)
124 /* Number of TPR12 boards supported */
125 #define BOARD_ID_MAX_BOARDS (0x1U)
127 /* Different SoC domains */
128 #define BOARD_SOC_DOMAIN_MSS (0U)
129 #define BOARD_SOC_DOMAIN_RCSS (1U)
130 #define BOARD_SOC_DOMAIN_DSS (2U)
132 /* Maximum possible buffer length */
133 #define BOARD_EEPROM_MAX_BUFF_LENGTH (197U)
135 /* EEPROM board ID information */
136 #define BOARD_EEPROM_HEADER_FIELD_SIZE (7U)
137 #define BOARD_EEPROM_TYPE_SIZE (1U)
138 #define BOARD_EEPROM_STRUCT_LENGTH_SIZE (2U)
139 #define BOARD_EEPROM_MAGIC_NUMBER (0xEE3355AA)
141 #define BOARD_BOARD_FIELD_TYPE (0x10)
142 #define BOARD_DDR_FIELD_TYPE (0x11)
143 #define BOARD_MACINFO_FIELD_TYPE (0x13)
144 #define BOARD_ENDLIST (0xFE)
146 #define BOARD_EEPROM_HEADER_LENGTH (4U)
147 #define BOARD_EEPROM_BOARD_NAME_LENGTH (8U)
148 #define BOARD_EEPROM_VERSION_LENGTH (4U)
149 #define BOARD_EEPROM_SERIAL_NO_LENGTH (12U)
150 #define BOARD_EEPROM_CONFIG_LENGTH (32U)
152 #define BOARD_EEPROM_BOARD_NAME_ADDR (BOARD_EEPROM_HEADER_ADDR + BOARD_EEPROM_HEADER_LENGTH)
153 #define BOARD_EEPROM_VERSION_ADDR (BOARD_EEPROM_BOARD_NAME_ADDR + BOARD_EEPROM_BOARD_NAME_LENGTH)
154 #define BOARD_EEPROM_SERIAL_NO_ADDR (BOARD_EEPROM_VERSION_ADDR + BOARD_EEPROM_VERSION_LENGTH)
155 #define BOARD_EEPROM_CONFIG_ADDR (BOARD_EEPROM_SERIAL_NO_ADDR + BOARD_EEPROM_SERIAL_NO_LENGTH)
157 #define BOARD_EEPROM_HEADER_ADDR (0U)
159 /* Enable NOR flash driver */
160 #define BOARD_NOR_FLASH_IN
162 #ifdef __cplusplus
163 }
164 #endif /* __cplusplus */
166 #endif /* BOARD_CFG_H_ */