nvmem: Add bindings for simple nvmem framework
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 27 Jul 2015 11:13:58 +0000 (12:13 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2015 20:43:45 +0000 (13:43 -0700)
This patch adds bindings for simple nvmem framework which allows nvmem
consumers to talk to nvmem providers to get access to nvmem cell data.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
[Maxime Ripard: intial version of eeprom framework]
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Philipp Zabel <p.zabel@pengutronix.de>
Tested-by: Rajendra Nayak <rnayak@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/devicetree/bindings/nvmem/nvmem.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/nvmem/nvmem.txt b/Documentation/devicetree/bindings/nvmem/nvmem.txt
new file mode 100644 (file)
index 0000000..b52bc11
--- /dev/null
@@ -0,0 +1,80 @@
+= NVMEM(Non Volatile Memory) Data Device Tree Bindings =
+
+This binding is intended to represent the location of hardware
+configuration data stored in NVMEMs like eeprom, efuses and so on.
+
+On a significant proportion of boards, the manufacturer has stored
+some data on NVMEM, for the OS to be able to retrieve these information
+and act upon it. Obviously, the OS has to know about where to retrieve
+these data from, and where they are stored on the storage device.
+
+This document is here to document this.
+
+= Data providers =
+Contains bindings specific to provider drivers and data cells as children
+of this node.
+
+Optional properties:
+ read-only: Mark the provider as read only.
+
+= Data cells =
+These are the child nodes of the provider which contain data cell
+information like offset and size in nvmem provider.
+
+Required properties:
+reg:   specifies the offset in byte within the storage device.
+
+Optional properties:
+
+bits:  Is pair of bit location and number of bits, which specifies offset
+       in bit and number of bits within the address range specified by reg property.
+       Offset takes values from 0-7.
+
+For example:
+
+       /* Provider */
+       qfprom: qfprom@00700000 {
+               ...
+
+               /* Data cells */
+               tsens_calibration: calib@404 {
+                       reg = <0x404 0x10>;
+               };
+
+               tsens_calibration_bckp: calib_bckp@504 {
+                       reg = <0x504 0x11>;
+                       bits = <6 128>
+               };
+
+               pvs_version: pvs-version@6 {
+                       reg = <0x6 0x2>
+                       bits = <7 2>
+               };
+
+               speed_bin: speed-bin@c{
+                       reg = <0xc 0x1>;
+                       bits = <2 3>;
+
+               };
+               ...
+       };
+
+= Data consumers =
+Are device nodes which consume nvmem data cells/providers.
+
+Required-properties:
+nvmem-cells: list of phandle to the nvmem data cells.
+nvmem-cell-names: names for the each nvmem-cells specified. Required if
+       nvmem-cells is used.
+
+Optional-properties:
+nvmem  : list of phandles to nvmem providers.
+nvmem-names: names for the each nvmem provider. required if nvmem is used.
+
+For example:
+
+       tsens {
+               ...
+               nvmem-cells = <&tsens_calibration>;
+               nvmem-cell-names = "calibration";
+       };