/* * Copyright 2017-2020,2024 NXP * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef _BOARD_H_ #define _BOARD_H_ #include "clock_config.h" #include "fsl_clock.h" /* MCIMX8M-WEVK use pca6416a */ #if defined(BOARD_USE_PCA6416A) && BOARD_USE_PCA6416A #include "fsl_pca6416a.h" #endif #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED #include "fsl_i2c.h" #endif /* SDK_I2C_BASED_COMPONENT_USED */ /******************************************************************************* * Definitions ******************************************************************************/ /*! @brief The board name */ #define BOARD_NAME "MIMX8MQ-EVK" #define MANUFACTURER_NAME "NXP" #define BOARD_DOMAIN_ID (1) /* The UART to use for debug messages. */ #define BOARD_DEBUG_UART_TYPE kSerialPort_Uart #define BOARD_DEBUG_UART_BAUDRATE 115200u #define BOARD_DEBUG_UART_BASEADDR UART2_BASE #define BOARD_DEBUG_UART_INSTANCE 2U #define BOARD_DEBUG_UART_CLK_FREQ \ CLOCK_GetPllFreq(kCLOCK_SystemPll1Ctrl) / (CLOCK_GetRootPreDivider(kCLOCK_RootUart2)) / \ (CLOCK_GetRootPostDivider(kCLOCK_RootUart2)) / 10 #define BOARD_UART_IRQ UART2_IRQn #define BOARD_UART_IRQ_HANDLER UART2_IRQHandler /* Shared memory base for RPMsg communication. */ #define VDEV0_VRING_BASE (0xB8000000U) #define RESOURCE_TABLE_OFFSET (0xFF000) /* PCA6416A (U12) */ #define BOARD_PCA6416A_I2C I2C3 #define BOARD_PCA6416A_I2C_ADDR (0x20U) #define BOARD_PCA6416A_I2C_CLOCK_FREQ (CLOCK_GetClockRootFreq(kCLOCK_I2c3ClkRoot)) #define BOARD_PCA6416A_QSPIA_RESET 4U #if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ /******************************************************************************* * API ******************************************************************************/ void BOARD_InitDebugConsole(void); void BOARD_InitMemory(void); void BOARD_RdcInit(void); #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED void BOARD_I2C_Init(I2C_Type *base, uint32_t clkSrc_Hz); status_t BOARD_I2C_Send(I2C_Type *base, uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *txBuff, uint8_t txBuffSize); status_t BOARD_I2C_Receive(I2C_Type *base, uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize); #endif #if defined(BOARD_USE_PCA6416A) && BOARD_USE_PCA6416A /* PCA6416A U12. */ extern pca6416a_handle_t g_pca6416aHandle; extern void BOARD_InitPCA6416A(pca6416a_handle_t *handle); extern void BOARD_PCA6416A_I2C_Init(void); status_t BOARD_PCA6416A_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, const uint8_t *txBuff, uint8_t txBuffSize, uint32_t flags); status_t BOARD_PCA6416A_I2C_Receive(uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize, uint32_t flags); #endif /* BOARD_USE_PCA6416A */ #if defined(__cplusplus) } #endif /* __cplusplus */ #endif /* _BOARD_H_ */