xref: /linux/Documentation/devicetree/bindings/nvmem/nvmem.txt (revision bd628c1bed7902ec1f24ba0fe70758949146abbe)
1= NVMEM(Non Volatile Memory) Data Device Tree Bindings =
2
3This binding is intended to represent the location of hardware
4configuration data stored in NVMEMs like eeprom, efuses and so on.
5
6On a significant proportion of boards, the manufacturer has stored
7some data on NVMEM, for the OS to be able to retrieve these information
8and act upon it. Obviously, the OS has to know about where to retrieve
9these data from, and where they are stored on the storage device.
10
11This document is here to document this.
12
13= Data providers =
14Contains bindings specific to provider drivers and data cells as children
15of this node.
16
17Optional properties:
18 read-only: Mark the provider as read only.
19
20= Data cells =
21These are the child nodes of the provider which contain data cell
22information like offset and size in nvmem provider.
23
24Required properties:
25reg:	specifies the offset in byte within the storage device.
26
27Optional properties:
28
29bits:	Is pair of bit location and number of bits, which specifies offset
30	in bit and number of bits within the address range specified by reg property.
31	Offset takes values from 0-7.
32
33For example:
34
35	/* Provider */
36	qfprom: qfprom@700000 {
37		...
38
39		/* Data cells */
40		tsens_calibration: calib@404 {
41			reg = <0x404 0x10>;
42		};
43
44		tsens_calibration_bckp: calib_bckp@504 {
45			reg = <0x504 0x11>;
46			bits = <6 128>
47		};
48
49		pvs_version: pvs-version@6 {
50			reg = <0x6 0x2>
51			bits = <7 2>
52		};
53
54		speed_bin: speed-bin@c{
55			reg = <0xc 0x1>;
56			bits = <2 3>;
57
58		};
59		...
60	};
61
62= Data consumers =
63Are device nodes which consume nvmem data cells/providers.
64
65Required-properties:
66nvmem-cells: list of phandle to the nvmem data cells.
67nvmem-cell-names: names for the each nvmem-cells specified. Required if
68	nvmem-cells is used.
69
70Optional-properties:
71nvmem	: list of phandles to nvmem providers.
72nvmem-names: names for the each nvmem provider. required if nvmem is used.
73
74For example:
75
76	tsens {
77		...
78		nvmem-cells = <&tsens_calibration>;
79		nvmem-cell-names = "calibration";
80	};
81