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)