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