8 #include "fsl_common.h" 9 #include "fsl_debug_console.h" 11 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 12 #include "fsl_lpi2c.h" 14 #if defined BOARD_USE_CODEC 15 #include "fsl_wm8960.h" 20 #if defined BOARD_USE_CODEC 21 codec_config_t boardCodecConfig = {
22 .I2C_SendFunc = BOARD_Codec_I2C_Send,
23 .I2C_ReceiveFunc = BOARD_Codec_I2C_Receive,
24 .op.Init = WM8960_Init,
25 .op.Deinit = WM8960_Deinit,
26 .op.SetFormat = WM8960_ConfigDataFormat
41 if (CLOCK_GetMux(kCLOCK_UartMux) == 0)
43 freq = (CLOCK_GetPllFreq(kCLOCK_PllUsb1) / 6U) / (CLOCK_GetDiv(kCLOCK_UartDiv) + 1U);
47 freq = CLOCK_GetOscFreq() / (CLOCK_GetDiv(kCLOCK_UartDiv) + 1U);
65 if (SCB_CCR_IC_Msk == (SCB_CCR_IC_Msk & SCB->CCR)) {
68 if (SCB_CCR_DC_Msk == (SCB_CCR_DC_Msk & SCB->CCR)) {
76 MPU->RBAR = ARM_MPU_RBAR(0, 0xC0000000U);
77 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
80 MPU->RBAR = ARM_MPU_RBAR(1, 0x80000000U);
81 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
84 #if defined(XIP_EXTERNAL_FLASH) 85 MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
86 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_512MB);
88 MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
89 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
93 MPU->RBAR = ARM_MPU_RBAR(3, 0x00000000U);
94 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
97 MPU->RBAR = ARM_MPU_RBAR(4, 0x00000000U);
98 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
101 MPU->RBAR = ARM_MPU_RBAR(5, 0x20000000U);
102 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
105 MPU->RBAR = ARM_MPU_RBAR(6, 0x20200000U);
106 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB);
111 #if defined(SDRAM_IS_SHAREABLE) 113 MPU->RBAR = ARM_MPU_RBAR(7, 0x80000000U);
114 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 1, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);
117 MPU->RBAR = ARM_MPU_RBAR(7, 0x80000000U);
118 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);
122 MPU->RBAR = ARM_MPU_RBAR(8, 0x81E00000U);
123 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_2MB);
126 ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);
133 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 134 void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz)
136 lpi2c_master_config_t lpi2cConfig = {0};
148 LPI2C_MasterGetDefaultConfig(&lpi2cConfig);
149 LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz);
152 status_t BOARD_LPI2C_Send(LPI2C_Type *base, uint8_t deviceAddress, uint32_t subAddress,
153 uint8_t subAddressSize, uint8_t *txBuff, uint8_t txBuffSize)
158 reVal = LPI2C_MasterStart(base, deviceAddress, kLPI2C_Write);
159 if (kStatus_Success == reVal)
161 while (LPI2C_MasterGetStatusFlags(base) & kLPI2C_MasterNackDetectFlag)
165 reVal = LPI2C_MasterSend(base, &subAddress, subAddressSize);
166 if (reVal != kStatus_Success)
171 reVal = LPI2C_MasterSend(base, txBuff, txBuffSize);
172 if (reVal != kStatus_Success)
177 reVal = LPI2C_MasterStop(base);
178 if (reVal != kStatus_Success)
187 status_t BOARD_LPI2C_Receive(LPI2C_Type *base, uint8_t deviceAddress, uint32_t subAddress,
188 uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
192 reVal = LPI2C_MasterStart(base, deviceAddress, kLPI2C_Write);
193 if (kStatus_Success == reVal)
195 while (LPI2C_MasterGetStatusFlags(base) & kLPI2C_MasterNackDetectFlag)
199 reVal = LPI2C_MasterSend(base, &subAddress, subAddressSize);
200 if (reVal != kStatus_Success)
205 reVal = LPI2C_MasterRepeatedStart(base, deviceAddress, kLPI2C_Read);
206 if (reVal != kStatus_Success)
211 reVal = LPI2C_MasterReceive(base, rxBuff, rxBuffSize);
212 if (reVal != kStatus_Success)
217 reVal = LPI2C_MasterStop(base);
218 if (reVal != kStatus_Success)
226 void BOARD_Accel_I2C_Init(
void)
231 status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff)
233 uint8_t
data = (uint8_t)txBuff;
236 subaddressSize, &data, 1);
239 status_t BOARD_Accel_I2C_Receive(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize,
240 uint8_t *rxBuff, uint8_t rxBuffSize)
243 subaddressSize, rxBuff, rxBuffSize);
246 void BOARD_Codec_I2C_Init(
void)
251 status_t BOARD_Codec_I2C_Send(
252 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize)
258 status_t BOARD_Codec_I2C_Receive(
259 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
#define BOARD_ACCEL_I2C_CLOCK_FREQ
#define BOARD_CODEC_I2C_CLOCK_FREQ
uint32_t BOARD_DebugConsoleSrcFreq(void)
#define BOARD_DEBUG_UART_BAUDRATE
#define BOARD_ACCEL_I2C_BASEADDR
uint8_t data[FXLS8962_DATA_SIZE]
#define BOARD_DEBUG_UART_BASEADDR
#define BOARD_CODEC_I2C_BASEADDR
void BOARD_ConfigMPU(void)
void BOARD_InitDebugConsole(void)
#define BOARD_DEBUG_UART_TYPE