80 lines
1.9 KiB
Text
80 lines
1.9 KiB
Text
= 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";
|
|
};
|