18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# Copyright 2019 BayLibre SAS 38c2ecf20Sopenharmony_ci%YAML 1.2 48c2ecf20Sopenharmony_ci--- 58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/eeprom/at24.yaml#" 68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cititle: I2C EEPROMs compatible with Atmel's AT24 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Bartosz Golaszewski <bgolaszewski@baylibre.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciselect: 148c2ecf20Sopenharmony_ci properties: 158c2ecf20Sopenharmony_ci compatible: 168c2ecf20Sopenharmony_ci contains: 178c2ecf20Sopenharmony_ci pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$" 188c2ecf20Sopenharmony_ci required: 198c2ecf20Sopenharmony_ci - compatible 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciproperties: 228c2ecf20Sopenharmony_ci $nodename: 238c2ecf20Sopenharmony_ci pattern: "^eeprom@[0-9a-f]{1,2}$" 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci # There are multiple known vendors who manufacture EEPROM chips compatible 268c2ecf20Sopenharmony_ci # with Atmel's AT24. The compatible string requires either a single item 278c2ecf20Sopenharmony_ci # if the memory comes from Atmel (in which case the vendor part must be 288c2ecf20Sopenharmony_ci # 'atmel') or two items with the same 'model' part where the vendor part of 298c2ecf20Sopenharmony_ci # the first one is the actual manufacturer and the second item is the 308c2ecf20Sopenharmony_ci # corresponding 'atmel,<model>' from Atmel. 318c2ecf20Sopenharmony_ci compatible: 328c2ecf20Sopenharmony_ci oneOf: 338c2ecf20Sopenharmony_ci - allOf: 348c2ecf20Sopenharmony_ci - minItems: 1 358c2ecf20Sopenharmony_ci maxItems: 2 368c2ecf20Sopenharmony_ci items: 378c2ecf20Sopenharmony_ci - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|lc|mac)[0-9]+|spd)$" 388c2ecf20Sopenharmony_ci - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$" 398c2ecf20Sopenharmony_ci - oneOf: 408c2ecf20Sopenharmony_ci - items: 418c2ecf20Sopenharmony_ci pattern: c00$ 428c2ecf20Sopenharmony_ci - items: 438c2ecf20Sopenharmony_ci pattern: c01$ 448c2ecf20Sopenharmony_ci - items: 458c2ecf20Sopenharmony_ci pattern: cs01$ 468c2ecf20Sopenharmony_ci - items: 478c2ecf20Sopenharmony_ci pattern: c02$ 488c2ecf20Sopenharmony_ci - items: 498c2ecf20Sopenharmony_ci pattern: cs02$ 508c2ecf20Sopenharmony_ci - items: 518c2ecf20Sopenharmony_ci pattern: mac402$ 528c2ecf20Sopenharmony_ci - items: 538c2ecf20Sopenharmony_ci pattern: mac602$ 548c2ecf20Sopenharmony_ci - items: 558c2ecf20Sopenharmony_ci pattern: c04$ 568c2ecf20Sopenharmony_ci - items: 578c2ecf20Sopenharmony_ci pattern: cs04$ 588c2ecf20Sopenharmony_ci - items: 598c2ecf20Sopenharmony_ci pattern: c08$ 608c2ecf20Sopenharmony_ci - items: 618c2ecf20Sopenharmony_ci pattern: cs08$ 628c2ecf20Sopenharmony_ci - items: 638c2ecf20Sopenharmony_ci pattern: c16$ 648c2ecf20Sopenharmony_ci - items: 658c2ecf20Sopenharmony_ci pattern: cs16$ 668c2ecf20Sopenharmony_ci - items: 678c2ecf20Sopenharmony_ci pattern: c32$ 688c2ecf20Sopenharmony_ci - items: 698c2ecf20Sopenharmony_ci pattern: cs32$ 708c2ecf20Sopenharmony_ci - items: 718c2ecf20Sopenharmony_ci pattern: c64$ 728c2ecf20Sopenharmony_ci - items: 738c2ecf20Sopenharmony_ci pattern: cs64$ 748c2ecf20Sopenharmony_ci - items: 758c2ecf20Sopenharmony_ci pattern: c128$ 768c2ecf20Sopenharmony_ci - items: 778c2ecf20Sopenharmony_ci pattern: cs128$ 788c2ecf20Sopenharmony_ci - items: 798c2ecf20Sopenharmony_ci pattern: c256$ 808c2ecf20Sopenharmony_ci - items: 818c2ecf20Sopenharmony_ci pattern: cs256$ 828c2ecf20Sopenharmony_ci - items: 838c2ecf20Sopenharmony_ci pattern: c512$ 848c2ecf20Sopenharmony_ci - items: 858c2ecf20Sopenharmony_ci pattern: cs512$ 868c2ecf20Sopenharmony_ci - items: 878c2ecf20Sopenharmony_ci pattern: c1024$ 888c2ecf20Sopenharmony_ci - items: 898c2ecf20Sopenharmony_ci pattern: cs1024$ 908c2ecf20Sopenharmony_ci - items: 918c2ecf20Sopenharmony_ci pattern: c2048$ 928c2ecf20Sopenharmony_ci - items: 938c2ecf20Sopenharmony_ci pattern: cs2048$ 948c2ecf20Sopenharmony_ci - items: 958c2ecf20Sopenharmony_ci pattern: spd$ 968c2ecf20Sopenharmony_ci # These are special cases that don't conform to the above pattern. 978c2ecf20Sopenharmony_ci # Each requires a standard at24 model as fallback. 988c2ecf20Sopenharmony_ci - items: 998c2ecf20Sopenharmony_ci - const: rohm,br24t01 1008c2ecf20Sopenharmony_ci - const: atmel,24c01 1018c2ecf20Sopenharmony_ci - items: 1028c2ecf20Sopenharmony_ci - const: nxp,se97b 1038c2ecf20Sopenharmony_ci - const: atmel,24c02 1048c2ecf20Sopenharmony_ci - items: 1058c2ecf20Sopenharmony_ci - const: renesas,r1ex24002 1068c2ecf20Sopenharmony_ci - const: atmel,24c02 1078c2ecf20Sopenharmony_ci - items: 1088c2ecf20Sopenharmony_ci - const: renesas,r1ex24016 1098c2ecf20Sopenharmony_ci - const: atmel,24c16 1108c2ecf20Sopenharmony_ci - items: 1118c2ecf20Sopenharmony_ci - const: giantec,gt24c32a 1128c2ecf20Sopenharmony_ci - const: atmel,24c32 1138c2ecf20Sopenharmony_ci - items: 1148c2ecf20Sopenharmony_ci - const: renesas,r1ex24128 1158c2ecf20Sopenharmony_ci - const: atmel,24c128 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci label: 1188c2ecf20Sopenharmony_ci description: Descriptive name of the EEPROM. 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci reg: 1218c2ecf20Sopenharmony_ci maxItems: 1 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci pagesize: 1248c2ecf20Sopenharmony_ci description: 1258c2ecf20Sopenharmony_ci The length of the pagesize for writing. Please consult the 1268c2ecf20Sopenharmony_ci manual of your device, that value varies a lot. A wrong value 1278c2ecf20Sopenharmony_ci may result in data loss! If not specified, a safety value of 1288c2ecf20Sopenharmony_ci '1' is used which will be very slow. 1298c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1308c2ecf20Sopenharmony_ci enum: [1, 8, 16, 32, 64, 128, 256] 1318c2ecf20Sopenharmony_ci default: 1 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci read-only: 1348c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/flag 1358c2ecf20Sopenharmony_ci description: 1368c2ecf20Sopenharmony_ci Disables writes to the eeprom. 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci size: 1398c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1408c2ecf20Sopenharmony_ci description: 1418c2ecf20Sopenharmony_ci Total eeprom size in bytes. 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci no-read-rollover: 1448c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#definitions/flag 1458c2ecf20Sopenharmony_ci description: 1468c2ecf20Sopenharmony_ci Indicates that the multi-address eeprom does not automatically roll 1478c2ecf20Sopenharmony_ci over reads to the next slave address. Please consult the manual of 1488c2ecf20Sopenharmony_ci your device. 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci wp-gpios: true 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci address-width: 1538c2ecf20Sopenharmony_ci description: 1548c2ecf20Sopenharmony_ci Number of address bits. 1558c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1568c2ecf20Sopenharmony_ci default: 8 1578c2ecf20Sopenharmony_ci enum: [ 8, 16 ] 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci num-addresses: 1608c2ecf20Sopenharmony_ci description: 1618c2ecf20Sopenharmony_ci Total number of i2c slave addresses this device takes. 1628c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1638c2ecf20Sopenharmony_ci default: 1 1648c2ecf20Sopenharmony_ci minimum: 1 1658c2ecf20Sopenharmony_ci maximum: 8 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci vcc-supply: 1688c2ecf20Sopenharmony_ci description: 1698c2ecf20Sopenharmony_ci phandle of the regulator that provides the supply voltage. 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_cirequired: 1728c2ecf20Sopenharmony_ci - compatible 1738c2ecf20Sopenharmony_ci - reg 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ciadditionalProperties: false 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ciexamples: 1788c2ecf20Sopenharmony_ci - | 1798c2ecf20Sopenharmony_ci i2c { 1808c2ecf20Sopenharmony_ci #address-cells = <1>; 1818c2ecf20Sopenharmony_ci #size-cells = <0>; 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci eeprom@52 { 1848c2ecf20Sopenharmony_ci compatible = "microchip,24c32", "atmel,24c32"; 1858c2ecf20Sopenharmony_ci reg = <0x52>; 1868c2ecf20Sopenharmony_ci pagesize = <32>; 1878c2ecf20Sopenharmony_ci wp-gpios = <&gpio1 3 0>; 1888c2ecf20Sopenharmony_ci num-addresses = <8>; 1898c2ecf20Sopenharmony_ci }; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci... 192