1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only 2c66ec88fSEmmanuel Vadot# Copyright 2019 BayLibre SAS 3c66ec88fSEmmanuel Vadot%YAML 1.2 4c66ec88fSEmmanuel Vadot--- 5c66ec88fSEmmanuel Vadot$id: "http://devicetree.org/schemas/eeprom/at24.yaml#" 6c66ec88fSEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadottitle: I2C EEPROMs compatible with Atmel's AT24 9c66ec88fSEmmanuel Vadot 10c66ec88fSEmmanuel Vadotmaintainers: 11c66ec88fSEmmanuel Vadot - Bartosz Golaszewski <bgolaszewski@baylibre.com> 12c66ec88fSEmmanuel Vadot 13*8bab661aSEmmanuel VadotallOf: 14*8bab661aSEmmanuel Vadot - $ref: /schemas/nvmem/nvmem.yaml 15*8bab661aSEmmanuel Vadot 16c66ec88fSEmmanuel Vadotselect: 17c66ec88fSEmmanuel Vadot properties: 18c66ec88fSEmmanuel Vadot compatible: 19c66ec88fSEmmanuel Vadot contains: 20c66ec88fSEmmanuel Vadot pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$" 21c66ec88fSEmmanuel Vadot required: 22c66ec88fSEmmanuel Vadot - compatible 23c66ec88fSEmmanuel Vadot 24c66ec88fSEmmanuel Vadotproperties: 25c66ec88fSEmmanuel Vadot $nodename: 26c66ec88fSEmmanuel Vadot pattern: "^eeprom@[0-9a-f]{1,2}$" 27c66ec88fSEmmanuel Vadot 28c66ec88fSEmmanuel Vadot # There are multiple known vendors who manufacture EEPROM chips compatible 29c66ec88fSEmmanuel Vadot # with Atmel's AT24. The compatible string requires either a single item 30c66ec88fSEmmanuel Vadot # if the memory comes from Atmel (in which case the vendor part must be 31c66ec88fSEmmanuel Vadot # 'atmel') or two items with the same 'model' part where the vendor part of 32c66ec88fSEmmanuel Vadot # the first one is the actual manufacturer and the second item is the 33c66ec88fSEmmanuel Vadot # corresponding 'atmel,<model>' from Atmel. 34c66ec88fSEmmanuel Vadot compatible: 35c66ec88fSEmmanuel Vadot oneOf: 36c66ec88fSEmmanuel Vadot - allOf: 37c66ec88fSEmmanuel Vadot - minItems: 1 38c66ec88fSEmmanuel Vadot items: 39c66ec88fSEmmanuel Vadot - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|lc|mac)[0-9]+|spd)$" 40c66ec88fSEmmanuel Vadot - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$" 41c66ec88fSEmmanuel Vadot - oneOf: 42c66ec88fSEmmanuel Vadot - items: 43c66ec88fSEmmanuel Vadot pattern: c00$ 44c66ec88fSEmmanuel Vadot - items: 45c66ec88fSEmmanuel Vadot pattern: c01$ 46c66ec88fSEmmanuel Vadot - items: 47c66ec88fSEmmanuel Vadot pattern: cs01$ 48c66ec88fSEmmanuel Vadot - items: 49c66ec88fSEmmanuel Vadot pattern: c02$ 50c66ec88fSEmmanuel Vadot - items: 51c66ec88fSEmmanuel Vadot pattern: cs02$ 52c66ec88fSEmmanuel Vadot - items: 53c66ec88fSEmmanuel Vadot pattern: mac402$ 54c66ec88fSEmmanuel Vadot - items: 55c66ec88fSEmmanuel Vadot pattern: mac602$ 56c66ec88fSEmmanuel Vadot - items: 57c66ec88fSEmmanuel Vadot pattern: c04$ 58c66ec88fSEmmanuel Vadot - items: 59c66ec88fSEmmanuel Vadot pattern: cs04$ 60c66ec88fSEmmanuel Vadot - items: 61c66ec88fSEmmanuel Vadot pattern: c08$ 62c66ec88fSEmmanuel Vadot - items: 63c66ec88fSEmmanuel Vadot pattern: cs08$ 64c66ec88fSEmmanuel Vadot - items: 65c66ec88fSEmmanuel Vadot pattern: c16$ 66c66ec88fSEmmanuel Vadot - items: 67c66ec88fSEmmanuel Vadot pattern: cs16$ 68c66ec88fSEmmanuel Vadot - items: 69c66ec88fSEmmanuel Vadot pattern: c32$ 70c66ec88fSEmmanuel Vadot - items: 71c66ec88fSEmmanuel Vadot pattern: cs32$ 72c66ec88fSEmmanuel Vadot - items: 73c66ec88fSEmmanuel Vadot pattern: c64$ 74c66ec88fSEmmanuel Vadot - items: 75c66ec88fSEmmanuel Vadot pattern: cs64$ 76c66ec88fSEmmanuel Vadot - items: 77c66ec88fSEmmanuel Vadot pattern: c128$ 78c66ec88fSEmmanuel Vadot - items: 79c66ec88fSEmmanuel Vadot pattern: cs128$ 80c66ec88fSEmmanuel Vadot - items: 81c66ec88fSEmmanuel Vadot pattern: c256$ 82c66ec88fSEmmanuel Vadot - items: 83c66ec88fSEmmanuel Vadot pattern: cs256$ 84c66ec88fSEmmanuel Vadot - items: 85c66ec88fSEmmanuel Vadot pattern: c512$ 86c66ec88fSEmmanuel Vadot - items: 87c66ec88fSEmmanuel Vadot pattern: cs512$ 88c66ec88fSEmmanuel Vadot - items: 89c66ec88fSEmmanuel Vadot pattern: c1024$ 90c66ec88fSEmmanuel Vadot - items: 91c66ec88fSEmmanuel Vadot pattern: cs1024$ 92c66ec88fSEmmanuel Vadot - items: 93e67e8565SEmmanuel Vadot pattern: c1025$ 94e67e8565SEmmanuel Vadot - items: 95e67e8565SEmmanuel Vadot pattern: cs1025$ 96e67e8565SEmmanuel Vadot - items: 97c66ec88fSEmmanuel Vadot pattern: c2048$ 98c66ec88fSEmmanuel Vadot - items: 99c66ec88fSEmmanuel Vadot pattern: cs2048$ 100c66ec88fSEmmanuel Vadot - items: 101c66ec88fSEmmanuel Vadot pattern: spd$ 102c66ec88fSEmmanuel Vadot # These are special cases that don't conform to the above pattern. 103c66ec88fSEmmanuel Vadot # Each requires a standard at24 model as fallback. 104c66ec88fSEmmanuel Vadot - items: 105e67e8565SEmmanuel Vadot - enum: 106e67e8565SEmmanuel Vadot - rohm,br24g01 107e67e8565SEmmanuel Vadot - rohm,br24t01 108e67e8565SEmmanuel Vadot - const: atmel,24c01 109e67e8565SEmmanuel Vadot - items: 110e67e8565SEmmanuel Vadot - enum: 111e67e8565SEmmanuel Vadot - nxp,se97b 112e67e8565SEmmanuel Vadot - renesas,r1ex24002 113c66ec88fSEmmanuel Vadot - const: atmel,24c02 114c66ec88fSEmmanuel Vadot - items: 115e67e8565SEmmanuel Vadot - enum: 116e67e8565SEmmanuel Vadot - onnn,cat24c04 117e67e8565SEmmanuel Vadot - onnn,cat24c05 1188cc087a1SEmmanuel Vadot - const: atmel,24c04 1198cc087a1SEmmanuel Vadot - items: 120c66ec88fSEmmanuel Vadot - const: renesas,r1ex24016 121c66ec88fSEmmanuel Vadot - const: atmel,24c16 122c66ec88fSEmmanuel Vadot - items: 123c66ec88fSEmmanuel Vadot - const: giantec,gt24c32a 124c66ec88fSEmmanuel Vadot - const: atmel,24c32 125c66ec88fSEmmanuel Vadot - items: 126d5b0e70fSEmmanuel Vadot - enum: 127d5b0e70fSEmmanuel Vadot - renesas,r1ex24128 128d5b0e70fSEmmanuel Vadot - samsung,s524ad0xd1 129c66ec88fSEmmanuel Vadot - const: atmel,24c128 130c66ec88fSEmmanuel Vadot 1316be33864SEmmanuel Vadot label: 1326be33864SEmmanuel Vadot description: Descriptive name of the EEPROM. 1336be33864SEmmanuel Vadot 134c66ec88fSEmmanuel Vadot reg: 135c66ec88fSEmmanuel Vadot maxItems: 1 136c66ec88fSEmmanuel Vadot 137c66ec88fSEmmanuel Vadot pagesize: 138c66ec88fSEmmanuel Vadot description: 139c66ec88fSEmmanuel Vadot The length of the pagesize for writing. Please consult the 140c66ec88fSEmmanuel Vadot manual of your device, that value varies a lot. A wrong value 141c66ec88fSEmmanuel Vadot may result in data loss! If not specified, a safety value of 142c66ec88fSEmmanuel Vadot '1' is used which will be very slow. 143c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 144c66ec88fSEmmanuel Vadot enum: [1, 8, 16, 32, 64, 128, 256] 145c66ec88fSEmmanuel Vadot default: 1 146c66ec88fSEmmanuel Vadot 147c66ec88fSEmmanuel Vadot read-only: 1485def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 149c66ec88fSEmmanuel Vadot description: 150c66ec88fSEmmanuel Vadot Disables writes to the eeprom. 151c66ec88fSEmmanuel Vadot 152c66ec88fSEmmanuel Vadot size: 153c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 154c66ec88fSEmmanuel Vadot description: 155c66ec88fSEmmanuel Vadot Total eeprom size in bytes. 156c66ec88fSEmmanuel Vadot 157c66ec88fSEmmanuel Vadot no-read-rollover: 1585def4c47SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 159c66ec88fSEmmanuel Vadot description: 160c66ec88fSEmmanuel Vadot Indicates that the multi-address eeprom does not automatically roll 161c66ec88fSEmmanuel Vadot over reads to the next slave address. Please consult the manual of 162c66ec88fSEmmanuel Vadot your device. 163c66ec88fSEmmanuel Vadot 164c66ec88fSEmmanuel Vadot wp-gpios: true 165c66ec88fSEmmanuel Vadot 166c66ec88fSEmmanuel Vadot address-width: 167c66ec88fSEmmanuel Vadot description: 168c66ec88fSEmmanuel Vadot Number of address bits. 169c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 170c66ec88fSEmmanuel Vadot default: 8 171c66ec88fSEmmanuel Vadot enum: [ 8, 16 ] 172c66ec88fSEmmanuel Vadot 173c66ec88fSEmmanuel Vadot num-addresses: 174c66ec88fSEmmanuel Vadot description: 175c66ec88fSEmmanuel Vadot Total number of i2c slave addresses this device takes. 176c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 177c66ec88fSEmmanuel Vadot default: 1 178c66ec88fSEmmanuel Vadot minimum: 1 179c66ec88fSEmmanuel Vadot maximum: 8 180c66ec88fSEmmanuel Vadot 181c66ec88fSEmmanuel Vadot vcc-supply: 182c66ec88fSEmmanuel Vadot description: 183c66ec88fSEmmanuel Vadot phandle of the regulator that provides the supply voltage. 184c66ec88fSEmmanuel Vadot 185c66ec88fSEmmanuel Vadotrequired: 186c66ec88fSEmmanuel Vadot - compatible 187c66ec88fSEmmanuel Vadot - reg 188c66ec88fSEmmanuel Vadot 189*8bab661aSEmmanuel VadotunevaluatedProperties: false 190c66ec88fSEmmanuel Vadot 191c66ec88fSEmmanuel Vadotexamples: 192c66ec88fSEmmanuel Vadot - | 193c66ec88fSEmmanuel Vadot i2c { 194c66ec88fSEmmanuel Vadot #address-cells = <1>; 195c66ec88fSEmmanuel Vadot #size-cells = <0>; 196c66ec88fSEmmanuel Vadot 197c66ec88fSEmmanuel Vadot eeprom@52 { 198c66ec88fSEmmanuel Vadot compatible = "microchip,24c32", "atmel,24c32"; 199c66ec88fSEmmanuel Vadot reg = <0x52>; 200c66ec88fSEmmanuel Vadot pagesize = <32>; 201c66ec88fSEmmanuel Vadot wp-gpios = <&gpio1 3 0>; 202c66ec88fSEmmanuel Vadot num-addresses = <8>; 203c66ec88fSEmmanuel Vadot }; 204c66ec88fSEmmanuel Vadot }; 205c66ec88fSEmmanuel Vadot... 206