soc: arm: nxp_lpc: lpc55xxx: LPC55S36: add device support
- Add soc information for LPC55S36 Signed-off-by: Neil Chen <cheng.chen_1@nxp.com>
This commit is contained in:
parent
f7f94dd367
commit
5642d4f805
4 changed files with 53 additions and 3 deletions
15
soc/arm/nxp_lpc/lpc55xxx/Kconfig.defconfig.lpc55S36
Normal file
15
soc/arm/nxp_lpc/lpc55xxx/Kconfig.defconfig.lpc55S36
Normal file
|
@ -0,0 +1,15 @@
|
|||
# NXP LPC55S36 platform configuration options
|
||||
|
||||
# Copyright 2022 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_LPC55S36
|
||||
|
||||
config SOC
|
||||
default "lpc55S36"
|
||||
|
||||
config SOC_FLASH_MCUX
|
||||
default y
|
||||
depends on FLASH
|
||||
|
||||
endif # SOC_LPC55S36
|
|
@ -9,7 +9,6 @@ config SOC_SERIES_LPC55XXX
|
|||
select HAS_MCUX
|
||||
select HAS_MCUX_FLEXCOMM
|
||||
select HAS_MCUX_SYSCON
|
||||
select HAS_MCUX_RNG
|
||||
select HAS_MCUX_WWDT
|
||||
select SOC_FAMILY_LPC
|
||||
select CPU_CORTEX_M_HAS_SYSTICK
|
||||
|
|
|
@ -17,6 +17,7 @@ config SOC_LPC55S06
|
|||
select ARM_TRUSTZONE_M
|
||||
select CLOCK_CONTROL
|
||||
select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE
|
||||
select HAS_MCUX_RNG
|
||||
|
||||
config SOC_LPC55S16
|
||||
bool "SOC_LPC55S16 M33"
|
||||
|
@ -29,6 +30,7 @@ config SOC_LPC55S16
|
|||
select CLOCK_CONTROL
|
||||
select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE
|
||||
select HAS_MCUX_MCAN
|
||||
select HAS_MCUX_RNG
|
||||
|
||||
config SOC_LPC55S28
|
||||
bool "SOC_LPC55S28 M33"
|
||||
|
@ -40,6 +42,18 @@ config SOC_LPC55S28
|
|||
select HAS_MCUX_IAP
|
||||
select HAS_MCUX_LPADC
|
||||
select HAS_MCUX_LPC_DMA
|
||||
select HAS_MCUX_RNG
|
||||
|
||||
config SOC_LPC55S36
|
||||
bool "SOC_LPC55S36 M33"
|
||||
select CPU_CORTEX_M33
|
||||
select CPU_HAS_ARM_SAU
|
||||
select CPU_HAS_ARM_MPU
|
||||
select CPU_HAS_FPU
|
||||
select ARMV8_M_DSP
|
||||
select ARM_TRUSTZONE_M
|
||||
select CLOCK_CONTROL
|
||||
select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE
|
||||
|
||||
config SOC_LPC55S69_CPU0
|
||||
bool "SOC_LPC55S69 M33 [CPU 0]"
|
||||
|
@ -57,6 +71,7 @@ config SOC_LPC55S69_CPU0
|
|||
select USB_DEDICATED_MEMORY if USB_DEVICE_DRIVER
|
||||
select HAS_MCUX_CTIMER
|
||||
select HAS_MCUX_SCTIMER
|
||||
select HAS_MCUX_RNG
|
||||
|
||||
config SOC_LPC55S69_CPU1
|
||||
bool "SOC_LPC55S69 M33 [CPU 1]"
|
||||
|
@ -75,6 +90,9 @@ config SOC_PART_NUMBER_LPC55S16JBD100
|
|||
config SOC_PART_NUMBER_LPC55S28JBD100
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_LPC55S36JBD100
|
||||
bool
|
||||
|
||||
config SOC_PART_NUMBER_LPC55S69JBD100
|
||||
bool
|
||||
|
||||
|
@ -86,6 +104,7 @@ config SOC_PART_NUMBER_LPC55XXX
|
|||
default "LPC55S06JBD64" if SOC_PART_NUMBER_LPC55S06JBD64
|
||||
default "LPC55S16JBD100" if SOC_PART_NUMBER_LPC55S16JBD100
|
||||
default "LPC55S28JBD100" if SOC_PART_NUMBER_LPC55S28JBD100
|
||||
default "LPC55S36JBD100" if SOC_PART_NUMBER_LPC55S36JBD100
|
||||
default "LPC55S69JBD100" if SOC_PART_NUMBER_LPC55S69JBD100
|
||||
default "LPC55S69JET98" if SOC_PART_NUMBER_LPC55S69JET98
|
||||
|
||||
|
|
|
@ -59,7 +59,8 @@ const pll_setup_t pll0Setup = {
|
|||
static ALWAYS_INLINE void clock_init(void)
|
||||
{
|
||||
#if defined(CONFIG_SOC_LPC55S06) || defined(CONFIG_SOC_LPC55S16) || \
|
||||
defined(CONFIG_SOC_LPC55S28) || defined(CONFIG_SOC_LPC55S69_CPU0)
|
||||
defined(CONFIG_SOC_LPC55S28) || defined(CONFIG_SOC_LPC55S36) || \
|
||||
defined(CONFIG_SOC_LPC55S69_CPU0)
|
||||
/*!< Set up the clock sources */
|
||||
/*!< Configure FRO192M */
|
||||
/*!< Ensure FRO is on */
|
||||
|
@ -106,10 +107,18 @@ static ALWAYS_INLINE void clock_init(void)
|
|||
CLOCK_EnableClock(kCLOCK_Iocon);
|
||||
|
||||
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm2), nxp_lpc_usart, okay)
|
||||
#if defined(CONFIG_SOC_LPC55S36)
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom2Clk, 0U, true);
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom2Clk, 1U, false);
|
||||
#endif
|
||||
CLOCK_AttachClk(kFRO12M_to_FLEXCOMM2);
|
||||
#endif
|
||||
|
||||
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm4), nxp_lpc_i2c, okay)
|
||||
#if defined(CONFIG_SOC_LPC55S36)
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 0U, true);
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom4Clk, 1U, false);
|
||||
#endif
|
||||
/* attach 12 MHz clock to FLEXCOMM4 */
|
||||
CLOCK_AttachClk(kFRO12M_to_FLEXCOMM4);
|
||||
|
||||
|
@ -164,12 +173,20 @@ static ALWAYS_INLINE void clock_init(void)
|
|||
DT_FOREACH_STATUS_OKAY(nxp_lpc_ctimer, CTIMER_CLOCK_SETUP)
|
||||
|
||||
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm6), nxp_lpc_i2s, okay))
|
||||
#if defined(CONFIG_SOC_LPC55S36)
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom6Clk, 0U, true);
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom6Clk, 1U, false);
|
||||
#endif
|
||||
/* attach PLL0 clock to FLEXCOMM6 */
|
||||
CLOCK_AttachClk(kPLL0_DIV_to_FLEXCOMM6);
|
||||
#endif
|
||||
|
||||
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm7), nxp_lpc_i2s, okay))
|
||||
/* attach PLL0 clock to FLEXCOMM6 */
|
||||
#if defined(CONFIG_SOC_LPC55S36)
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom7Clk, 0U, true);
|
||||
CLOCK_SetClkDiv(kCLOCK_DivFlexcom7Clk, 1U, false);
|
||||
#endif
|
||||
/* attach PLL0 clock to FLEXCOMM7 */
|
||||
CLOCK_AttachClk(kPLL0_DIV_to_FLEXCOMM7);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue