The schema for the ST M24C64-D compatible string doesn't work. Validation fails as the 'd-wl' suffix is not added to the preceeding schema which defines the entries and vendors. The actual users are incorrect as well because the vendor is listed as Atmel whereas the part is made by ST. As this part doesn't appear to have multiple vendors, move it to its own entry. Fixes: 0997ff1fc143 ("dt-bindings: at24: add ST M24C64-D Additional Write lockable page") Fixes: c761068f484c ("dt-bindings: at24: add ST M24C32-D Additional Write lockable page") Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Marek Vasut <marex@denx.de> Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
212 lines
5.6 KiB
YAML
212 lines
5.6 KiB
YAML
# 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:
|
|
pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
|
|
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:
|
|
- const: belling,bl24c16a
|
|
- const: atmel,24c16
|
|
- items:
|
|
- enum:
|
|
- rohm,br24g01
|
|
- rohm,br24t01
|
|
- const: atmel,24c01
|
|
- items:
|
|
- enum:
|
|
- nxp,se97b
|
|
- renesas,r1ex24002
|
|
- const: atmel,24c02
|
|
- items:
|
|
- enum:
|
|
- onnn,cat24c04
|
|
- onnn,cat24c05
|
|
- rohm,br24g04
|
|
- const: atmel,24c04
|
|
- items:
|
|
- const: renesas,r1ex24016
|
|
- const: atmel,24c16
|
|
- items:
|
|
- const: giantec,gt24c32a
|
|
- const: atmel,24c32
|
|
- items:
|
|
- enum:
|
|
- renesas,r1ex24128
|
|
- samsung,s524ad0xd1
|
|
- const: atmel,24c128
|
|
- 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>;
|
|
};
|
|
};
|
|
...
|