[PATCH] drivers: nvmem: atmel-secumod: New driver for Atmel Secumod nvram
From: robh@kernel.org (Rob Herring)
Date: 2016-05-20 19:21:14
Also in:
linux-devicetree, lkml
On Wed, May 18, 2016 at 03:06:04PM -0600, David Mosberger-Tang wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: David Mosberger <redacted> --- .../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.cdiff --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 at 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 at 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 at 1000 {
+ reg = <0x1000 0x400>;
+ };
+ ram at 1400 {
+ reg = <0x1400 0x20>;
+ };
+ };
+
+= Data consumers =
+Are device nodes which consume nvmem data cells.
+
+For example:
+
+ ram {
+ ...
+ nvmem-cells = <&ram>;
+ nvmem-cell-names = "RAM";
+ };