13 #include "fsl_common.h" 20 #define BOARD_NAME "MIMXRT1064-EVK" 23 #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_LPUART 24 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART1 25 #define BOARD_DEBUG_UART_INSTANCE 1U 27 #define BOARD_DEBUG_UART_CLK_FREQ BOARD_DebugConsoleSrcFreq() 29 #define BOARD_UART_IRQ LPUART1_IRQn 30 #define BOARD_UART_IRQ_HANDLER LPUART1_IRQHandler 32 #ifndef BOARD_DEBUG_UART_BAUDRATE 33 #define BOARD_DEBUG_UART_BAUDRATE (115200U) 37 #define LOGIC_LED_ON (0U) 38 #define LOGIC_LED_OFF (1U) 39 #ifndef BOARD_USER_LED_GPIO 40 #define BOARD_USER_LED_GPIO GPIO1 42 #ifndef BOARD_USER_LED_GPIO_PIN 43 #define BOARD_USER_LED_GPIO_PIN (9U) 46 #define USER_LED_INIT(output) \ 47 GPIO_PinWrite(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN, output); \ 48 BOARD_USER_LED_GPIO->GDIR |= (1U << BOARD_USER_LED_GPIO_PIN) 49 #define USER_LED_ON() \ 50 GPIO_PortClear(BOARD_USER_LED_GPIO, 1U << BOARD_USER_LED_GPIO_PIN) 51 #define USER_LED_OFF() GPIO_PortSet(BOARD_USER_LED_GPIO, 1U << BOARD_USER_LED_GPIO_PIN) 52 #define USER_LED_TOGGLE() \ 53 GPIO_PinWrite(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN, \ 54 0x1 ^ GPIO_PinRead(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN)) 57 #ifndef BOARD_USER_BUTTON_GPIO 58 #define BOARD_USER_BUTTON_GPIO GPIO5 60 #ifndef BOARD_USER_BUTTON_GPIO_PIN 61 #define BOARD_USER_BUTTON_GPIO_PIN (0U) 63 #define BOARD_USER_BUTTON_IRQ GPIO5_Combined_0_15_IRQn 64 #define BOARD_USER_BUTTON_IRQ_HANDLER GPIO5_Combined_0_15_IRQHandler 65 #define BOARD_USER_BUTTON_NAME "SW8" 68 #define BOARD_FLASH_SIZE (0x400000U) 71 #define BOARD_ENET_BASEADDR ENET 74 #define BOARD_ENET0_PHY_ADDRESS (0x02U) 77 #define BOARD_USB_PHY_D_CAL (0x0CU) 78 #define BOARD_USB_PHY_TXCAL45DP (0x06U) 79 #define BOARD_USB_PHY_TXCAL45DM (0x06U) 81 #define BOARD_USDHC1_BASEADDR USDHC1 82 #define BOARD_USDHC2_BASEADDR USDHC2 83 #define BOARD_USDHC_CD_GPIO_BASE GPIO2 84 #define BOARD_USDHC_CD_GPIO_PIN 28 85 #define BOARD_USDHC_CD_PORT_IRQ GPIO2_Combined_16_31_IRQn 86 #define BOARD_USDHC_CD_PORT_IRQ_HANDLER GPIO2_Combined_16_31_IRQHandler 88 #define BOARD_USDHC_CD_STATUS() (GPIO_PinRead(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN)) 90 #define BOARD_USDHC_CD_INTERRUPT_STATUS() (GPIO_PortGetInterruptFlags(BOARD_USDHC_CD_GPIO_BASE)) 91 #define BOARD_USDHC_CD_CLEAR_INTERRUPT(flag) (GPIO_PortClearInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, flag)) 93 #define BOARD_USDHC_CD_GPIO_INIT() \ 95 gpio_pin_config_t sw_config = { \ 96 kGPIO_DigitalInput, 0, kGPIO_IntFallingEdge, \ 98 GPIO_PinInit(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN, &sw_config); \ 99 GPIO_PortEnableInterrupts(BOARD_USDHC_CD_GPIO_BASE, 1U << BOARD_USDHC_CD_GPIO_PIN); \ 100 GPIO_PortClearInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, ~0); \ 103 #define BOARD_SD_POWER_RESET_GPIO (GPIO1) 104 #define BOARD_SD_POWER_RESET_GPIO_PIN (5U) 106 #define BOARD_USDHC_CARD_INSERT_CD_LEVEL (0U) 108 #define BOARD_USDHC_MMCCARD_POWER_CONTROL(state) 110 #define BOARD_USDHC_MMCCARD_POWER_CONTROL_INIT() \ 112 gpio_pin_config_t sw_config = { \ 113 kGPIO_DigitalOutput, 0, kGPIO_NoIntmode, \ 115 GPIO_PinInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, &sw_config); \ 116 GPIO_PinWrite(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, true); \ 119 #define BOARD_USDHC_SDCARD_POWER_CONTROL_INIT() \ 121 gpio_pin_config_t sw_config = { \ 122 kGPIO_DigitalOutput, 0, kGPIO_NoIntmode, \ 124 GPIO_PinInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, &sw_config); \ 127 #define BOARD_USDHC_SDCARD_POWER_CONTROL(state) \ 128 (GPIO_PinWrite(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, state)) 130 #define BOARD_USDHC1_CLK_FREQ (CLOCK_GetSysPfdFreq(kCLOCK_Pfd2) / (CLOCK_GetDiv(kCLOCK_Usdhc1Div) + 1U)) 131 #define BOARD_USDHC2_CLK_FREQ (CLOCK_GetSysPfdFreq(kCLOCK_Pfd2) / (CLOCK_GetDiv(kCLOCK_Usdhc2Div) + 1U)) 133 #define BOARD_SD_HOST_BASEADDR BOARD_USDHC1_BASEADDR 134 #define BOARD_SD_HOST_CLK_FREQ BOARD_USDHC1_CLK_FREQ 135 #define BOARD_SD_HOST_IRQ USDHC1_IRQn 137 #define BOARD_MMC_HOST_BASEADDR BOARD_USDHC2_BASEADDR 138 #define BOARD_MMC_HOST_CLK_FREQ BOARD_USDHC2_CLK_FREQ 139 #define BOARD_MMC_HOST_IRQ USDHC2_IRQn 140 #define BOARD_MMC_VCCQ_SUPPLY kMMC_VoltageWindow170to195 141 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360 146 #define BOARD_MMC_SUPPORT_8BIT_BUS (1U) 148 #define BOARD_SD_HOST_SUPPORT_SDR104_FREQ (200000000U) 149 #define BOARD_SD_HOST_SUPPORT_HS200_FREQ (180000000U) 151 #define BOARD_SD_PIN_CONFIG(speed, strength) \ 153 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_00_USDHC1_CMD, \ 154 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 155 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 156 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 157 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 158 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_01_USDHC1_CLK, \ 159 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 160 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(0) | \ 161 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 162 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_02_USDHC1_DATA0, \ 163 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 164 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 165 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 166 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 167 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_03_USDHC1_DATA1, \ 168 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 169 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 170 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 171 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 172 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_04_USDHC1_DATA2, \ 173 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 174 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 175 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 176 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 177 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B0_05_USDHC1_DATA3, \ 178 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 179 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 180 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 181 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 184 #define BOARD_MMC_PIN_CONFIG(speed, strength) \ 186 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_05_USDHC2_CMD, \ 187 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 188 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 189 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 190 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 191 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_04_USDHC2_CLK, \ 192 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 193 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(0) | \ 194 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 195 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_03_USDHC2_DATA0, \ 196 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 197 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 198 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 199 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 200 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_02_USDHC2_DATA1, \ 201 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 202 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 203 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 204 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 205 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_01_USDHC2_DATA2, \ 206 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 207 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 208 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 209 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 210 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_00_USDHC2_DATA3, \ 211 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 212 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 213 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 214 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 215 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_08_USDHC2_DATA4, \ 216 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 217 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 218 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 219 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 220 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_09_USDHC2_DATA5, \ 221 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 222 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 223 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 224 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 225 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_10_USDHC2_DATA6, \ 226 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 227 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 228 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 229 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 230 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_11_USDHC2_DATA7, \ 231 IOMUXC_SW_PAD_CTL_PAD_SPEED(speed) | IOMUXC_SW_PAD_CTL_PAD_SRE_MASK | \ 232 IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | IOMUXC_SW_PAD_CTL_PAD_PUE_MASK | \ 233 IOMUXC_SW_PAD_CTL_PAD_HYS_MASK | IOMUXC_SW_PAD_CTL_PAD_PUS(1) | \ 234 IOMUXC_SW_PAD_CTL_PAD_DSE(strength)); \ 238 #define BOARD_INITGT202SHIELD_PWRON_GPIO GPIO1 239 #define BOARD_INITGT202SHIELD_PWRON_PORT 1U 240 #define BOARD_INITGT202SHIELD_PWRON_GPIO_PIN 3U 241 #define BOARD_INITGT202SHIELD_PWRON_PIN_NAME GPIO1_3 242 #define BOARD_INITGT202SHIELD_PWRON_LABEL "PWRON" 243 #define BOARD_INITGT202SHIELD_PWRON_NAME "PWRON" 244 #define BOARD_INITGT202SHIELD_PWRON_DIRECTION kGPIO_DigitalOutput 246 #define BOARD_INITGT202SHIELD_IRQ_GPIO GPIO1 247 #define BOARD_INITGT202SHIELD_IRQ_PORT 1U 248 #define BOARD_INITGT202SHIELD_IRQ_GPIO_PIN 19U 249 #define BOARD_INITGT202SHIELD_IRQ_PIN_NAME GPIO1_19 250 #define BOARD_INITGT202SHIELD_IRQ_LABEL "IRQ" 251 #define BOARD_INITGT202SHIELD_IRQ_NAME "IRQ" 252 #define BOARD_INITGT202SHIELD_IRQ_DIRECTION kGPIO_DigitalInput 254 #if defined(__cplusplus) 265 #if defined(__cplusplus)
void BOARD_InitDebugConsole(void)
uint32_t BOARD_DebugConsoleSrcFreq(void)