| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- # SPDX-License-Identifier: GPL-2.0-only
- # Copyright 2019 BayLibre SAS
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/eeprom/at24.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: I2C EEPROMs compatible with Atmel's AT24
- maintainers:
- - Bartosz Golaszewski <bgolaszewski@baylibre.com>
- allOf:
- - $ref: /schemas/nvmem/nvmem.yaml
- - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml
- select:
- properties:
- compatible:
- contains:
- anyOf:
- - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
- - enum: ["microchip,24aa025e48", "microchip,24aa025e64"]
- required:
- - compatible
- properties:
- $nodename:
- pattern: "^eeprom@[0-9a-f]{1,2}$"
- # There are multiple known vendors who manufacture EEPROM chips compatible
- # with Atmel's AT24. The compatible string requires either a single item
- # if the memory comes from Atmel (in which case the vendor part must be
- # 'atmel') or two items with the same 'model' part where the vendor part of
- # the first one is the actual manufacturer and the second item is the
- # corresponding 'atmel,<model>' from Atmel.
- compatible:
- oneOf:
- - allOf:
- - minItems: 1
- items:
- - pattern: "^(atmel|catalyst|microchip|nxp|ramtron|renesas|rohm|st),(24(c|cs|lc|mac)[0-9]+|spd)$"
- - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
- - oneOf:
- - items:
- pattern: c00$
- - items:
- pattern: c01$
- - items:
- pattern: cs01$
- - items:
- pattern: c02$
- - items:
- pattern: cs02$
- - items:
- pattern: mac402$
- - items:
- pattern: mac602$
- - items:
- pattern: c04$
- - items:
- pattern: cs04$
- - items:
- pattern: c08$
- - items:
- pattern: cs08$
- - items:
- pattern: c16$
- - items:
- pattern: cs16$
- - items:
- pattern: c32$
- - items:
- pattern: cs32$
- - items:
- pattern: c64$
- - items:
- pattern: cs64$
- - items:
- pattern: c128$
- - items:
- pattern: cs128$
- - items:
- pattern: c256$
- - items:
- pattern: cs256$
- - items:
- pattern: c512$
- - items:
- pattern: cs512$
- - items:
- pattern: c1024$
- - items:
- pattern: cs1024$
- - items:
- pattern: c1025$
- - items:
- pattern: cs1025$
- - items:
- pattern: c2048$
- - items:
- pattern: cs2048$
- - items:
- pattern: spd$
- # These are special cases that don't conform to the above pattern.
- # Each requires a standard at24 model as fallback.
- - items:
- - enum:
- - rohm,br24g01
- - rohm,br24t01
- - const: atmel,24c01
- - items:
- - enum:
- - nxp,se97b
- - renesas,r1ex24002
- - const: atmel,24c02
- - items:
- - enum:
- - belling,bl24c04a
- - giantec,gt24c04a
- - onnn,cat24c04
- - onnn,cat24c05
- - rohm,br24g04
- - const: atmel,24c04
- - items:
- - enum:
- - belling,bl24c16a
- - belling,bl24c16f
- - renesas,r1ex24016
- - const: atmel,24c16
- - items:
- - const: giantec,gt24c32a
- - const: atmel,24c32
- - items:
- - enum:
- - belling,bl24s64
- - giantec,gt24p64a
- - onnn,n24s64b
- - puya,p24c64f
- - const: atmel,24c64
- - items:
- - enum:
- - giantec,gt24p128e
- - giantec,gt24p128f
- - puya,p24c128f
- - renesas,r1ex24128
- - samsung,s524ad0xd1
- - const: atmel,24c128
- - items:
- - enum:
- - giantec,gt24c256c
- - puya,p24c256c
- - const: atmel,24c256
- - items:
- - const: microchip,24aa025e48
- - items:
- - const: microchip,24aa025e64
- - items:
- - const: st,24256e-wl
- - pattern: '^atmel,24c(32|64)d-wl$' # Actual vendor is st
- label:
- description: Descriptive name of the EEPROM.
- reg:
- maxItems: 1
- pagesize:
- description:
- The length of the pagesize for writing. Please consult the
- manual of your device, that value varies a lot. A wrong value
- may result in data loss! If not specified, a safety value of
- '1' is used which will be very slow.
- $ref: /schemas/types.yaml#/definitions/uint32
- enum: [1, 8, 16, 32, 64, 128, 256]
- default: 1
- read-only:
- $ref: /schemas/types.yaml#/definitions/flag
- description:
- Disables writes to the eeprom.
- size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Total eeprom size in bytes.
- no-read-rollover:
- $ref: /schemas/types.yaml#/definitions/flag
- description:
- Indicates that the multi-address eeprom does not automatically roll
- over reads to the next slave address. Please consult the manual of
- your device.
- wp-gpios: true
- address-width:
- description:
- Number of address bits.
- $ref: /schemas/types.yaml#/definitions/uint32
- default: 8
- enum: [ 8, 16 ]
- num-addresses:
- description:
- Total number of i2c slave addresses this device takes.
- $ref: /schemas/types.yaml#/definitions/uint32
- default: 1
- minimum: 1
- maximum: 8
- vcc-supply:
- description:
- phandle of the regulator that provides the supply voltage.
- required:
- - compatible
- - reg
- unevaluatedProperties: false
- examples:
- - |
- i2c {
- #address-cells = <1>;
- #size-cells = <0>;
- eeprom@52 {
- compatible = "microchip,24c32", "atmel,24c32";
- reg = <0x52>;
- pagesize = <32>;
- wp-gpios = <&gpio1 3 0>;
- num-addresses = <8>;
- };
- };
- ...
|