From 727a9a7f99e943031b8f4cd899148f286d716c98 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Sat, 3 Nov 2018 06:50:08 -0500 Subject: [PATCH] arm: kinetis: Add basic DTS support for RNGA Add dts binding and info for RNGA device and enable basic support to get the device name from DTS. We leave for now the base addresses coming from the MCUX HAL. Signed-off-by: Kumar Gala --- drivers/entropy/Kconfig.mcux | 1 + dts/arm/nxp/nxp_k6x.dtsi | 8 ++++++ dts/arm/nxp/nxp_kw2xd.dtsi | 8 ++++++ dts/bindings/rng/nxp,kinetis-rnga.yaml | 39 ++++++++++++++++++++++++++ soc/arm/nxp_kinetis/k6x/dts_fixup.h | 6 ++++ soc/arm/nxp_kinetis/kwx/dts_fixup.h | 6 ++++ 6 files changed, 68 insertions(+) create mode 100644 dts/bindings/rng/nxp,kinetis-rnga.yaml diff --git a/drivers/entropy/Kconfig.mcux b/drivers/entropy/Kconfig.mcux index 44f2eea03c2..84673bcda61 100644 --- a/drivers/entropy/Kconfig.mcux +++ b/drivers/entropy/Kconfig.mcux @@ -8,6 +8,7 @@ menuconfig ENTROPY_MCUX_RNGA bool "MCUX RNGA driver" depends on ENTROPY_GENERATOR && HAS_MCUX_RNGA select ENTROPY_HAS_DRIVER + select HAS_DTS_ENTROPY help This option enables the random number generator accelerator (RNGA) driver based on the MCUX RNGA driver. diff --git a/dts/arm/nxp/nxp_k6x.dtsi b/dts/arm/nxp/nxp_k6x.dtsi index 078a9dcb5e4..b217b55db5c 100644 --- a/dts/arm/nxp/nxp_k6x.dtsi +++ b/dts/arm/nxp/nxp_k6x.dtsi @@ -409,6 +409,14 @@ interrupts-names = "IEEE1588_TMR"; }; }; + + rnga: random@40029000 { + compatible = "nxp,kinetis-rnga"; + reg = <0x40029000 0x1000>; + status = "ok"; + interrupts = <23 0>; + label = "RNGA"; + }; }; }; diff --git a/dts/arm/nxp/nxp_kw2xd.dtsi b/dts/arm/nxp/nxp_kw2xd.dtsi index ee4e6140fc1..ebc2dae0c2d 100644 --- a/dts/arm/nxp/nxp_kw2xd.dtsi +++ b/dts/arm/nxp/nxp_kw2xd.dtsi @@ -326,6 +326,14 @@ status = "disabled"; label = "USBD"; }; + + rnga: random@40029000 { + compatible = "nxp,kinetis-rnga"; + reg = <0x40029000 0x1000>; + status = "ok"; + interrupts = <23 0>; + label = "RNGA"; + }; }; }; diff --git a/dts/bindings/rng/nxp,kinetis-rnga.yaml b/dts/bindings/rng/nxp,kinetis-rnga.yaml new file mode 100644 index 00000000000..e7bf174a221 --- /dev/null +++ b/dts/bindings/rng/nxp,kinetis-rnga.yaml @@ -0,0 +1,39 @@ +# +# Copyright (c) 2018, Linaro Limited +# +# SPDX-License-Identifier: Apache-2.0 +# +--- +title: Kinetis RNGA (Random Number Generator Accelerator) +version: 0.1 + +description: > + This binding gives a base representation of the Kinetis RNGA + +properties: + compatible: + type: string + category: required + description: compatible strings + constraint: "nxp,kinetis-rnga" + generation: define + + reg: + type: int + description: mmio register space + generation: define + category: required + + interrupts: + type: compound + category: required + description: required interrupts + generation: define + + label: + type: string + category: required + description: Human readable string describing the device (used by Zephyr for API name) + generation: define + +... diff --git a/soc/arm/nxp_kinetis/k6x/dts_fixup.h b/soc/arm/nxp_kinetis/k6x/dts_fixup.h index b077e577dbf..d516b8b225b 100644 --- a/soc/arm/nxp_kinetis/k6x/dts_fixup.h +++ b/soc/arm/nxp_kinetis/k6x/dts_fixup.h @@ -135,4 +135,10 @@ #define CONFIG_IRQ_ETH_ERR_MISC NXP_KINETIS_ETHERNET_400C0004_IRQ_ERR_MISC #define CONFIG_ETH_MCUX_0_IRQ_PRI NXP_KINETIS_ETHERNET_400C0004_IRQ_RX_PRIORITY +#define CONFIG_ENTROPY_MCUX_RNGA_BASE_ADDRESS NXP_KINETIS_RNGA_40029000_BASE_ADDRESS +#define CONFIG_ENTROPY_MCUX_RNGA_IRQ NXP_KINETIS_RNGA_40029000_IRQ_0 +#define CONFIG_ENTROPY_MCUX_RNGA_IRQ_PRI NXP_KINETIS_RNGA_40029000_IRQ_0_PRIORITY +#define CONFIG_ENTROPY_MCUX_RNGA_NAME NXP_KINETIS_RNGA_40029000_LABEL +#define CONFIG_ENTROPY_NAME NXP_KINETIS_RNGA_40029000_LABEL + /* End of SoC Level DTS fixup file */ diff --git a/soc/arm/nxp_kinetis/kwx/dts_fixup.h b/soc/arm/nxp_kinetis/kwx/dts_fixup.h index 21cd9668384..086f5ade74d 100644 --- a/soc/arm/nxp_kinetis/kwx/dts_fixup.h +++ b/soc/arm/nxp_kinetis/kwx/dts_fixup.h @@ -110,6 +110,12 @@ #define CONFIG_USBD_KINETIS_IRQ_PRI NXP_KINETIS_USBD_40072000_IRQ_USB_OTG_PRIORITY #define CONFIG_USBD_KINETIS_BASE_ADDRESS NXP_KINETIS_USBD_40072000_BASE_ADDRESS #define CONFIG_USBD_KINETIS_NUM_BIDIR_EP NXP_KINETIS_USBD_40072000_NUM_BIDIR_ENDPOINTS + +#define CONFIG_ENTROPY_MCUX_RNGA_BASE_ADDRESS NXP_KINETIS_RNGA_40029000_BASE_ADDRESS +#define CONFIG_ENTROPY_MCUX_RNGA_IRQ NXP_KINETIS_RNGA_40029000_IRQ_0 +#define CONFIG_ENTROPY_MCUX_RNGA_IRQ_PRI NXP_KINETIS_RNGA_40029000_IRQ_0_PRIORITY +#define CONFIG_ENTROPY_MCUX_RNGA_NAME NXP_KINETIS_RNGA_40029000_LABEL +#define CONFIG_ENTROPY_NAME NXP_KINETIS_RNGA_40029000_LABEL #endif /* CONFIG_SOC_MKW22D5 || CONFIG_SOC_MKW24D5 */ #if defined(CONFIG_SOC_MKW40Z4) || defined(CONFIG_SOC_MKW41Z4)