On Wed, May 18, 2016 at 03:06:04PM -0600, David Mosberger-Tang wrote:
> Signed-off-by: David Mosberger <dav...@egauge.net>
> ---
>  .../devicetree/bindings/nvmem/atmel-secumod.txt    |  47 +++++++
>  drivers/nvmem/Kconfig                              |   7 +
>  drivers/nvmem/Makefile                             |   2 +
>  drivers/nvmem/atmel-secumod.c                      | 143 
> +++++++++++++++++++++
>  4 files changed, 199 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/nvmem/atmel-secumod.txt
>  create mode 100644 drivers/nvmem/atmel-secumod.c
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/atmel-secumod.txt 
> b/Documentation/devicetree/bindings/nvmem/atmel-secumod.txt
> new file mode 100644
> index 0000000..d65cad5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/atmel-secumod.txt
> @@ -0,0 +1,47 @@
> += Atmel Secumod device tree bindings =
> +
> +This binding is intended to represent Atmel's Secumod which is found
> +in SAMA5D2 and perhaps others.
> +
> +Required properties:
> +- compatible: should be "atmel,sama5d2-secumod"
> +- reg: Should contain RAM location and length, followed
> +       by register location and length of the Secumod controller.
> +
> += Data cells =
> +Are child nodes of secumod, bindings of which as described in
> +bindings/nvmem/nvmem.txt
> +
> +Example:
> +
> +    secumod@fc040000 {

This unit-address should match the first reg address.

> +            compatible = "atmel,sama5d2-secumod";
> +            reg = <0xf8044000 0x1420>, <0xfc040000 0x4000>;
> +            reg-names = "SECURAM", "SECUMOD";
> +            status = "okay";
> +
> +            #address-cells = <1>;
> +            #size-cells = <1>;
> +            ranges;

Sorry, to be clear, you need values here too.

> +
> +            secram-auto-erasable@0 {
> +                    reg = <0x0000 0x1000>;

The 0 here is address 0xf8044000, right? So ranges is what is used to 
translate from child address of 0 to the parent address.

> +            };
> +            secram@1000 {
> +                    reg = <0x1000 0x400>;
> +            };
> +            ram@1400 {
> +                    reg = <0x1400 0x20>;
> +            };
> +    };
> +
> += Data consumers =
> +Are device nodes which consume nvmem data cells.
> +
> +For example:
> +
> +     ram {
> +             ...
> +             nvmem-cells = <&ram>;
> +             nvmem-cell-names = "RAM";
> +     };

Reply via email to