18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/eeprom/at25.yaml#"
58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: SPI EEPROMs compatible with Atmel's AT25
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Christian Eggers <ceggers@arri.de>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciproperties:
138c2ecf20Sopenharmony_ci  $nodename:
148c2ecf20Sopenharmony_ci    pattern: "^eeprom@[0-9a-f]{1,2}$"
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci  # There are multiple known vendors who manufacture EEPROM chips compatible
178c2ecf20Sopenharmony_ci  # with Atmel's AT25. The compatible string requires two items where the
188c2ecf20Sopenharmony_ci  # 'vendor' and 'model' parts of the first are the actual chip and the second
198c2ecf20Sopenharmony_ci  # item is fixed to "atmel,at25". Some existing bindings only have the
208c2ecf20Sopenharmony_ci  # "atmel,at25" part and should be fixed by somebody who knows vendor and
218c2ecf20Sopenharmony_ci  # product.
228c2ecf20Sopenharmony_ci  compatible:
238c2ecf20Sopenharmony_ci    oneOf:
248c2ecf20Sopenharmony_ci      - items:
258c2ecf20Sopenharmony_ci          - enum:
268c2ecf20Sopenharmony_ci              - anvo,anv32e61w
278c2ecf20Sopenharmony_ci              - atmel,at25256B
288c2ecf20Sopenharmony_ci              - fujitsu,mb85rs1mt
298c2ecf20Sopenharmony_ci              - fujitsu,mb85rs64
308c2ecf20Sopenharmony_ci              - microchip,at25160bn
318c2ecf20Sopenharmony_ci              - microchip,25lc040
328c2ecf20Sopenharmony_ci              - st,m95m02
338c2ecf20Sopenharmony_ci              - st,m95256
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci          - const: atmel,at25
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci      # Please don't use this alternative for new bindings.
388c2ecf20Sopenharmony_ci      - items:
398c2ecf20Sopenharmony_ci          - const: atmel,at25
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  reg:
428c2ecf20Sopenharmony_ci    description:
438c2ecf20Sopenharmony_ci      Chip select number.
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci  spi-max-frequency: true
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  pagesize:
488c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32
498c2ecf20Sopenharmony_ci    enum: [1, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072]
508c2ecf20Sopenharmony_ci    description:
518c2ecf20Sopenharmony_ci      Size of the eeprom page.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci  size:
548c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#definitions/uint32
558c2ecf20Sopenharmony_ci    description:
568c2ecf20Sopenharmony_ci      Total eeprom size in bytes.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  address-width:
598c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
608c2ecf20Sopenharmony_ci    enum: [ 8, 9, 16, 24 ]
618c2ecf20Sopenharmony_ci    description:
628c2ecf20Sopenharmony_ci      Number of address bits.
638c2ecf20Sopenharmony_ci      For 9 bits, the MSB of the address is sent as bit 3 of the instruction
648c2ecf20Sopenharmony_ci      byte, before the address byte.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci  spi-cpha: true
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci  spi-cpol: true
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci  read-only:
718c2ecf20Sopenharmony_ci    description:
728c2ecf20Sopenharmony_ci      Disable writes to the eeprom.
738c2ecf20Sopenharmony_ci    type: boolean
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci  wp-gpios:
768c2ecf20Sopenharmony_ci    maxItems: 1
778c2ecf20Sopenharmony_ci    description:
788c2ecf20Sopenharmony_ci      GPIO to which the write-protect pin of the chip is connected.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci  # Deprecated: at25,byte-len, at25,addr-mode, at25,page-size
818c2ecf20Sopenharmony_ci  at25,byte-len:
828c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
838c2ecf20Sopenharmony_ci    description:
848c2ecf20Sopenharmony_ci      Total eeprom size in bytes. Deprecated, use "size" property instead.
858c2ecf20Sopenharmony_ci    deprecated: true
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci  at25,addr-mode:
888c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
898c2ecf20Sopenharmony_ci    description:
908c2ecf20Sopenharmony_ci      Addr-mode flags, as defined in include/linux/spi/eeprom.h.
918c2ecf20Sopenharmony_ci      Deprecated, use "address-width" property instead.
928c2ecf20Sopenharmony_ci    deprecated: true
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci  at25,page-size:
958c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
968c2ecf20Sopenharmony_ci    description:
978c2ecf20Sopenharmony_ci      Size of the eeprom page. Deprecated, use "pagesize" property instead.
988c2ecf20Sopenharmony_ci    deprecated: true
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_cirequired:
1018c2ecf20Sopenharmony_ci  - compatible
1028c2ecf20Sopenharmony_ci  - reg
1038c2ecf20Sopenharmony_ci  - spi-max-frequency
1048c2ecf20Sopenharmony_ci  - pagesize
1058c2ecf20Sopenharmony_ci  - size
1068c2ecf20Sopenharmony_ci  - address-width
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciadditionalProperties: false
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciexamples:
1118c2ecf20Sopenharmony_ci  - |
1128c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
1138c2ecf20Sopenharmony_ci    spi0 {
1148c2ecf20Sopenharmony_ci        #address-cells = <1>;
1158c2ecf20Sopenharmony_ci        #size-cells = <0>;
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci        eeprom@0 {
1188c2ecf20Sopenharmony_ci            compatible = "st,m95256", "atmel,at25";
1198c2ecf20Sopenharmony_ci            reg = <0>;
1208c2ecf20Sopenharmony_ci            spi-max-frequency = <5000000>;
1218c2ecf20Sopenharmony_ci            spi-cpha;
1228c2ecf20Sopenharmony_ci            spi-cpol;
1238c2ecf20Sopenharmony_ci            wp-gpios = <&gpio1 3 0>;
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci            pagesize = <64>;
1268c2ecf20Sopenharmony_ci            size = <32768>;
1278c2ecf20Sopenharmony_ci            address-width = <16>;
1288c2ecf20Sopenharmony_ci        };
1298c2ecf20Sopenharmony_ci    };
130