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