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"; > + };