From a394693d2fc0c61afb115ae64a41fca740d5de48 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Thu, 18 Jan 2018 13:40:18 -0600 Subject: [PATCH] drivers: flash: NXP k6x/kw2xd: Convert to use device tree Convert NXP k6x and kw2xd flash driver to use device tree to get the flash controller name from device tree. We introduce yaml bindings for the "nxp,kinetis-ftfe" and "nxp,kinetis-ftfl" devices. Fixes: #5788 Signed-off-by: Kumar Gala --- arch/arm/soc/nxp_kinetis/k6x/dts.fixup | 6 ++++++ arch/arm/soc/nxp_kinetis/k6x/soc.h | 2 +- arch/arm/soc/nxp_kinetis/kwx/dts.fixup | 8 ++++++++ drivers/flash/Kconfig | 7 ------- drivers/flash/soc_flash_mcux.c | 2 +- dts/arm/nxp/nxp_k6x.dtsi | 8 +++++--- dts/arm/nxp/nxp_kw2xd.dtsi | 8 +++++--- .../flash_controller/nxp,kinetis-ftfe.yaml | 19 +++++++++++++++++++ .../flash_controller/nxp,kinetis-ftfl.yaml | 19 +++++++++++++++++++ samples/mpu/mpu_test/src/main.c | 2 +- 10 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 arch/arm/soc/nxp_kinetis/k6x/dts.fixup create mode 100644 arch/arm/soc/nxp_kinetis/kwx/dts.fixup create mode 100644 dts/bindings/flash_controller/nxp,kinetis-ftfe.yaml create mode 100644 dts/bindings/flash_controller/nxp,kinetis-ftfl.yaml diff --git a/arch/arm/soc/nxp_kinetis/k6x/dts.fixup b/arch/arm/soc/nxp_kinetis/k6x/dts.fixup new file mode 100644 index 00000000000..53d49dcb00d --- /dev/null +++ b/arch/arm/soc/nxp_kinetis/k6x/dts.fixup @@ -0,0 +1,6 @@ +/* SoC level DTS fixup file */ + +#define FLASH_DEV_BASE_ADDRESS NXP_KINETIS_FTFE_40020000_BASE_ADDRESS_0 +#define FLASH_DEV_NAME NXP_KINETIS_FTFE_40020000_LABEL + +/* End of SoC Level DTS fixup file */ diff --git a/arch/arm/soc/nxp_kinetis/k6x/soc.h b/arch/arm/soc/nxp_kinetis/k6x/soc.h index c6fa930c60f..57617c63e08 100644 --- a/arch/arm/soc/nxp_kinetis/k6x/soc.h +++ b/arch/arm/soc/nxp_kinetis/k6x/soc.h @@ -54,7 +54,7 @@ extern "C" { /* For IMG_MANAGER */ #if defined(CONFIG_SOC_FLASH_MCUX) -#define FLASH_DRIVER_NAME CONFIG_SOC_FLASH_MCUX_DEV_NAME +#define FLASH_DRIVER_NAME FLASH_DEV_NAME #endif #endif /* !_ASMLANGUAGE */ diff --git a/arch/arm/soc/nxp_kinetis/kwx/dts.fixup b/arch/arm/soc/nxp_kinetis/kwx/dts.fixup new file mode 100644 index 00000000000..90650ed7851 --- /dev/null +++ b/arch/arm/soc/nxp_kinetis/kwx/dts.fixup @@ -0,0 +1,8 @@ +/* SoC level DTS fixup file */ + +#if defined(CONFIG_SOC_MKW22D5) || defined(CONFIG_SOC_MKW24D5) +#define FLASH_DEV_BASE_ADDRESS NXP_KINETIS_FTFL_40020000_BASE_ADDRESS_0 +#define FLASH_DEV_NAME NXP_KINETIS_FTFL_40020000_LABEL +#endif /* CONFIG_SOC_MKW22D5 || CONFIG_SOC_MKW24D5 */ + +/* End of SoC Level DTS fixup file */ diff --git a/drivers/flash/Kconfig b/drivers/flash/Kconfig index 576ab080cd7..5327f427490 100644 --- a/drivers/flash/Kconfig +++ b/drivers/flash/Kconfig @@ -149,13 +149,6 @@ config SOC_FLASH_MCUX have an impact on the overall system performance - whether this is acceptable or not will depend on the use case. -config SOC_FLASH_MCUX_DEV_NAME - string "MCUX flash device name" - depends on SOC_FLASH_MCUX - default "MCUX_FLASH" - help - Specify the device name for the flash driver. - source "drivers/flash/Kconfig.stm32" source "drivers/flash/Kconfig.sam0" diff --git a/drivers/flash/soc_flash_mcux.c b/drivers/flash/soc_flash_mcux.c index 4b9b794176d..7c35740b9e2 100644 --- a/drivers/flash/soc_flash_mcux.c +++ b/drivers/flash/soc_flash_mcux.c @@ -110,7 +110,7 @@ static int flash_mcux_init(struct device *dev) return (rc == kStatus_Success) ? 0 : -EIO; } -DEVICE_AND_API_INIT(flash_mcux, CONFIG_SOC_FLASH_MCUX_DEV_NAME, +DEVICE_AND_API_INIT(flash_mcux, FLASH_DEV_NAME, flash_mcux_init, &flash_data, NULL, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEVICE, &flash_mcux_api); diff --git a/dts/arm/nxp/nxp_k6x.dtsi b/dts/arm/nxp/nxp_k6x.dtsi index 56c69c1a8c0..a580a71f4dc 100644 --- a/dts/arm/nxp/nxp_k6x.dtsi +++ b/dts/arm/nxp/nxp_k6x.dtsi @@ -64,10 +64,12 @@ #clocks-cells = <3>; }; - flash-controller@4001f000 { - compatible = "nxp,k64f-flash-controller"; - reg = <0x4001f000 0x27c>; + flash-controller@40020000 { + compatible = "nxp,kinetis-ftfe"; + label = "FLASH_CTRL"; + reg = <0x40020000 0x18>; interrupts = <18 0>, <19 0>; + interrupt-names = "command-complete", "read-collision"; #address-cells = <1>; #size-cells = <1>; diff --git a/dts/arm/nxp/nxp_kw2xd.dtsi b/dts/arm/nxp/nxp_kw2xd.dtsi index 140c5b3da81..c877d7388d2 100644 --- a/dts/arm/nxp/nxp_kw2xd.dtsi +++ b/dts/arm/nxp/nxp_kw2xd.dtsi @@ -56,10 +56,12 @@ #clocks-cells = <3>; }; - flash-controller@4001f000 { - compatible = "nxp,k64f-flash-controller"; - reg = <0x4001f000 0x27c>; + flash-controller@40020000 { + compatible = "nxp,kinetis-ftfl"; + label = "FLASH_CTRL"; + reg = <0x40020000 0x18>; interrupts = <18 0>, <19 0>; + interrupt-names = "command-complete", "read-collision"; #address-cells = <1>; #size-cells = <1>; diff --git a/dts/bindings/flash_controller/nxp,kinetis-ftfe.yaml b/dts/bindings/flash_controller/nxp,kinetis-ftfe.yaml new file mode 100644 index 00000000000..411f1dc17e6 --- /dev/null +++ b/dts/bindings/flash_controller/nxp,kinetis-ftfe.yaml @@ -0,0 +1,19 @@ +--- +title: NXP Kinetis Flash Memory Module (FTFE) +id: nxp,kinetis-ftfe +version: 0.1 + +description: > + This binding gives for the NXP Kinetis Flash Memory Module E (FTFE) + +inherits: + !include flash-controller.yaml + +properties: + compatible: + type: string + category: required + description: compatible strings + constraint: "nxp,kinetis-ftfe" + +... diff --git a/dts/bindings/flash_controller/nxp,kinetis-ftfl.yaml b/dts/bindings/flash_controller/nxp,kinetis-ftfl.yaml new file mode 100644 index 00000000000..611a8822059 --- /dev/null +++ b/dts/bindings/flash_controller/nxp,kinetis-ftfl.yaml @@ -0,0 +1,19 @@ +--- +title: NXP Kinetis Flash Memory Module (FTFL) +id: nxp,kinetis-ftfl +version: 0.1 + +description: > + This binding gives for the NXP Kinetis Flash Memory Module L (FTFL) + +inherits: + !include flash-controller.yaml + +properties: + compatible: + type: string + category: required + description: compatible strings + constraint: "nxp,kinetis-ftfl" + +... diff --git a/samples/mpu/mpu_test/src/main.c b/samples/mpu/mpu_test/src/main.c index c584e1da56b..049e1f5f48a 100644 --- a/samples/mpu/mpu_test/src/main.c +++ b/samples/mpu/mpu_test/src/main.c @@ -41,7 +41,7 @@ static int shell_cmd_write_mcux(int argc, char *argv[]) ARG_UNUSED(argv); struct device *flash_dev; - flash_dev = device_get_binding(CONFIG_SOC_FLASH_MCUX_DEV_NAME); + flash_dev = device_get_binding(FLASH_DEV_NAME); u32_t value[2];