| = 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@700000 { |
| ... |
| |
| /* 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"; |
| }; |