| # 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: | |
| - giantec,gt24c04a | |
| - onnn,cat24c04 | |
| - onnn,cat24c05 | |
| - rohm,br24g04 | |
| - const: atmel,24c04 | |
| - items: | |
| - enum: | |
| - belling,bl24c16a | |
| - renesas,r1ex24016 | |
| - const: atmel,24c16 | |
| - items: | |
| - const: giantec,gt24c32a | |
| - const: atmel,24c32 | |
| - items: | |
| - enum: | |
| - onnn,n24s64b | |
| - puya,p24c64f | |
| - const: atmel,24c64 | |
| - items: | |
| - enum: | |
| - giantec,gt24p128e | |
| - giantec,gt24p128f | |
| - 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>; | |
| }; | |
| }; | |
| ... |