12 #include "fsl_common.h" 14 #include "fsl_clock.h" 20 #define BOARD_NAME "MIMXRT1170-EVK" 21 #ifndef DEBUG_CONSOLE_UART_INDEX 22 #define DEBUG_CONSOLE_UART_INDEX 1 26 #define BOARD_DEBUG_UART_TYPE kSerialPort_Uart 27 #define BOARD_DEBUG_UART_CLK_FREQ 24000000 29 #if DEBUG_CONSOLE_UART_INDEX == 1 30 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART1 31 #define BOARD_DEBUG_UART_INSTANCE 1U 32 #define BOARD_UART_IRQ LPUART1_IRQn 33 #define BOARD_UART_IRQ_HANDLER LPUART1_IRQHandler 34 #elif DEBUG_CONSOLE_UART_INDEX == 2 35 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART2 36 #define BOARD_DEBUG_UART_INSTANCE 2U 37 #define BOARD_UART_IRQ LPUART2_IRQn 38 #define BOARD_UART_IRQ_HANDLER LPUART2_IRQHandler 39 #elif DEBUG_CONSOLE_UART_INDEX == 12 40 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART12 41 #define BOARD_DEBUG_UART_INSTANCE 12U 42 #define BOARD_UART_IRQ LPUART12_IRQn 43 #define BOARD_UART_IRQ_HANDLER LPUART12_IRQHandler 45 #error "Unsupported UART" 48 #ifndef BOARD_DEBUG_UART_BAUDRATE 49 #define BOARD_DEBUG_UART_BAUDRATE (115200U) 53 #if defined(FSL_FEATURE_MU_SIDE_A) 55 #define MU_IRQ MUA_IRQn 56 #define MU_IRQ_HANDLER MUA_IRQHandler 58 #if defined(FSL_FEATURE_MU_SIDE_B) 60 #define MU_IRQ MUB_IRQn 61 #define MU_IRQ_HANDLER MUB_IRQHandler 63 #define MU_IRQ_PRIORITY (2) 66 #define LOGIC_LED_ON (0U) 67 #define LOGIC_LED_OFF (1U) 68 #ifndef BOARD_USER_LED_GPIO 69 #define BOARD_USER_LED_GPIO GPIO9 71 #ifndef BOARD_USER_LED_GPIO_PIN 72 #define BOARD_USER_LED_GPIO_PIN (3U) 75 #define USER_LED_INIT(output) \ 76 GPIO_PinWrite(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN, output); \ 77 BOARD_USER_LED_GPIO->GDIR |= (1U << BOARD_USER_LED_GPIO_PIN) 78 #define USER_LED_OFF() \ 79 GPIO_PortClear(BOARD_USER_LED_GPIO, 1U << BOARD_USER_LED_GPIO_PIN) 80 #define USER_LED_ON() GPIO_PortSet(BOARD_USER_LED_GPIO, 1U << BOARD_USER_LED_GPIO_PIN) 81 #define USER_LED_TOGGLE() \ 82 GPIO_PinWrite(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN, \ 83 0x1 ^ GPIO_PinRead(BOARD_USER_LED_GPIO, BOARD_USER_LED_GPIO_PIN)) 86 #ifndef BOARD_USER_BUTTON_GPIO 87 #define BOARD_USER_BUTTON_GPIO GPIO13 89 #ifndef BOARD_USER_BUTTON_GPIO_PIN 90 #define BOARD_USER_BUTTON_GPIO_PIN (0U) 92 #define BOARD_USER_BUTTON_IRQ GPIO13_Combined_0_31_IRQn 93 #define BOARD_USER_BUTTON_IRQ_HANDLER GPIO13_Combined_0_31_IRQHandler 94 #define BOARD_USER_BUTTON_NAME "SW7" 97 #define BOARD_FLASH_SIZE (0x1000000U) 101 #define SKIP_SEMC_INIT 105 #define BOARD_ENET0_PHY_ADDRESS (0x02U) 108 #define BOARD_SMARTCARD_MODULE (EMVSIM1) 109 #define BOARD_SMARTCARD_MODULE_IRQ (EMVSIM1_IRQn) 110 #define BOARD_SMARTCARD_CLOCK_MODULE_CLK_FREQ (CLOCK_GetRootClockFreq(kCLOCK_Root_Emv1)) 111 #define BOARD_SMARTCARD_CLOCK_VALUE (4000000U) 114 #define BOARD_USB_PHY_D_CAL (0x0CU) 115 #define BOARD_USB_PHY_TXCAL45DP (0x06U) 116 #define BOARD_USB_PHY_TXCAL45DM (0x06U) 118 #define BOARD_ARDUINO_INT_IRQ (GPIO1_INT3_IRQn) 119 #define BOARD_ARDUINO_I2C_IRQ (LPI2C1_IRQn) 120 #define BOARD_ARDUINO_I2C_INDEX (1) 121 #define BOARD_USDHC1_BASEADDR USDHC1 122 #define BOARD_USDHC2_BASEADDR USDHC2 123 #define BOARD_USDHC_CD_GPIO_BASE GPIO9 124 #define BOARD_USDHC_CD_GPIO_PIN 2 125 #define BOARD_USDHC_CD_PORT_IRQ GPIO2_Combined_16_31_IRQn 126 #define BOARD_USDHC_CD_PORT_IRQ_HANDLER GPIO2_Combined_16_31_IRQHandler 128 #define BOARD_USDHC_CD_STATUS() (GPIO_PinRead(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN)) 130 #define BOARD_USDHC_CD_INTERRUPT_STATUS() (GPIO_PortGetInterruptFlags(BOARD_USDHC_CD_GPIO_BASE)) 131 #define BOARD_USDHC_CD_CLEAR_INTERRUPT(flag) (GPIO_PortClearInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, flag)) 133 #define BOARD_USDHC_CD_GPIO_INIT() \ 135 gpio_pin_config_t sw_config = { \ 136 kGPIO_DigitalInput, \ 138 kGPIO_IntRisingOrFallingEdge, \ 140 GPIO_PinInit(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN, &sw_config); \ 141 GPIO_PortEnableInterrupts(BOARD_USDHC_CD_GPIO_BASE, 1U << BOARD_USDHC_CD_GPIO_PIN); \ 142 GPIO_PortClearInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, ~0); \ 144 #define BOARD_HAS_SDCARD (1U) 145 #define BOARD_SD_POWER_RESET_GPIO (GPIO9) 146 #define BOARD_SD_POWER_RESET_GPIO_PIN (14U) 148 #define BOARD_USDHC_CARD_INSERT_CD_LEVEL (0U) 150 #define BOARD_USDHC_MMCCARD_POWER_CONTROL(state) 152 #define BOARD_USDHC_MMCCARD_POWER_CONTROL_INIT() \ 154 gpio_pin_config_t sw_config = { \ 155 kGPIO_DigitalOutput, \ 159 GPIO_PinInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, &sw_config); \ 160 GPIO_PinWrite(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, true); \ 163 #define BOARD_USDHC_SDCARD_POWER_CONTROL_INIT() \ 165 gpio_pin_config_t sw_config = { \ 166 kGPIO_DigitalOutput, \ 170 GPIO_PinInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, &sw_config); \ 173 #define BOARD_USDHC_SDCARD_POWER_CONTROL(state) \ 174 (GPIO_PinWrite(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PIN, state == true ? false : true)) 176 #define BOARD_USDHC1_CLK_FREQ 400000000U 177 #define BOARD_USDHC2_CLK_FREQ (CLOCK_GetSysPfdFreq(kCLOCK_Pfd0) / (CLOCK_GetDiv(kCLOCK_Usdhc2Div) + 1U)) 179 #define BOARD_SD_HOST_BASEADDR BOARD_USDHC1_BASEADDR 180 #define BOARD_SD_HOST_CLK_FREQ BOARD_USDHC1_CLK_FREQ 181 #define BOARD_SD_HOST_IRQ USDHC1_IRQn 183 #define BOARD_MMC_HOST_BASEADDR BOARD_USDHC2_BASEADDR 184 #define BOARD_MMC_HOST_CLK_FREQ BOARD_USDHC2_CLK_FREQ 185 #define BOARD_MMC_HOST_IRQ USDHC2_IRQn 186 #define BOARD_MMC_VCCQ_SUPPLY kMMC_VoltageWindow170to195 187 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360 192 #define BOARD_MMC_SUPPORT_8BIT_BUS (1U) 194 #define BOARD_SD_HOST_SUPPORT_SDR104_FREQ (200000000U) 195 #define BOARD_SD_HOST_SUPPORT_HS200_FREQ (180000000U) 198 #define BOARD_INITGT202SHIELD_PWRON_GPIO GPIO1 199 #define BOARD_INITGT202SHIELD_PWRON_PORT 1U 200 #define BOARD_INITGT202SHIELD_PWRON_GPIO_PIN 3U 201 #define BOARD_INITGT202SHIELD_PWRON_PIN_NAME GPIO1_3 202 #define BOARD_INITGT202SHIELD_PWRON_LABEL "PWRON" 203 #define BOARD_INITGT202SHIELD_PWRON_NAME "PWRON" 204 #define BOARD_INITGT202SHIELD_PWRON_DIRECTION kGPIO_DigitalOutput 206 #define BOARD_INITGT202SHIELD_IRQ_GPIO GPIO1 207 #define BOARD_INITGT202SHIELD_IRQ_PORT 1U 208 #define BOARD_INITGT202SHIELD_IRQ_GPIO_PIN 19U 209 #define BOARD_INITGT202SHIELD_IRQ_PIN_NAME GPIO1_19 210 #define BOARD_INITGT202SHIELD_IRQ_LABEL "IRQ" 211 #define BOARD_INITGT202SHIELD_IRQ_NAME "IRQ" 212 #define BOARD_INITGT202SHIELD_IRQ_DIRECTION kGPIO_DigitalInput 214 #define BOARD_INITSILEX2401SHIELD_PWRON_GPIO GPIO1 215 #define BOARD_INITSILEX2401SHIELD_PWRON_PORT 1U 216 #define BOARD_INITSILEX2401SHIELD_PWRON_GPIO_PIN 9U 217 #define BOARD_INITSILEX2401SHIELD_PWRON_PIN_NAME GPIO1_9 218 #define BOARD_INITSILEX2401SHIELD_PWRON_LABEL "PWRON" 219 #define BOARD_INITSILEX2401SHIELD_PWRON_NAME "PWRON" 220 #define BOARD_INITSILEX2401SHIELD_PWRON_DIRECTION kGPIO_DigitalOutput 222 #define BOARD_INITSILEX2401SHIELD_IRQ_GPIO GPIO1 223 #define BOARD_INITSILEX2401SHIELD_IRQ_PORT 1U 224 #define BOARD_INITSILEX2401SHIELD_IRQ_GPIO_PIN 11U 225 #define BOARD_INITSILEX2401SHIELD_IRQ_PIN_NAME GPIO1_11 226 #define BOARD_INITSILEX2401SHIELD_IRQ_LABEL "IRQ" 227 #define BOARD_INITSILEX2401SHIELD_IRQ_NAME "IRQ" 228 #define BOARD_INITSILEX2401SHIELD_IRQ_DIRECTION kGPIO_DigitalInput 231 #define BOARD_ACCEL_I2C_BASEADDR LPI2C5 233 #define BOARD_ACCEL_I2C_CLOCK_FREQ (CLOCK_GetRootClockFreq(kCLOCK_Root_Lpi2c5)) 235 #define BOARD_CODEC_I2C_BASEADDR LPI2C5 236 #define BOARD_CODEC_I2C_INSTANCE 5U 237 #define BOARD_CODEC_I2C_CLOCK_SOURCE_SELECT (0U) 238 #define BOARD_CODEC_I2C_CLOCK_SOURCE_DIVIDER (5U) 239 #define BOARD_CODEC_I2C_CLOCK_FREQ (24000000U) 242 #define BOARD_CAMERA_I2C_BASEADDR LPI2C6 243 #define BOARD_CAMERA_I2C_CLOCK_ROOT kCLOCK_Root_Lpi2c6 244 #define BOARD_CAMERA_I2C_CLOCK_SOURCE (1U) 245 #define BOARD_CAMERA_I2C_CLOCK_DIVIDER (11U) 248 #define BOARD_MIPI_PANEL_RST_GPIO GPIO9 249 #define BOARD_MIPI_PANEL_RST_PIN 1 250 #define BOARD_MIPI_PANEL_POWER_GPIO GPIO11 251 #define BOARD_MIPI_PANEL_POWER_PIN 16 253 #define BOARD_MIPI_PANEL_BL_GPIO GPIO9 254 #define BOARD_MIPI_PANEL_BL_PIN 29 257 #define BOARD_MIPI_PANEL_TOUCH_I2C_BASEADDR LPI2C5 258 #define BOARD_MIPI_PANEL_TOUCH_I2C_CLOCK_ROOT kCLOCK_Root_Lpi2c5 259 #define BOARD_MIPI_PANEL_TOUCH_I2C_CLOCK_SOURCE (1U) 260 #define BOARD_MIPI_PANEL_TOUCH_I2C_CLOCK_DIVIDER (11U) 261 #define BOARD_MIPI_PANEL_TOUCH_I2C_CLOCK_FREQ CLOCK_GetRootClockFreq(BOARD_MIPI_PANEL_TOUCH_I2C_CLOCK_ROOT) 262 #define BOARD_MIPI_PANEL_TOUCH_RST_GPIO GPIO9 263 #define BOARD_MIPI_PANEL_TOUCH_RST_PIN 0 264 #define BOARD_MIPI_PANEL_TOUCH_INT_GPIO GPIO8 265 #define BOARD_MIPI_PANEL_TOUCH_INT_PIN 31 268 #define BOARD_CAMERA_PWDN_GPIO GPIO9 269 #define BOARD_CAMERA_PWDN_PIN 25 270 #define BOARD_CAMERA_RST_GPIO GPIO11 271 #define BOARD_CAMERA_RST_PIN 15 274 #define BOARD_WIFI_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostDATA3 276 #if defined(__cplusplus) 288 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 289 void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz);
290 status_t BOARD_LPI2C_Send(LPI2C_Type *base,
291 uint8_t deviceAddress,
293 uint8_t subaddressSize,
296 status_t BOARD_LPI2C_Receive(LPI2C_Type *base,
297 uint8_t deviceAddress,
299 uint8_t subaddressSize,
302 status_t BOARD_LPI2C_SendSCCB(LPI2C_Type *base,
303 uint8_t deviceAddress,
305 uint8_t subaddressSize,
308 status_t BOARD_LPI2C_ReceiveSCCB(LPI2C_Type *base,
309 uint8_t deviceAddress,
311 uint8_t subaddressSize,
314 void BOARD_Accel_I2C_Init(
void);
315 status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff);
316 status_t BOARD_Accel_I2C_Receive(
317 uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
318 void BOARD_Codec_I2C_Init(
void);
319 status_t BOARD_Codec_I2C_Send(
320 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
321 status_t BOARD_Codec_I2C_Receive(
322 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
323 void BOARD_Camera_I2C_Init(
void);
324 status_t BOARD_Camera_I2C_Send(
325 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
326 status_t BOARD_Camera_I2C_Receive(
327 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
329 status_t BOARD_Camera_I2C_SendSCCB(
330 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
331 status_t BOARD_Camera_I2C_ReceiveSCCB(
332 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
334 void BOARD_MIPIPanelTouch_I2C_Init(
void);
335 status_t BOARD_MIPIPanelTouch_I2C_Send(
336 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
337 status_t BOARD_MIPIPanelTouch_I2C_Receive(
338 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
344 #if defined(__cplusplus)
void BOARD_InitDebugConsole(void)
void BOARD_MMC_Pin_Config(uint32_t speed, uint32_t strength)
uint32_t BOARD_DebugConsoleSrcFreq(void)
void BOARD_SD_Pin_Config(uint32_t speed, uint32_t strength)
void BOARD_ConfigMPU(void)