162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/eeprom/at25.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: SPI EEPROMs or FRAMs compatible with Atmel's AT25 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Christian Eggers <ceggers@arri.de> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciproperties: 1362306a36Sopenharmony_ci $nodename: 1462306a36Sopenharmony_ci anyOf: 1562306a36Sopenharmony_ci - pattern: "^eeprom@[0-9a-f]{1,2}$" 1662306a36Sopenharmony_ci - pattern: "^fram@[0-9a-f]{1,2}$" 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci # There are multiple known vendors who manufacture EEPROM chips compatible 1962306a36Sopenharmony_ci # with Atmel's AT25. The compatible string requires two items where the 2062306a36Sopenharmony_ci # 'vendor' and 'model' parts of the first are the actual chip and the second 2162306a36Sopenharmony_ci # item is fixed to "atmel,at25". Some existing bindings only have the 2262306a36Sopenharmony_ci # "atmel,at25" part and should be fixed by somebody who knows vendor and 2362306a36Sopenharmony_ci # product. 2462306a36Sopenharmony_ci compatible: 2562306a36Sopenharmony_ci oneOf: 2662306a36Sopenharmony_ci - items: 2762306a36Sopenharmony_ci - enum: 2862306a36Sopenharmony_ci - anvo,anv32e61w 2962306a36Sopenharmony_ci - atmel,at25256B 3062306a36Sopenharmony_ci - fujitsu,mb85rs1mt 3162306a36Sopenharmony_ci - fujitsu,mb85rs64 3262306a36Sopenharmony_ci - microchip,at25160bn 3362306a36Sopenharmony_ci - microchip,25lc040 3462306a36Sopenharmony_ci - st,m95m02 3562306a36Sopenharmony_ci - st,m95256 3662306a36Sopenharmony_ci - st,m95640 3762306a36Sopenharmony_ci - cypress,fm25 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci - const: atmel,at25 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci # Please don't use this alternative for new bindings. 4262306a36Sopenharmony_ci - items: 4362306a36Sopenharmony_ci - const: atmel,at25 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci reg: 4662306a36Sopenharmony_ci maxItems: 1 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci pagesize: 4962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5062306a36Sopenharmony_ci enum: [1, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072] 5162306a36Sopenharmony_ci description: 5262306a36Sopenharmony_ci Size of the eeprom page. FRAMs don't have pages. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci size: 5562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5662306a36Sopenharmony_ci description: 5762306a36Sopenharmony_ci Total eeprom size in bytes. 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci address-width: 6062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 6162306a36Sopenharmony_ci enum: [ 8, 9, 16, 24 ] 6262306a36Sopenharmony_ci description: 6362306a36Sopenharmony_ci Number of address bits. 6462306a36Sopenharmony_ci For 9 bits, the MSB of the address is sent as bit 3 of the instruction 6562306a36Sopenharmony_ci byte, before the address byte. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci spi-cpha: true 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci spi-cpol: true 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci read-only: 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci Disable writes to the eeprom. 7462306a36Sopenharmony_ci type: boolean 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci wp-gpios: 7762306a36Sopenharmony_ci maxItems: 1 7862306a36Sopenharmony_ci description: 7962306a36Sopenharmony_ci GPIO to which the write-protect pin of the chip is connected. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci # Deprecated: at25,byte-len, at25,addr-mode, at25,page-size 8262306a36Sopenharmony_ci at25,byte-len: 8362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 8462306a36Sopenharmony_ci description: 8562306a36Sopenharmony_ci Total eeprom size in bytes. Deprecated, use "size" property instead. 8662306a36Sopenharmony_ci deprecated: true 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci at25,addr-mode: 8962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9062306a36Sopenharmony_ci description: 9162306a36Sopenharmony_ci Addr-mode flags, as defined in include/linux/spi/eeprom.h. 9262306a36Sopenharmony_ci Deprecated, use "address-width" property instead. 9362306a36Sopenharmony_ci deprecated: true 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci at25,page-size: 9662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9762306a36Sopenharmony_ci description: 9862306a36Sopenharmony_ci Size of the eeprom page. Deprecated, use "pagesize" property instead. 9962306a36Sopenharmony_ci deprecated: true 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_cirequired: 10262306a36Sopenharmony_ci - compatible 10362306a36Sopenharmony_ci - reg 10462306a36Sopenharmony_ci - spi-max-frequency 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciallOf: 10762306a36Sopenharmony_ci - $ref: /schemas/spi/spi-peripheral-props.yaml# 10862306a36Sopenharmony_ci - $ref: /schemas/nvmem/nvmem.yaml 10962306a36Sopenharmony_ci - if: 11062306a36Sopenharmony_ci properties: 11162306a36Sopenharmony_ci compatible: 11262306a36Sopenharmony_ci not: 11362306a36Sopenharmony_ci contains: 11462306a36Sopenharmony_ci const: cypress,fm25 11562306a36Sopenharmony_ci then: 11662306a36Sopenharmony_ci required: 11762306a36Sopenharmony_ci - pagesize 11862306a36Sopenharmony_ci - size 11962306a36Sopenharmony_ci - address-width 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciunevaluatedProperties: false 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ciexamples: 12462306a36Sopenharmony_ci - | 12562306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 12662306a36Sopenharmony_ci spi { 12762306a36Sopenharmony_ci #address-cells = <1>; 12862306a36Sopenharmony_ci #size-cells = <0>; 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci eeprom@0 { 13162306a36Sopenharmony_ci compatible = "st,m95256", "atmel,at25"; 13262306a36Sopenharmony_ci reg = <0>; 13362306a36Sopenharmony_ci spi-max-frequency = <5000000>; 13462306a36Sopenharmony_ci spi-cpha; 13562306a36Sopenharmony_ci spi-cpol; 13662306a36Sopenharmony_ci wp-gpios = <&gpio1 3 0>; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci pagesize = <64>; 13962306a36Sopenharmony_ci size = <32768>; 14062306a36Sopenharmony_ci address-width = <16>; 14162306a36Sopenharmony_ci }; 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci fram@1 { 14462306a36Sopenharmony_ci compatible = "cypress,fm25", "atmel,at25"; 14562306a36Sopenharmony_ci reg = <1>; 14662306a36Sopenharmony_ci spi-max-frequency = <40000000>; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci }; 149