13 #include "fsl_common.h" 14 #include "fsl_reset.h" 21 #define BOARD_NAME "MIMXRT685-EVK" 22 #define BOARD_I3C_CODEC (1) 25 #define BOARD_DEBUG_UART_TYPE kSerialPort_Uart 26 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) USART0 27 #define BOARD_DEBUG_UART_INSTANCE 0U 28 #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm0) 29 #define BOARD_DEBUG_UART_FRG_CLK \ 30 (&(const clock_frg_clk_config_t){0, kCLOCK_FrgPllDiv, 0, 0}) 31 #define BOARD_DEBUG_UART_CLK_ATTACH kFRG_to_FLEXCOMM0 32 #define BOARD_DEBUG_UART_RST kFC0_RST_SHIFT_RSTn 33 #define BOARD_DEBUG_UART_CLKSRC kCLOCK_Flexcomm0 34 #define BOARD_UART_IRQ_HANDLER FLEXCOMM0_IRQHandler 35 #define BOARD_UART_IRQ FLEXCOMM0_IRQn 37 #ifndef BOARD_DEBUG_UART_BAUDRATE 38 #define BOARD_DEBUG_UART_BAUDRATE 115200 42 #define BOARD_CODEC_I2C_BASEADDR I3C 43 #define BOARD_CODEC_I2C_CLOCK_FREQ CLOCK_GetFreq(kCLOCK_I3cClk) 45 #define BOARD_CODEC_I2C_BASEADDR I2C4 46 #define BOARD_CODEC_I2C_CLOCK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm4) 49 #define BOARD_PMIC_I2C_BASEADDR I2C15 50 #define BOARD_PMIC_I2C_CLOCK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm15) 52 #define BOARD_ACCEL_I2C_BASEADDR I2C2 53 #define BOARD_ACCEL_I2C_CLOCK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm2) 56 #define LOGIC_LED_ON 1U 57 #define LOGIC_LED_OFF 0U 59 #ifndef BOARD_LED_RED_GPIO 60 #define BOARD_LED_RED_GPIO GPIO 62 #define BOARD_LED_RED_GPIO_PORT 0U 63 #ifndef BOARD_LED_RED_GPIO_PIN 64 #define BOARD_LED_RED_GPIO_PIN 31U 67 #ifndef BOARD_LED_GREEN_GPIO 68 #define BOARD_LED_GREEN_GPIO GPIO 70 #define BOARD_LED_GREEN_GPIO_PORT 0U 71 #ifndef BOARD_LED_GREEN_GPIO_PIN 72 #define BOARD_LED_GREEN_GPIO_PIN 14U 74 #ifndef BOARD_LED_BLUE_GPIO 75 #define BOARD_LED_BLUE_GPIO GPIO 77 #define BOARD_LED_BLUE_GPIO_PORT 0U 78 #ifndef BOARD_LED_BLUE_GPIO_PIN 79 #define BOARD_LED_BLUE_GPIO_PIN 26U 82 #define LED_RED_INIT(output) \ 83 GPIO_PinInit(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, \ 84 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) 85 #define LED_RED_ON() \ 86 GPIO_PortSet(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 87 1U << BOARD_LED_RED_GPIO_PIN) 88 #define LED_RED_OFF() \ 89 GPIO_PortClear(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 90 1U << BOARD_LED_RED_GPIO_PIN) 91 #define LED_RED_TOGGLE() \ 92 GPIO_PortToggle(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 93 1U << BOARD_LED_RED_GPIO_PIN) 95 #define LED_GREEN_INIT(output) \ 96 GPIO_PinInit(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, BOARD_LED_GREEN_GPIO_PIN, \ 97 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) 98 #define LED_GREEN_ON() \ 99 GPIO_PortSet(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 100 1U << BOARD_LED_GREEN_GPIO_PIN) 101 #define LED_GREEN_OFF() \ 102 GPIO_PortClear(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 103 1U << BOARD_LED_GREEN_GPIO_PIN) 104 #define LED_GREEN_TOGGLE() \ 105 GPIO_PortToggle(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 106 1U << BOARD_LED_GREEN_GPIO_PIN) 108 #define LED_BLUE_INIT(output) \ 109 GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, BOARD_LED_BLUE_GPIO_PIN, \ 110 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) 111 #define LED_BLUE_ON() \ 112 GPIO_PortSet(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 113 1U << BOARD_LED_BLUE_GPIO_PIN) 114 #define LED_BLUE_OFF() \ 115 GPIO_PortClear(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 116 1U << BOARD_LED_BLUE_GPIO_PIN) 117 #define LED_BLUE_TOGGLE() \ 118 GPIO_PortToggle(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 119 1U << BOARD_LED_BLUE_GPIO_PIN) 122 #ifndef BOARD_SW1_GPIO 123 #define BOARD_SW1_GPIO GPIO 125 #define BOARD_SW1_GPIO_PORT 1U 126 #ifndef BOARD_SW1_GPIO_PIN 127 #define BOARD_SW1_GPIO_PIN 1U 130 #ifndef BOARD_SW2_GPIO 131 #define BOARD_SW2_GPIO GPIO 133 #define BOARD_SW2_GPIO_PORT 0U 134 #ifndef BOARD_SW2_GPIO_PIN 135 #define BOARD_SW2_GPIO_PIN 27U 139 #define BOARD_SD_SUPPORT_180V (1) 140 #define BOARD_USDHC_CD_GPIO_BASE GPIO 141 #define BOARD_USDHC_CD_GPIO_PORT (2) 142 #define BOARD_USDHC_CD_GPIO_PIN (9) 143 #define BOARD_SD_POWER_RESET_GPIO (GPIO) 144 #define BOARD_SD_POWER_RESET_GPIO_PORT (2) 145 #define BOARD_SD_POWER_RESET_GPIO_PIN (10) 148 #define BOARD_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostCD 149 #define BOARD_USDHC_CD_PORT_IRQ USDHC0_IRQn 150 #define BOARD_USDHC_CD_STATUS() 0 151 #define BOARD_USDHC_CD_INTERRUPT_STATUS() 0 152 #define BOARD_USDHC_CD_CLEAR_INTERRUPT(flag) 153 #define BOARD_USDHC_CD_GPIO_INIT() 155 #define BOARD_HAS_SDCARD (1U) 156 #define BOARD_USDHC_CARD_INSERT_CD_LEVEL (0U) 158 #define BOARD_USDHC_MMCCARD_POWER_CONTROL_INIT() 159 #define BOARD_USDHC_MMCCARD_POWER_CONTROL(state) 160 #define BOARD_USDHC_SDCARD_POWER_CONTROL_INIT() \ 162 GPIO_PortInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PORT); \ 163 GPIO_PinInit(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PORT, BOARD_SD_POWER_RESET_GPIO_PIN, \ 164 &(gpio_pin_config_t){kGPIO_DigitalOutput, 0}); \ 170 #define BOARD_USDHC_SDCARD_POWER_CONTROL(state) \ 172 GPIO_PortSet(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PORT, 1 << BOARD_SD_POWER_RESET_GPIO_PIN) : \ 173 GPIO_PortClear(BOARD_SD_POWER_RESET_GPIO, BOARD_SD_POWER_RESET_GPIO_PORT, \ 174 1 << BOARD_SD_POWER_RESET_GPIO_PIN)) 176 #define BOARD_USDHC0_BASEADDR USDHC0 177 #define BOARD_USDHC1_BASEADDR USDHC1 179 #define BOARD_USDHC0_CLK_FREQ (CLOCK_GetFreq(kCLOCK_Sdio0Clk)) 180 #define BOARD_USDHC1_CLK_FREQ (CLOCK_GetFreq(kCLOCK_Sdio1Clk)) 182 #define BOARD_USDHC_SWITCH_VOLTAGE_FUNCTION 1U 185 #define BOARD_INITGT202SHIELD_PWRON_GPIO GPIO 186 #define BOARD_INITGT202SHIELD_IRQ_GPIO GPIO 187 #define BOARD_INITGT202SHIELD_PWRON_DIRECTION kGPIO_DigitalOutput 188 #define BOARD_INITGT202SHIELD_IRQ_DIRECTION kGPIO_DigitalInput 189 #define BOARD_INITGT202SHIELD_PWRON_PORT 1 190 #define BOARD_INITGT202SHIELD_IRQ_PORT 1 191 #define BOARD_INITGT202SHIELD_PWRON_GPIO_PIN 9 192 #define BOARD_INITGT202SHIELD_IRQ_GPIO_PIN 8 195 #define BOARD_INITSILEX2401SHIELD_PWRON_GPIO GPIO 196 #define BOARD_INITSILEX2401SHIELD_IRQ_GPIO GPIO 197 #define BOARD_INITSILEX2401SHIELD_PWRON_DIRECTION kGPIO_DigitalOutput 198 #define BOARD_INITSILEX2401SHIELD_IRQ_DIRECTION kGPIO_DigitalInput 199 #define BOARD_INITSILEX2401SHIELD_PWRON_PORT 1 200 #define BOARD_INITSILEX2401SHIELD_IRQ_PORT 0 201 #define BOARD_INITSILEX2401SHIELD_PWRON_GPIO_PIN 0 202 #define BOARD_INITSILEX2401SHIELD_IRQ_GPIO_PIN 28 204 #define BOARD_SD_HOST_BASEADDR BOARD_USDHC0_BASEADDR 205 #define BOARD_SD_HOST_CLK_FREQ BOARD_USDHC0_CLK_FREQ 206 #define BOARD_SD_HOST_IRQ USDHC0_IRQn 208 #define BOARD_SD_Pin_Config(speed, strength) 211 #define BOARD_USB_PHY_D_CAL (0x0CU) 212 #define BOARD_USB_PHY_TXCAL45DP (0x06U) 213 #define BOARD_USB_PHY_TXCAL45DM (0x06U) 215 #define BOARD_FLASH_SIZE (0x4000000U) 216 #if defined(__cplusplus) 225 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 226 void BOARD_I2C_Init(
I2C_Type *base, uint32_t clkSrc_Hz);
227 status_t BOARD_I2C_Send(
I2C_Type *base,
228 uint8_t deviceAddress,
230 uint8_t subaddressSize,
233 status_t BOARD_I2C_Receive(
I2C_Type *base,
234 uint8_t deviceAddress,
236 uint8_t subaddressSize,
240 #if defined BOARD_USE_CODEC 241 void BOARD_I3C_Init(I3C_Type *base, uint32_t clkSrc_Hz);
242 status_t BOARD_I3C_Send(I3C_Type *base,
243 uint8_t deviceAddress,
245 uint8_t subaddressSize,
248 status_t BOARD_I3C_Receive(I3C_Type *base,
249 uint8_t deviceAddress,
251 uint8_t subaddressSize,
254 void BOARD_Codec_I2C_Init(
void);
255 status_t BOARD_Codec_I2C_Send(
256 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
257 status_t BOARD_Codec_I2C_Receive(
258 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
260 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 261 void BOARD_PMIC_I2C_Init(
void);
262 status_t BOARD_PMIC_I2C_Send(
263 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize);
264 status_t BOARD_PMIC_I2C_Receive(
265 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
267 void BOARD_Accel_I2C_Init(
void);
268 status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff);
269 status_t BOARD_Accel_I2C_Receive(
270 uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
273 #if defined(__cplusplus) void BOARD_InitDebugConsole(void)