^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/nvmem/nvmem.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: NVMEM (Non Volatile Memory) Device Tree Bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) This binding is intended to represent the location of hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) configuration data stored in NVMEMs like eeprom, efuses and so on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) On a significant proportion of boards, the manufacturer has stored
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) some data on NVMEM, for the OS to be able to retrieve these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) information and act upon it. Obviously, the OS has to know about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) where to retrieve these data from, and where they are stored on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) storage device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) $nodename:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) pattern: "^(eeprom|efuse|nvram)(@.*|-[0-9a-f])*$"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) "#address-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) const: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) "#size-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) const: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) read-only:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) $ref: /schemas/types.yaml#/definitions/flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) Mark the provider as read only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) wp-gpios:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) GPIO to which the write-protect pin of the chip is connected.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) The write-protect GPIO is asserted, when it's driven high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) (logical '1') to block the write operation. It's deasserted,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) when it's driven low (logical '0') to allow writing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) "^.*@[0-9a-f]+$":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) type: object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) Offset and size in bytes within the storage device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) bits:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - minimum: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) maximum: 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) Offset in bit within the address range specified by reg.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) - minimum: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Size in bit within the address range specified by reg.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) additionalProperties: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #include <dt-bindings/gpio/gpio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) qfprom: eeprom@700000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) reg = <0x00700000 0x100000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) wp-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) /* ... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) /* Data cells */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) tsens_calibration: calib@404 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) reg = <0x404 0x10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) tsens_calibration_bckp: calib_bckp@504 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) reg = <0x504 0x11>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) bits = <6 128>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) pvs_version: pvs-version@6 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) reg = <0x6 0x2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) bits = <7 2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) speed_bin: speed-bin@c{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) reg = <0xc 0x1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) bits = <2 3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) ...