diff mbox series

[1/2] dt-bindings: rng: add support for Airoha EN7581 TRNG

Message ID 20241016151845.23712-1-ansuelsmth@gmail.com
State Superseded
Headers show
Series [1/2] dt-bindings: rng: add support for Airoha EN7581 TRNG | expand

Commit Message

Christian Marangi Oct. 16, 2024, 3:18 p.m. UTC
Add support for Airoha EN7581 True Random Number generator.

This module can generate up to 4bytes of raw data at times and support
self health test at startup. The module gets noise for randomness from
various source from ADC, AP, dedicated clocks and other devices attached
to the SoC producing true random numbers.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
 .../bindings/rng/airoha,en7581-trng.yaml      | 38 +++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml

Comments

Rob Herring Oct. 16, 2024, 5:35 p.m. UTC | #1
On Wed, 16 Oct 2024 17:18:41 +0200, Christian Marangi wrote:
> Add support for Airoha EN7581 True Random Number generator.
> 
> This module can generate up to 4bytes of raw data at times and support
> self health test at startup. The module gets noise for randomness from
> various source from ADC, AP, dedicated clocks and other devices attached
> to the SoC producing true random numbers.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  .../bindings/rng/airoha,en7581-trng.yaml      | 38 +++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Francesco Dolcini Oct. 17, 2024, 1:11 p.m. UTC | #2
On Wed, Oct 16, 2024 at 05:18:42PM +0200, Christian Marangi wrote:
> Add support for Airoha TRNG. The Airoha SoC provide a True RNG module
> that can output 4 bytes of raw data at times.
> 
> The module makes use of various noise source to provide True Random
> Number Generation.
> 
> On probe the module is reset to operate Health Test and verify correct
> execution of it.
> 
> The module can also provide DRBG function but the execution mode is
> mutually exclusive, running as TRNG doesn't permit to also run it as
> DRBG.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
>  drivers/char/hw_random/Kconfig       |  13 ++
>  drivers/char/hw_random/Makefile      |   1 +
>  drivers/char/hw_random/airoha-trng.c | 243 +++++++++++++++++++++++++++
>  3 files changed, 257 insertions(+)
>  create mode 100644 drivers/char/hw_random/airoha-trng.c
> 
> diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
> index 5912c2dd6398..bda283f290bc 100644
> --- a/drivers/char/hw_random/Kconfig
> +++ b/drivers/char/hw_random/Kconfig
> @@ -62,6 +62,19 @@ config HW_RANDOM_AMD
>  
>  	  If unsure, say Y.
>  
> +config HW_RANDOM_AIROHA
> +	tristate "Airoha True HW Random Number Generator support"
> +	depends on ARCH_AIROHA || COMPILE_TEST

> +	default HW_RANDOM
This should not be always enabled when HW_RANDOM is enabled. Enabling
driver should be a opt-in.

Francesco
Christian Marangi Oct. 17, 2024, 1:13 p.m. UTC | #3
On Thu, Oct 17, 2024 at 03:11:12PM +0200, Francesco Dolcini wrote:
> On Wed, Oct 16, 2024 at 05:18:42PM +0200, Christian Marangi wrote:
> > Add support for Airoha TRNG. The Airoha SoC provide a True RNG module
> > that can output 4 bytes of raw data at times.
> > 
> > The module makes use of various noise source to provide True Random
> > Number Generation.
> > 
> > On probe the module is reset to operate Health Test and verify correct
> > execution of it.
> > 
> > The module can also provide DRBG function but the execution mode is
> > mutually exclusive, running as TRNG doesn't permit to also run it as
> > DRBG.
> > 
> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > ---
> >  drivers/char/hw_random/Kconfig       |  13 ++
> >  drivers/char/hw_random/Makefile      |   1 +
> >  drivers/char/hw_random/airoha-trng.c | 243 +++++++++++++++++++++++++++
> >  3 files changed, 257 insertions(+)
> >  create mode 100644 drivers/char/hw_random/airoha-trng.c
> > 
> > diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
> > index 5912c2dd6398..bda283f290bc 100644
> > --- a/drivers/char/hw_random/Kconfig
> > +++ b/drivers/char/hw_random/Kconfig
> > @@ -62,6 +62,19 @@ config HW_RANDOM_AMD
> >  
> >  	  If unsure, say Y.
> >  
> > +config HW_RANDOM_AIROHA
> > +	tristate "Airoha True HW Random Number Generator support"
> > +	depends on ARCH_AIROHA || COMPILE_TEST
> 
> > +	default HW_RANDOM
> This should not be always enabled when HW_RANDOM is enabled. Enabling
> driver should be a opt-in.

Was following the pattern with other HW_RANDOM config. Ok will drop.
Francesco Dolcini Oct. 17, 2024, 1:39 p.m. UTC | #4
On Thu, Oct 17, 2024 at 03:13:37PM +0200, Christian Marangi wrote:
> On Thu, Oct 17, 2024 at 03:11:12PM +0200, Francesco Dolcini wrote:
> > On Wed, Oct 16, 2024 at 05:18:42PM +0200, Christian Marangi wrote:
> > > Add support for Airoha TRNG. The Airoha SoC provide a True RNG module
> > > that can output 4 bytes of raw data at times.
> > > 
> > > The module makes use of various noise source to provide True Random
> > > Number Generation.
> > > 
> > > On probe the module is reset to operate Health Test and verify correct
> > > execution of it.
> > > 
> > > The module can also provide DRBG function but the execution mode is
> > > mutually exclusive, running as TRNG doesn't permit to also run it as
> > > DRBG.
> > > 
> > > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > > ---
> > >  drivers/char/hw_random/Kconfig       |  13 ++
> > >  drivers/char/hw_random/Makefile      |   1 +
> > >  drivers/char/hw_random/airoha-trng.c | 243 +++++++++++++++++++++++++++
> > >  3 files changed, 257 insertions(+)
> > >  create mode 100644 drivers/char/hw_random/airoha-trng.c
> > > 
> > > diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
> > > index 5912c2dd6398..bda283f290bc 100644
> > > --- a/drivers/char/hw_random/Kconfig
> > > +++ b/drivers/char/hw_random/Kconfig
> > > @@ -62,6 +62,19 @@ config HW_RANDOM_AMD
> > >  
> > >  	  If unsure, say Y.
> > >  
> > > +config HW_RANDOM_AIROHA
> > > +	tristate "Airoha True HW Random Number Generator support"
> > > +	depends on ARCH_AIROHA || COMPILE_TEST
> > 
> > > +	default HW_RANDOM
> > This should not be always enabled when HW_RANDOM is enabled. Enabling
> > driver should be a opt-in.
> 
> Was following the pattern with other HW_RANDOM config. Ok will drop.

Whoops. I missed that it depends on ARCH_AIROHA. Given that dependency
is fine to me without any change.

Francesco
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml b/Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml
new file mode 100644
index 000000000000..dfc6d24ee7d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml
@@ -0,0 +1,38 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rng/airoha,en7581-trng.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Airoha EN7851 True Random Number Generator
+
+maintainers:
+  - Christian Marangi <ansuelsmth@gmail.com>
+
+properties:
+  compatible:
+    const: airoha,en7581-trng
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    rng@1faa1000 {
+        compatible = "airoha,en7581-trng";
+        reg = <0x1faa1000 0x1000>;
+        interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+    };