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 */