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