-
Notifications
You must be signed in to change notification settings - Fork 146
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Apply MCUXpresso SDK 2.14.0 MCXN23X release update
The update sources are from MCUXpresso SDK 2.14.0 MCXN23X release update
- Loading branch information
Showing
2,407 changed files
with
586,411 additions
and
10,606 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
/* | ||
* Copyright 2023 NXP | ||
* All rights reserved. | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
*/ | ||
|
||
#include <stdint.h> | ||
#include "fsl_common.h" | ||
#include "fsl_debug_console.h" | ||
#include "board.h" | ||
#if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED | ||
#include "fsl_lpi2c.h" | ||
#endif /* SDK_I2C_BASED_COMPONENT_USED */ | ||
#if defined(LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER) && LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER | ||
#include "fsl_lpflexcomm.h" | ||
#endif /* LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER */ | ||
#include "fsl_spc.h" | ||
|
||
/******************************************************************************* | ||
* Variables | ||
******************************************************************************/ | ||
|
||
/******************************************************************************* | ||
* Code | ||
******************************************************************************/ | ||
/* Initialize debug console. */ | ||
void BOARD_InitDebugConsole(void) | ||
{ | ||
/* attach 12 MHz clock to FLEXCOMM4 (debug console) */ | ||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 1u); | ||
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH); | ||
|
||
RESET_ClearPeripheralReset(BOARD_DEBUG_UART_RST); | ||
|
||
uint32_t uartClkSrcFreq = BOARD_DEBUG_UART_CLK_FREQ; | ||
|
||
#if defined(LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER) && LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER | ||
LP_FLEXCOMM_Init(BOARD_DEBUG_UART_INSTANCE, LP_FLEXCOMM_PERIPH_LPUART); | ||
#endif /* LPFLEXCOMM_INIT_NOT_USED_IN_DRIVER */ | ||
|
||
DbgConsole_Init(BOARD_DEBUG_UART_INSTANCE, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, uartClkSrcFreq); | ||
} | ||
|
||
#if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED | ||
void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz) | ||
{ | ||
lpi2c_master_config_t lpi2cConfig = {0}; | ||
|
||
/* | ||
* lpi2cConfig.debugEnable = false; | ||
* lpi2cConfig.ignoreAck = false; | ||
* lpi2cConfig.pinConfig = kLPI2C_2PinOpenDrain; | ||
* lpi2cConfig.baudRate_Hz = 100000U; | ||
* lpi2cConfig.busIdleTimeout_ns = 0; | ||
* lpi2cConfig.pinLowTimeout_ns = 0; | ||
* lpi2cConfig.sdaGlitchFilterWidth_ns = 0; | ||
* lpi2cConfig.sclGlitchFilterWidth_ns = 0; | ||
*/ | ||
LPI2C_MasterGetDefaultConfig(&lpi2cConfig); | ||
LPI2C_MasterInit(base, &lpi2cConfig, clkSrc_Hz); | ||
} | ||
|
||
status_t BOARD_LPI2C_Send(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subAddressSize, | ||
uint8_t *txBuff, | ||
uint8_t txBuffSize) | ||
{ | ||
lpi2c_master_transfer_t xfer; | ||
|
||
xfer.flags = kLPI2C_TransferDefaultFlag; | ||
xfer.slaveAddress = deviceAddress; | ||
xfer.direction = kLPI2C_Write; | ||
xfer.subaddress = subAddress; | ||
xfer.subaddressSize = subAddressSize; | ||
xfer.data = txBuff; | ||
xfer.dataSize = txBuffSize; | ||
|
||
return LPI2C_MasterTransferBlocking(base, &xfer); | ||
} | ||
|
||
status_t BOARD_LPI2C_Receive(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subAddressSize, | ||
uint8_t *rxBuff, | ||
uint8_t rxBuffSize) | ||
{ | ||
lpi2c_master_transfer_t xfer; | ||
|
||
xfer.flags = kLPI2C_TransferDefaultFlag; | ||
xfer.slaveAddress = deviceAddress; | ||
xfer.direction = kLPI2C_Read; | ||
xfer.subaddress = subAddress; | ||
xfer.subaddressSize = subAddressSize; | ||
xfer.data = rxBuff; | ||
xfer.dataSize = rxBuffSize; | ||
|
||
return LPI2C_MasterTransferBlocking(base, &xfer); | ||
} | ||
|
||
status_t BOARD_LPI2C_SendSCCB(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subAddressSize, | ||
uint8_t *txBuff, | ||
uint8_t txBuffSize) | ||
{ | ||
return BOARD_LPI2C_Send(base, deviceAddress, subAddress, subAddressSize, txBuff, txBuffSize); | ||
} | ||
|
||
status_t BOARD_LPI2C_ReceiveSCCB(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subAddressSize, | ||
uint8_t *rxBuff, | ||
uint8_t rxBuffSize) | ||
{ | ||
status_t status; | ||
lpi2c_master_transfer_t xfer; | ||
|
||
xfer.flags = kLPI2C_TransferDefaultFlag; | ||
xfer.slaveAddress = deviceAddress; | ||
xfer.direction = kLPI2C_Write; | ||
xfer.subaddress = subAddress; | ||
xfer.subaddressSize = subAddressSize; | ||
xfer.data = NULL; | ||
xfer.dataSize = 0; | ||
|
||
status = LPI2C_MasterTransferBlocking(base, &xfer); | ||
|
||
if (kStatus_Success == status) | ||
{ | ||
xfer.subaddressSize = 0; | ||
xfer.direction = kLPI2C_Read; | ||
xfer.data = rxBuff; | ||
xfer.dataSize = rxBuffSize; | ||
|
||
status = LPI2C_MasterTransferBlocking(base, &xfer); | ||
} | ||
|
||
return status; | ||
} | ||
|
||
void BOARD_Codec_I2C_Init(void) | ||
{ | ||
BOARD_LPI2C_Init(BOARD_CODEC_I2C_BASEADDR, BOARD_CODEC_I2C_CLOCK_FREQ); | ||
} | ||
|
||
status_t BOARD_Codec_I2C_Send( | ||
uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, const uint8_t *txBuff, uint8_t txBuffSize) | ||
{ | ||
return BOARD_LPI2C_Send(BOARD_CODEC_I2C_BASEADDR, deviceAddress, subAddress, subAddressSize, (uint8_t *)txBuff, | ||
txBuffSize); | ||
} | ||
|
||
status_t BOARD_Codec_I2C_Receive( | ||
uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize) | ||
{ | ||
return BOARD_LPI2C_Receive(BOARD_CODEC_I2C_BASEADDR, deviceAddress, subAddress, subAddressSize, rxBuff, rxBuffSize); | ||
} | ||
|
||
#endif /* SDK_I2C_BASED_COMPONENT_USED */ | ||
|
||
/* Update Active mode voltage for OverDrive mode. */ | ||
void BOARD_PowerMode_OD(void) | ||
{ | ||
spc_active_mode_dcdc_option_t opt = { | ||
.DCDCVoltage = kSPC_DCDC_OverdriveVoltage, | ||
.DCDCDriveStrength = kSPC_DCDC_NormalDriveStrength, | ||
}; | ||
SPC_SetActiveModeDCDCRegulatorConfig(SPC0, &opt); | ||
|
||
spc_sram_voltage_config_t cfg = { | ||
.operateVoltage = kSPC_sramOperateAt1P2V, | ||
.requestVoltageUpdate = true, | ||
}; | ||
SPC_SetSRAMOperateVoltage(SPC0, &cfg); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
/* | ||
* Copyright 2023 NXP | ||
* All rights reserved. | ||
* | ||
* SPDX-License-Identifier: BSD-3-Clause | ||
*/ | ||
|
||
#ifndef _BOARD_H_ | ||
#define _BOARD_H_ | ||
|
||
#include "clock_config.h" | ||
#include "fsl_common.h" | ||
#include "fsl_gpio.h" | ||
/******************************************************************************* | ||
* Definitions | ||
******************************************************************************/ | ||
/*! @brief The board name */ | ||
#define BOARD_NAME "FRDM-MCXN236" | ||
|
||
/*! @brief The UART to use for debug messages. */ | ||
#define BOARD_DEBUG_UART_TYPE kSerialPort_Uart | ||
#define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART4 | ||
#define BOARD_DEBUG_UART_INSTANCE 4U | ||
#define BOARD_DEBUG_UART_CLK_FREQ 12000000U | ||
#define BOARD_DEBUG_UART_CLK_ATTACH kFRO12M_to_FLEXCOMM4 | ||
#define BOARD_DEBUG_UART_RST kFC4_RST_SHIFT_RSTn | ||
#define BOARD_DEBUG_UART_CLKSRC kCLOCK_FlexComm4 | ||
#define BOARD_UART_IRQ_HANDLER LP_FLEXCOMM4_IRQHandler | ||
#define BOARD_UART_IRQ LP_FLEXCOMM4_IRQn | ||
|
||
#ifndef BOARD_DEBUG_UART_BAUDRATE | ||
#define BOARD_DEBUG_UART_BAUDRATE 115200U | ||
#endif | ||
|
||
#define BOARD_CODEC_I2C_BASEADDR LPI2C2 | ||
#define BOARD_CODEC_I2C_CLOCK_FREQ 12000000 | ||
#define BOARD_CODEC_I2C_INSTANCE 2 | ||
|
||
#ifndef BOARD_LED_RED_GPIO | ||
#define BOARD_LED_RED_GPIO GPIO4 | ||
#endif | ||
#ifndef BOARD_LED_RED_GPIO_PIN | ||
#define BOARD_LED_RED_GPIO_PIN 18U | ||
#endif | ||
|
||
#ifndef BOARD_LED_BLUE_GPIO | ||
#define BOARD_LED_BLUE_GPIO GPIO4 | ||
#endif | ||
#ifndef BOARD_LED_BLUE_GPIO_PIN | ||
#define BOARD_LED_BLUE_GPIO_PIN 17U | ||
#endif | ||
|
||
#ifndef BOARD_LED_GREEN_GPIO | ||
#define BOARD_LED_GREEN_GPIO GPIO4 | ||
#endif | ||
#ifndef BOARD_LED_GREEN_GPIO_PIN | ||
#define BOARD_LED_GREEN_GPIO_PIN 19U | ||
#endif | ||
|
||
#ifndef BOARD_SW2_GPIO | ||
#define BOARD_SW2_GPIO GPIO0 | ||
#endif | ||
#ifndef BOARD_SW2_GPIO_PIN | ||
#define BOARD_SW2_GPIO_PIN 20U | ||
#endif | ||
#define BOARD_SW2_NAME "SW2" | ||
#define BOARD_SW2_IRQ GPIO00_IRQn | ||
#define BOARD_SW2_IRQ_HANDLER GPIO00_IRQHandler | ||
|
||
#ifndef BOARD_SW3_GPIO | ||
#define BOARD_SW3_GPIO GPIO0 | ||
#endif | ||
#ifndef BOARD_SW3_GPIO_PIN | ||
#define BOARD_SW3_GPIO_PIN 6U | ||
#endif | ||
#define BOARD_SW3_NAME "SW3" | ||
#define BOARD_SW3_IRQ GPIO00_IRQn | ||
#define BOARD_SW3_IRQ_HANDLER GPIO00_IRQHandler | ||
|
||
/* USB PHY condfiguration */ | ||
#define BOARD_USB_PHY_D_CAL (0x04U) | ||
#define BOARD_USB_PHY_TXCAL45DP (0x07U) | ||
#define BOARD_USB_PHY_TXCAL45DM (0x07U) | ||
|
||
/* Board led color mapping */ | ||
#define LOGIC_LED_ON 0U | ||
#define LOGIC_LED_OFF 1U | ||
|
||
#define LED_RED_INIT(output) \ | ||
GPIO_PinWrite(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PIN, output); \ | ||
BOARD_LED_RED_GPIO->PDDR |= (1U << BOARD_LED_RED_GPIO_PIN) /*!< Enable target LED_RED */ | ||
#define LED_RED_ON() GPIO_PortClear(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn on target LED_RED */ | ||
#define LED_RED_OFF() GPIO_PortSet(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn off target LED_RED */ | ||
#define LED_RED_TOGGLE() GPIO_PortToggle(BOARD_LED_RED_GPIO, 1U << BOARD_LED_RED_GPIO_PIN) /*!< Toggle on target LED_RED */ | ||
|
||
#define LED_BLUE_INIT(output) \ | ||
GPIO_PinWrite(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, output); \ | ||
BOARD_LED_BLUE_GPIO->PDDR |= (1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Enable target LED_BLUE */ | ||
#define LED_BLUE_ON() GPIO_PortClear(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn on target LED_BLUE */ | ||
#define LED_BLUE_OFF() GPIO_PortSet(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn off target LED_BLUE */ | ||
#define LED_BLUE_TOGGLE() GPIO_PortToggle(BOARD_LED_BLUE_GPIO, 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Toggle on target LED_BLUE */ | ||
|
||
#define LED_GREEN_INIT(output) \ | ||
GPIO_PinWrite(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PIN, output); \ | ||
BOARD_LED_GREEN_GPIO->PDDR |= (1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Enable target LED_GREEN */ | ||
#define LED_GREEN_ON() GPIO_PortClear(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn on target LED_GREEN */ | ||
#define LED_GREEN_OFF() GPIO_PortSet(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn off target LED_GREEN */ | ||
#define LED_GREEN_TOGGLE() GPIO_PortToggle(BOARD_LED_GREEN_GPIO, 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Toggle on target LED_GREEN */ | ||
|
||
|
||
/* ERPC LPSPI configuration */ | ||
#define ERPC_BOARD_LPSPI_SLAVE_READY_USE_GPIO (1) | ||
#define ERPC_BOARD_LPSPI_BASEADDR LPSPI3 | ||
#define ERPC_BOARD_LPSPI_BAUDRATE 500000U | ||
#define ERPC_BOARD_LPSPI_CLKSRC kCLOCK_Flexcomm3 | ||
#define ERPC_BOARD_LPSPI_CLK_FREQ 12000000 // CLOCK_GetFlexCommClkFreq(1) | ||
#define ERPC_BOARD_LPSPI_INT_GPIO GPIO0 | ||
#define ERPC_BOARD_LPSPI_INT_PIN 16U | ||
#define ERPC_BOARD_LPSPI_INT_PIN_IRQ PIN_INT0_IRQn | ||
#define ERPC_BOARD_LPSPI_INT_PIN_IRQ_HANDLER PIN_INT0_IRQHandler | ||
|
||
/* ERPC LPI2C configuration */ | ||
#define ERPC_BOARD_LPI2C_BASEADDR LPI2C0_BASE | ||
#define ERPC_BOARD_LPI2C_BAUDRATE 100000U | ||
#define ERPC_BOARD_LPI2C_CLKSRC kCLOCK_Flexcomm0 | ||
#define ERPC_BOARD_LPI2C_CLK_FREQ 12000000 // CLOCK_GetFlexCommClkFreq(2) | ||
#define ERPC_BOARD_LPI2C_INT_GPIO GPIO1 | ||
#define ERPC_BOARD_LPI2C_INT_PIN 0U | ||
#define ERPC_BOARD_LPI2C_INT_PIN_IRQ PIN_INT1_IRQn | ||
#define ERPC_BOARD_LPI2C_INT_PIN_IRQ_HANDLER PIN_INT1_IRQHandler | ||
|
||
#if defined(__cplusplus) | ||
extern "C" { | ||
#endif /* __cplusplus */ | ||
|
||
/******************************************************************************* | ||
* API | ||
******************************************************************************/ | ||
|
||
void BOARD_InitDebugConsole(void); | ||
#if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED | ||
void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz); | ||
status_t BOARD_LPI2C_Send(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subaddressSize, | ||
uint8_t *txBuff, | ||
uint8_t txBuffSize); | ||
status_t BOARD_LPI2C_Receive(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subaddressSize, | ||
uint8_t *rxBuff, | ||
uint8_t rxBuffSize); | ||
status_t BOARD_LPI2C_SendSCCB(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subaddressSize, | ||
uint8_t *txBuff, | ||
uint8_t txBuffSize); | ||
status_t BOARD_LPI2C_ReceiveSCCB(LPI2C_Type *base, | ||
uint8_t deviceAddress, | ||
uint32_t subAddress, | ||
uint8_t subaddressSize, | ||
uint8_t *rxBuff, | ||
uint8_t rxBuffSize); | ||
void BOARD_Codec_I2C_Init(void); | ||
status_t BOARD_Codec_I2C_Send( | ||
uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, const uint8_t *txBuff, uint8_t txBuffSize); | ||
status_t BOARD_Codec_I2C_Receive( | ||
uint8_t deviceAddress, uint32_t subAddress, uint8_t subAddressSize, uint8_t *rxBuff, uint8_t rxBuffSize); | ||
#endif /* SDK_I2C_BASED_COMPONENT_USED */ | ||
void BOARD_PowerMode_OD(void); | ||
|
||
#if defined(__cplusplus) | ||
} | ||
#endif /* __cplusplus */ | ||
|
||
#endif /* _BOARD_H_ */ |
Oops, something went wrong.