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" 17 #include "fsl_iomuxc.h" 22 #if defined BOARD_USE_CODEC 23 codec_config_t boardCodecConfig = {.I2C_SendFunc = BOARD_Codec_I2C_Send,
24 .I2C_ReceiveFunc = BOARD_Codec_I2C_Receive,
25 .op.Init = WM8960_Init,
26 .op.Deinit = WM8960_Deinit,
27 .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))
69 if (SCB_CCR_DC_Msk == (SCB_CCR_DC_Msk & SCB->CCR))
78 MPU->RBAR = ARM_MPU_RBAR(0, 0xC0000000U);
79 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
82 MPU->RBAR = ARM_MPU_RBAR(1, 0x80000000U);
83 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
86 #if defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1) 87 MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
88 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_RO, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_8MB);
90 MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
91 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_RO, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_8MB);
95 MPU->RBAR = ARM_MPU_RBAR(3, 0x00000000U);
96 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
99 MPU->RBAR = ARM_MPU_RBAR(4, 0x00000000U);
100 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
103 MPU->RBAR = ARM_MPU_RBAR(5, 0x20000000U);
104 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64KB);
107 MPU->RBAR = ARM_MPU_RBAR(6, 0x20200000U);
108 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
111 ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);
118 #if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED 119 void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz)
121 lpi2c_master_config_t lpi2cConfig = {0};
133 LPI2C_MasterGetDefaultConfig(&lpi2cConfig);
134 LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz);
137 status_t BOARD_LPI2C_Send(LPI2C_Type *base,
138 uint8_t deviceAddress,
140 uint8_t subAddressSize,
147 reVal = LPI2C_MasterStart(base, deviceAddress, kLPI2C_Write);
148 if (kStatus_Success == reVal)
150 while (LPI2C_MasterGetStatusFlags(base) & kLPI2C_MasterNackDetectFlag)
154 reVal = LPI2C_MasterSend(base, &subAddress, subAddressSize);
155 if (reVal != kStatus_Success)
160 reVal = LPI2C_MasterSend(base, txBuff, txBuffSize);
161 if (reVal != kStatus_Success)
166 reVal = LPI2C_MasterStop(base);
167 if (reVal != kStatus_Success)
176 status_t BOARD_LPI2C_Receive(LPI2C_Type *base,
177 uint8_t deviceAddress,
179 uint8_t subAddressSize,
185 reVal = LPI2C_MasterStart(base, deviceAddress, kLPI2C_Write);
186 if (kStatus_Success == reVal)
188 while (LPI2C_MasterGetStatusFlags(base) & kLPI2C_MasterNackDetectFlag)
192 reVal = LPI2C_MasterSend(base, &subAddress, subAddressSize);
193 if (reVal != kStatus_Success)
198 reVal = LPI2C_MasterRepeatedStart(base, deviceAddress, kLPI2C_Read);
199 if (reVal != kStatus_Success)
204 reVal = LPI2C_MasterReceive(base, rxBuff, rxBuffSize);
205 if (reVal != kStatus_Success)
210 reVal = LPI2C_MasterStop(base);
211 if (reVal != kStatus_Success)
219 void BOARD_Accel_I2C_Init(
void)
224 status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff)
226 uint8_t
data = (uint8_t)txBuff;
231 status_t BOARD_Accel_I2C_Receive(
232 uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
234 return BOARD_LPI2C_Receive(
BOARD_ACCEL_I2C_BASEADDR, deviceAddress, subAddress, subaddressSize, rxBuff, rxBuffSize);
237 void BOARD_Codec_I2C_Init(
void)
242 status_t BOARD_Codec_I2C_Send(
243 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize,
const uint8_t *txBuff, uint8_t txBuffSize)
249 status_t BOARD_Codec_I2C_Receive(
250 uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize)
252 return BOARD_LPI2C_Receive(
BOARD_CODEC_I2C_BASEADDR, deviceAddress, subAddress, subAddressSize, rxBuff, 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_INSTANCE
#define BOARD_CODEC_I2C_BASEADDR
void BOARD_ConfigMPU(void)
void BOARD_InitDebugConsole(void)
#define BOARD_DEBUG_UART_TYPE