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