From d70db21760efbce271c3cfb4e2678dfdeffbf71d Mon Sep 17 00:00:00 2001 From: Daniel DeGrasse Date: Thu, 18 Aug 2022 13:13:54 -0500 Subject: [PATCH] drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP Add support for LPC54xxx IAP flash driver to soc_flash_lpc.c Driver is tested on M4 core only, and is therefore disabled on the M0 core. Signed-off-by: Daniel DeGrasse --- drivers/flash/Kconfig.lpc | 3 ++- drivers/flash/soc_flash_lpc.c | 2 ++ dts/arm/nxp/nxp_lpc54xxx.dtsi | 1 + dts/arm/nxp/nxp_lpc54xxx_m4.dtsi | 4 ++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/flash/Kconfig.lpc b/drivers/flash/Kconfig.lpc index b2ae3c3bb26..379a4cdaadc 100644 --- a/drivers/flash/Kconfig.lpc +++ b/drivers/flash/Kconfig.lpc @@ -4,7 +4,8 @@ config SOC_FLASH_LPC bool "LPC flash shim driver" default y - depends on DT_HAS_NXP_IAP_FMC11_ENABLED + depends on DT_HAS_NXP_IAP_FMC11_ENABLED || \ + DT_HAS_NXP_IAP_FMC54_ENABLED select FLASH_HAS_PAGE_LAYOUT select FLASH_HAS_DRIVER_ENABLED help diff --git a/drivers/flash/soc_flash_lpc.c b/drivers/flash/soc_flash_lpc.c index 00094104441..ae457fe926b 100644 --- a/drivers/flash/soc_flash_lpc.c +++ b/drivers/flash/soc_flash_lpc.c @@ -19,6 +19,8 @@ #if DT_NODE_HAS_STATUS(DT_INST(0, nxp_iap_fmc11), okay) #define DT_DRV_COMPAT nxp_iap_fmc11 +#elif DT_NODE_HAS_STATUS(DT_INST(0, nxp_iap_fmc54), okay) +#define DT_DRV_COMPAT nxp_iap_fmc54 #else #error No matching compatible for soc_flash_lpc.c #endif diff --git a/dts/arm/nxp/nxp_lpc54xxx.dtsi b/dts/arm/nxp/nxp_lpc54xxx.dtsi index 08a1a7a10e0..72f981ded8c 100644 --- a/dts/arm/nxp/nxp_lpc54xxx.dtsi +++ b/dts/arm/nxp/nxp_lpc54xxx.dtsi @@ -89,6 +89,7 @@ reg = <0x4009c000 0x18>; #address-cells = <1>; #size-cells = <1>; + status = "disabled"; flash0: flash@0 { compatible = "soc-nv-flash"; reg = <0 DT_SIZE_K(256)>; diff --git a/dts/arm/nxp/nxp_lpc54xxx_m4.dtsi b/dts/arm/nxp/nxp_lpc54xxx_m4.dtsi index 11cd0176fd2..c375b012b2c 100644 --- a/dts/arm/nxp/nxp_lpc54xxx_m4.dtsi +++ b/dts/arm/nxp/nxp_lpc54xxx_m4.dtsi @@ -20,3 +20,7 @@ &nvic { arm,num-irq-priority-bits = <3>; }; + +&iap { + status = "okay"; +};