aboutsummaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/eeprom/eeprom.txt
blob: 8348d18a9e5723728765469bb00d5caac533bafd (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
= EEPROM Data Device Tree Bindings =

This binding is intended to represent the location of hardware
configuration data stored in EEPROMs.

On a significant proportion of boards, the manufacturer has stored
some data on an EEPROM-like device, 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
to this node.

= Data cells =
These are the child nodes of the provider which contain data cell
information like offset and size in eeprom provider.

Required properties:
reg:	specifies the offset in byte within that storage device, and the length
	in bytes of the data we care about.
	There could be more then one offset-length pairs in this property.

Optional properties:
As required by specific data parsers/interpreters.

For example:

	/* Provider */
	qfprom: qfprom@00700000 {
		compatible 	= "qcom,qfprom";
		reg		= <0x00700000 0x1000>;
		...

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

		serial_number: sn {
			reg = <0x104 0x4>, <0x204 0x4>, <0x30c 0x4>;

		};
		...
	};

= Data consumers =
Are device nodes which consume eeprom data cells.

Required properties:

eeproms: List of phandle and data cell the device might be interested in.

Optional properties:

eeprom-names: List of data cell name strings sorted in the same order
	      as the eeproms property. Consumers drivers will use
	      eeprom-names to differentiate between multiple cells,
	      and hence being able to know what these cells are for.

For example:

	tsens {
		...
		eeproms = <&tsens_calibration>;
		eeprom-names = "calibration";
	};