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:
Neil Chen 2022-07-28 11:38:13 +08:00 committed by Mahesh Mahadevan
commit 5642d4f805
4 changed files with 53 additions and 3 deletions

View 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

View file

@ -9,7 +9,6 @@ config SOC_SERIES_LPC55XXX
select HAS_MCUX select HAS_MCUX
select HAS_MCUX_FLEXCOMM select HAS_MCUX_FLEXCOMM
select HAS_MCUX_SYSCON select HAS_MCUX_SYSCON
select HAS_MCUX_RNG
select HAS_MCUX_WWDT select HAS_MCUX_WWDT
select SOC_FAMILY_LPC select SOC_FAMILY_LPC
select CPU_CORTEX_M_HAS_SYSTICK select CPU_CORTEX_M_HAS_SYSTICK

View file

@ -17,6 +17,7 @@ config SOC_LPC55S06
select ARM_TRUSTZONE_M select ARM_TRUSTZONE_M
select CLOCK_CONTROL select CLOCK_CONTROL
select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE
select HAS_MCUX_RNG
config SOC_LPC55S16 config SOC_LPC55S16
bool "SOC_LPC55S16 M33" bool "SOC_LPC55S16 M33"
@ -29,6 +30,7 @@ config SOC_LPC55S16
select CLOCK_CONTROL select CLOCK_CONTROL
select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE select HAS_MCUX_IAP if !TRUSTED_EXECUTION_NONSECURE
select HAS_MCUX_MCAN select HAS_MCUX_MCAN
select HAS_MCUX_RNG
config SOC_LPC55S28 config SOC_LPC55S28
bool "SOC_LPC55S28 M33" bool "SOC_LPC55S28 M33"
@ -40,6 +42,18 @@ config SOC_LPC55S28
select HAS_MCUX_IAP select HAS_MCUX_IAP
select HAS_MCUX_LPADC select HAS_MCUX_LPADC
select HAS_MCUX_LPC_DMA 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 config SOC_LPC55S69_CPU0
bool "SOC_LPC55S69 M33 [CPU 0]" bool "SOC_LPC55S69 M33 [CPU 0]"
@ -57,6 +71,7 @@ config SOC_LPC55S69_CPU0
select USB_DEDICATED_MEMORY if USB_DEVICE_DRIVER select USB_DEDICATED_MEMORY if USB_DEVICE_DRIVER
select HAS_MCUX_CTIMER select HAS_MCUX_CTIMER
select HAS_MCUX_SCTIMER select HAS_MCUX_SCTIMER
select HAS_MCUX_RNG
config SOC_LPC55S69_CPU1 config SOC_LPC55S69_CPU1
bool "SOC_LPC55S69 M33 [CPU 1]" bool "SOC_LPC55S69 M33 [CPU 1]"
@ -75,6 +90,9 @@ config SOC_PART_NUMBER_LPC55S16JBD100
config SOC_PART_NUMBER_LPC55S28JBD100 config SOC_PART_NUMBER_LPC55S28JBD100
bool bool
config SOC_PART_NUMBER_LPC55S36JBD100
bool
config SOC_PART_NUMBER_LPC55S69JBD100 config SOC_PART_NUMBER_LPC55S69JBD100
bool bool
@ -86,6 +104,7 @@ config SOC_PART_NUMBER_LPC55XXX
default "LPC55S06JBD64" if SOC_PART_NUMBER_LPC55S06JBD64 default "LPC55S06JBD64" if SOC_PART_NUMBER_LPC55S06JBD64
default "LPC55S16JBD100" if SOC_PART_NUMBER_LPC55S16JBD100 default "LPC55S16JBD100" if SOC_PART_NUMBER_LPC55S16JBD100
default "LPC55S28JBD100" if SOC_PART_NUMBER_LPC55S28JBD100 default "LPC55S28JBD100" if SOC_PART_NUMBER_LPC55S28JBD100
default "LPC55S36JBD100" if SOC_PART_NUMBER_LPC55S36JBD100
default "LPC55S69JBD100" if SOC_PART_NUMBER_LPC55S69JBD100 default "LPC55S69JBD100" if SOC_PART_NUMBER_LPC55S69JBD100
default "LPC55S69JET98" if SOC_PART_NUMBER_LPC55S69JET98 default "LPC55S69JET98" if SOC_PART_NUMBER_LPC55S69JET98

View file

@ -59,7 +59,8 @@ const pll_setup_t pll0Setup = {
static ALWAYS_INLINE void clock_init(void) static ALWAYS_INLINE void clock_init(void)
{ {
#if defined(CONFIG_SOC_LPC55S06) || defined(CONFIG_SOC_LPC55S16) || \ #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 */ /*!< Set up the clock sources */
/*!< Configure FRO192M */ /*!< Configure FRO192M */
/*!< Ensure FRO is on */ /*!< Ensure FRO is on */
@ -106,10 +107,18 @@ static ALWAYS_INLINE void clock_init(void)
CLOCK_EnableClock(kCLOCK_Iocon); CLOCK_EnableClock(kCLOCK_Iocon);
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm2), nxp_lpc_usart, okay) #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); CLOCK_AttachClk(kFRO12M_to_FLEXCOMM2);
#endif #endif
#if DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm4), nxp_lpc_i2c, okay) #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 */ /* attach 12 MHz clock to FLEXCOMM4 */
CLOCK_AttachClk(kFRO12M_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) DT_FOREACH_STATUS_OKAY(nxp_lpc_ctimer, CTIMER_CLOCK_SETUP)
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm6), nxp_lpc_i2s, okay)) #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 */ /* attach PLL0 clock to FLEXCOMM6 */
CLOCK_AttachClk(kPLL0_DIV_to_FLEXCOMM6); CLOCK_AttachClk(kPLL0_DIV_to_FLEXCOMM6);
#endif #endif
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm7), nxp_lpc_i2s, okay)) #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); CLOCK_AttachClk(kPLL0_DIV_to_FLEXCOMM7);
#endif #endif