summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/nvmem/nvmem.txt
blob: d1a37e7b10684e440bc7dc2d54778b54e9a23858 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
= 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 that storage device, start bit
	in the byte and the length in bits of the data we care about.
	There could be more than one offset-length pairs in this property.

Optional properties:

bit-offset: specifies the offset in bit within the address range specified
	by reg property. Can take values from 0-7.
nbits: specifies number of bits this cell occupies starting from bit-offset.

For example:

	/* Provider */
	qfprom: qfprom@00700000 {
		...

		/* Data cells */
		tsens_calibration: calib@404 {
			reg = <0x404 0x10>;
		};

		tsens_calibration_bckp: calib_bckp@504 {
			reg = <0x504 0x11>;
			bit-offset = 6;
			nbits = 128;
		};

		pvs_version: pvs-version@6 {
			reg = <0x6 0x2>
			bit-offset = 7;
			nbits = 2;
		};

		speed_bin: speed-bin@c{
			reg = <0xc 0x1>;
			bit-offset = 2;
			nbits	= 3;

		};
		...
	};

= Data consumers =
Are device nodes which consume nvmem data cells/providers.

Required-properties:
nvmem-cell: list of phandle to the nvmem data cells.
nvmem-cell-names: names for the each nvmem-cell specified. Required if
	nvmem-cell 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-cell = <&tsens_calibration>;
		nvmem-cell-names = "calibration";
	};