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