1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/eeprom/at25.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SPI EEPROMs or FRAMs compatible with Atmel's AT25
maintainers:
- Christian Eggers <ceggers@arri.de>
properties:
$nodename:
anyOf:
- pattern: "^eeprom@[0-9a-f]{1,2}$"
- pattern: "^fram@[0-9a-f]{1,2}$"
# There are multiple known vendors who manufacture EEPROM chips compatible
# with Atmel's AT25. The compatible string requires two items where the
# 'vendor' and 'model' parts of the first are the actual chip and the second
# item is fixed to "atmel,at25". Some existing bindings only have the
# "atmel,at25" part and should be fixed by somebody who knows vendor and
# product.
compatible:
oneOf:
- items:
- enum:
- anvo,anv32e61w
- atmel,at25256B
- fujitsu,mb85rs1mt
- fujitsu,mb85rs256
- fujitsu,mb85rs64
- microchip,at25160bn
- microchip,25lc040
- st,m95m02
- st,m95256
- st,m95640
- cypress,fm25
- const: atmel,at25
# Please don't use this alternative for new bindings.
- items:
- const: atmel,at25
reg:
maxItems: 1
pagesize:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072]
description:
Size of the eeprom page. FRAMs don't have pages.
size:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Total eeprom size in bytes.
address-width:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [ 8, 9, 16, 24 ]
description:
Number of address bits.
For 9 bits, the MSB of the address is sent as bit 3 of the instruction
byte, before the address byte.
spi-cpha: true
spi-cpol: true
read-only:
description:
Disable writes to the eeprom.
type: boolean
wp-gpios:
maxItems: 1
description:
GPIO to which the write-protect pin of the chip is connected.
# Deprecated: at25,byte-len, at25,addr-mode, at25,page-size
at25,byte-len:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Total eeprom size in bytes. Deprecated, use "size" property instead.
deprecated: true
at25,addr-mode:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Addr-mode flags, as defined in include/linux/spi/eeprom.h.
Deprecated, use "address-width" property instead.
deprecated: true
at25,page-size:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Size of the eeprom page. Deprecated, use "pagesize" property instead.
deprecated: true
required:
- compatible
- reg
- spi-max-frequency
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
- $ref: /schemas/nvmem/nvmem.yaml
- if:
properties:
compatible:
not:
contains:
const: cypress,fm25
then:
required:
- pagesize
- size
- address-width
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
spi {
#address-cells = <1>;
#size-cells = <0>;
eeprom@0 {
compatible = "st,m95256", "atmel,at25";
reg = <0>;
spi-max-frequency = <5000000>;
spi-cpha;
spi-cpol;
wp-gpios = <&gpio1 3 0>;
pagesize = <64>;
size = <32768>;
address-width = <16>;
};
fram@1 {
compatible = "cypress,fm25", "atmel,at25";
reg = <1>;
spi-max-frequency = <40000000>;
};
};
|