From bfc4281cc0544c052673e1dcecf149abe3006b9d Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Sat, 3 Nov 2018 06:50:44 -0500 Subject: [PATCH] arm: kinetis: Add basic DTS support for TRNG Add dts binding and info for TRNG 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_kw40z.dtsi | 8 ++++++ dts/arm/nxp/nxp_kw41z.dtsi | 8 ++++++ dts/bindings/rng/nxp,kinetis-trng.yaml | 39 ++++++++++++++++++++++++++ soc/arm/nxp_kinetis/kwx/dts_fixup.h | 6 ++++ 5 files changed, 62 insertions(+) create mode 100644 dts/bindings/rng/nxp,kinetis-trng.yaml diff --git a/drivers/entropy/Kconfig.mcux b/drivers/entropy/Kconfig.mcux index 84673bcda61..3ec35080fdf 100644 --- a/drivers/entropy/Kconfig.mcux +++ b/drivers/entropy/Kconfig.mcux @@ -17,6 +17,7 @@ menuconfig ENTROPY_MCUX_TRNG bool "MCUX TRNG driver" depends on ENTROPY_GENERATOR && HAS_MCUX_TRNG select ENTROPY_HAS_DRIVER + select HAS_DTS_ENTROPY help This option enables the true random number generator (TRNG) driver based on the MCUX TRNG driver. diff --git a/dts/arm/nxp/nxp_kw40z.dtsi b/dts/arm/nxp/nxp_kw40z.dtsi index 32815bd865a..0c6340395a2 100644 --- a/dts/arm/nxp/nxp_kw40z.dtsi +++ b/dts/arm/nxp/nxp_kw40z.dtsi @@ -244,6 +244,14 @@ label = "ADC_0"; status = "disabled"; }; + + trng: random@40029000 { + compatible = "nxp,kinetis-trng"; + reg = <0x40029000 0x1000>; + status = "ok"; + interrupts = <13 0>; + label = "TRNG"; + }; }; }; diff --git a/dts/arm/nxp/nxp_kw41z.dtsi b/dts/arm/nxp/nxp_kw41z.dtsi index dbff274ae4a..2d4fa0912d4 100644 --- a/dts/arm/nxp/nxp_kw41z.dtsi +++ b/dts/arm/nxp/nxp_kw41z.dtsi @@ -247,6 +247,14 @@ label = "ADC_0"; status = "disabled"; }; + + trng: random@40029000 { + compatible = "nxp,kinetis-trng"; + reg = <0x40029000 0x1000>; + status = "ok"; + interrupts = <13 0>; + label = "TRNG"; + }; }; }; diff --git a/dts/bindings/rng/nxp,kinetis-trng.yaml b/dts/bindings/rng/nxp,kinetis-trng.yaml new file mode 100644 index 00000000000..8d71d499e10 --- /dev/null +++ b/dts/bindings/rng/nxp,kinetis-trng.yaml @@ -0,0 +1,39 @@ +# +# Copyright (c) 2018, Linaro Limited +# +# SPDX-License-Identifier: Apache-2.0 +# +--- +title: Kinetis TRNG (True Random Number Generator) +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-trng" + 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/kwx/dts_fixup.h b/soc/arm/nxp_kinetis/kwx/dts_fixup.h index 086f5ade74d..92f8e85b3b9 100644 --- a/soc/arm/nxp_kinetis/kwx/dts_fixup.h +++ b/soc/arm/nxp_kinetis/kwx/dts_fixup.h @@ -145,5 +145,11 @@ #define CONFIG_SPI_1_CLOCK_NAME NXP_KINETIS_DSPI_4002D000_CLOCK_CONTROLLER #define CONFIG_SPI_1_CLOCK_SUBSYS NXP_KINETIS_DSPI_4002D000_CLOCK_NAME +#define CONFIG_ENTROPY_MCUX_TRNG_BASE_ADDRESS NXP_KINETIS_TRNG_40029000_BASE_ADDRESS +#define CONFIG_ENTROPY_MCUX_TRNG_IRQ NXP_KINETIS_TRNG_40029000_IRQ_0 +#define CONFIG_ENTROPY_MCUX_TRNG_IRQ_PRI NXP_KINETIS_TRNG_40029000_IRQ_0_PRIORITY +#define CONFIG_ENTROPY_MCUX_TRNG_NAME NXP_KINETIS_TRNG_40029000_LABEL +#define CONFIG_ENTROPY_NAME NXP_KINETIS_TRNG_40029000_LABEL + #endif /* CONFIG_SOC_MKW40Z4 || CONFIG_SOC_MKW41Z4 */ /* End of SoC Level DTS fixup file */