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