Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/eeprom/at24.yaml
26350 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
- puya,p24c256c
147
- const: atmel,24c256
148
- items:
149
- const: microchip,24aa025e48
150
- items:
151
- const: microchip,24aa025e64
152
- items:
153
- const: st,24256e-wl
154
- pattern: '^atmel,24c(32|64)d-wl$' # Actual vendor is st
155
156
label:
157
description: Descriptive name of the EEPROM.
158
159
reg:
160
maxItems: 1
161
162
pagesize:
163
description:
164
The length of the pagesize for writing. Please consult the
165
manual of your device, that value varies a lot. A wrong value
166
may result in data loss! If not specified, a safety value of
167
'1' is used which will be very slow.
168
$ref: /schemas/types.yaml#/definitions/uint32
169
enum: [1, 8, 16, 32, 64, 128, 256]
170
default: 1
171
172
read-only:
173
$ref: /schemas/types.yaml#/definitions/flag
174
description:
175
Disables writes to the eeprom.
176
177
size:
178
$ref: /schemas/types.yaml#/definitions/uint32
179
description:
180
Total eeprom size in bytes.
181
182
no-read-rollover:
183
$ref: /schemas/types.yaml#/definitions/flag
184
description:
185
Indicates that the multi-address eeprom does not automatically roll
186
over reads to the next slave address. Please consult the manual of
187
your device.
188
189
wp-gpios: true
190
191
address-width:
192
description:
193
Number of address bits.
194
$ref: /schemas/types.yaml#/definitions/uint32
195
default: 8
196
enum: [ 8, 16 ]
197
198
num-addresses:
199
description:
200
Total number of i2c slave addresses this device takes.
201
$ref: /schemas/types.yaml#/definitions/uint32
202
default: 1
203
minimum: 1
204
maximum: 8
205
206
vcc-supply:
207
description:
208
phandle of the regulator that provides the supply voltage.
209
210
required:
211
- compatible
212
- reg
213
214
unevaluatedProperties: false
215
216
examples:
217
- |
218
i2c {
219
#address-cells = <1>;
220
#size-cells = <0>;
221
222
eeprom@52 {
223
compatible = "microchip,24c32", "atmel,24c32";
224
reg = <0x52>;
225
pagesize = <32>;
226
wp-gpios = <&gpio1 3 0>;
227
num-addresses = <8>;
228
};
229
};
230
...
231
232