Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / jedec-spi-nor-overlay.dts
1 // Overlay for JEDEC SPI-NOR Flash Devices (aka m25p80)
2
3 // dtparams:
4 //     flash-spi<n>-<m>        - Enables flash device on SPI<n>, CS#<m>.
5 //     flash-fastr-spi<n>-<m>  - Enables flash device with fast read capability on SPI<n>, CS#<m>.
6 //
7 // If devices are present on SPI1 or SPI2, those interfaces must be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
8 //
9 // Example: A single flash device with fast read capability on SPI0, CS#0:
10 // dtoverlay=jedec-spi-nor:flash-fastr-spi0-0
11
12 /dts-v1/;
13 /plugin/;
14
15 / {
16         compatible = "brcm,bcm2835";
17
18         // disable spi-dev on spi0.0
19         fragment@0 {
20                 target = <&spidev0>;
21                 __dormant__ {
22                         status = "disabled";
23                 };
24         };
25
26         // disable spi-dev on spi0.1
27         fragment@1 {
28                 target = <&spidev1>;
29                 __dormant__ {
30                         status = "disabled";
31                 };
32         };
33
34         // disable spi-dev on spi1.0
35         fragment@2 {
36                 target-path = "spi1/spidev@0";
37                 __dormant__ {
38                         status = "disabled";
39                 };
40         };
41
42         // disable spi-dev on spi1.1
43         fragment@3 {
44                 target-path = "spi1/spidev@1";
45                 __dormant__ {
46                         status = "disabled";
47                 };
48         };
49
50         // disable spi-dev on spi1.2
51         fragment@4 {
52                 target-path = "spi1/spidev@2";
53                 __dormant__ {
54                         status = "disabled";
55                 };
56         };
57
58         // disable spi-dev on spi2.0
59         fragment@5 {
60                 target-path = "spi2/spidev@0";
61                 __dormant__ {
62                         status = "disabled";
63                 };
64         };
65
66         // disable spi-dev on spi2.1
67         fragment@6 {
68                 target-path = "spi2/spidev@1";
69                 __dormant__ {
70                         status = "disabled";
71                 };
72         };
73
74         // disable spi-dev on spi2.2
75         fragment@7 {
76                 target-path = "spi2/spidev@2";
77                 __dormant__ {
78                         status = "disabled";
79                 };
80         };
81
82         // enable flash on spi0.0
83         fragment@8 {
84                 target = <&spi0>;
85                 __dormant__ {
86                         status = "okay";
87                         #address-cells = <1>;
88                         #size-cells = <0>;
89                         spi_nor_00: spi_nor@0 {
90                                 #address-cells = <1>;
91                                 #size-cells = <1>;
92                                 compatible = "jedec,spi-nor";
93                                 reg = <0>;
94                                 spi-max-frequency = <500000>;
95                         };
96                 };
97         };
98
99         // enable flash on spi0.1
100         fragment@9 {
101                 target = <&spi0>;
102                 __dormant__ {
103                         status = "okay";
104                         #address-cells = <1>;
105                         #size-cells = <0>;
106                         spi_nor_01: spi_nor@1 {
107                                 #address-cells = <1>;
108                                 #size-cells = <1>;
109                                 compatible = "jedec,spi-nor";
110                                 reg = <1>;
111                                 spi-max-frequency = <500000>;
112                         };
113                 };
114         };
115
116         // enable flash on spi1.0
117         fragment@10 {
118                 target = <&spi1>;
119                 __dormant__ {
120                         status = "okay";
121                         #address-cells = <1>;
122                         #size-cells = <0>;
123                         spi_nor_10: spi_nor@0 {
124                                 #address-cells = <1>;
125                                 #size-cells = <1>;
126                                 compatible = "jedec,spi-nor";
127                                 reg = <0>;
128                                 spi-max-frequency = <500000>;
129                         };
130                 };
131         };
132
133         // enable flash on spi1.1
134         fragment@11 {
135                 target = <&spi1>;
136                 __dormant__ {
137                         status = "okay";
138                         #address-cells = <1>;
139                         #size-cells = <0>;
140                         spi_nor_11: spi_nor@1 {
141                                 #address-cells = <1>;
142                                 #size-cells = <1>;
143                                 compatible = "jedec,spi-nor";
144                                 reg = <1>;
145                                 spi-max-frequency = <500000>;
146                         };
147                 };
148         };
149
150         // enable flash on spi1.2
151         fragment@12 {
152                 target = <&spi1>;
153                 __dormant__ {
154                         status = "okay";
155                         #address-cells = <1>;
156                         #size-cells = <0>;
157                         spi_nor_12: spi_nor@2 {
158                                 #address-cells = <1>;
159                                 #size-cells = <1>;
160                                 compatible = "jedec,spi-nor";
161                                 reg = <2>;
162                                 spi-max-frequency = <500000>;
163                         };
164                 };
165         };
166
167         // enable flash on spi2.0
168         fragment@13 {
169                 target = <&spi2>;
170                 __dormant__ {
171                         status = "okay";
172                         #address-cells = <1>;
173                         #size-cells = <0>;
174                         spi_nor_20: spi_nor@0 {
175                                 #address-cells = <1>;
176                                 #size-cells = <1>;
177                                 compatible = "jedec,spi-nor";
178                                 reg = <0>;
179                                 spi-max-frequency = <500000>;
180                         };
181                 };
182         };
183
184         // enable flash on spi2.1
185         fragment@14 {
186                 target = <&spi2>;
187                 __dormant__ {
188                         status = "okay";
189                         #address-cells = <1>;
190                         #size-cells = <0>;
191                         spi_nor_21: spi_nor@1 {
192                                 #address-cells = <1>;
193                                 #size-cells = <1>;
194                                 compatible = "jedec,spi-nor";
195                                 reg = <1>;
196                                 spi-max-frequency = <500000>;
197                         };
198                 };
199         };
200
201         // enable flash on spi2.2
202         fragment@15 {
203                 target = <&spi2>;
204                 __dormant__ {
205                         status = "okay";
206                         #address-cells = <1>;
207                         #size-cells = <0>;
208                         spi_nor_22: spi_nor@2 {
209                                 #address-cells = <1>;
210                                 #size-cells = <1>;
211                                 compatible = "jedec,spi-nor";
212                                 reg = <2>;
213                                 spi-max-frequency = <500000>;
214                         };
215                 };
216         };
217
218         // Enable fast read for device on spi0.0.
219         // Use default active low interrupt signalling.
220         fragment@16 {
221                 target = <&spi_nor_00>;
222                 __dormant__ {
223                         m25p,fast-read;
224                 };
225         };
226
227         // Enable fast read for device on spi0.1.
228         // Use default active low interrupt signalling.
229         fragment@17 {
230                 target = <&spi_nor_01>;
231                 __dormant__ {
232                         m25p,fast-read;
233                 };
234         };
235
236         // Enable fast read for device on spi1.0.
237         // Use default active low interrupt signalling.
238         fragment@18 {
239                 target = <&spi_nor_10>;
240                 __dormant__ {
241                         m25p,fast-read;
242                 };
243         };
244
245         // Enable fast read for device on spi1.1.
246         // Use default active low interrupt signalling.
247         fragment@19 {
248                 target = <&spi_nor_11>;
249                 __dormant__ {
250                         m25p,fast-read;
251                 };
252         };
253
254         // Enable fast read for device on spi1.2.
255         // Use default active low interrupt signalling.
256         fragment@20 {
257                 target = <&spi_nor_12>;
258                 __dormant__ {
259                         m25p,fast-read;
260                 };
261         };
262
263         // Enable fast read for device on spi2.0.
264         // Use default active low interrupt signalling.
265         fragment@21 {
266                 target = <&spi_nor_20>;
267                 __dormant__ {
268                         m25p,fast-read;
269                 };
270         };
271
272         // Enable fast read for device on spi2.1.
273         // Use default active low interrupt signalling.
274         fragment@22 {
275                 target = <&spi_nor_21>;
276                 __dormant__ {
277                         m25p,fast-read;
278                 };
279         };
280
281         // Enable fast read for device on spi2.2.
282         // Use default active low interrupt signalling.
283         fragment@23 {
284                 target = <&spi_nor_22>;
285                 __dormant__ {
286                         m25p,fast-read;
287                 };
288         };
289
290         __overrides__ {
291                 flash-spi0-0       = <0>,"+0+8";
292                 flash-spi0-1       = <0>,"+1+9";
293                 flash-spi1-0       = <0>,"+2+10";
294                 flash-spi1-1       = <0>,"+3+11";
295                 flash-spi1-2       = <0>,"+4+12";
296                 flash-spi2-0       = <0>,"+5+13";
297                 flash-spi2-1       = <0>,"+6+14";
298                 flash-spi2-2       = <0>,"+7+15";
299                 flash-fastr-spi0-0 = <0>,"+0+8+16";
300                 flash-fastr-spi0-1 = <0>,"+1+9+17";
301                 flash-fastr-spi1-0 = <0>,"+2+10+18";
302                 flash-fastr-spi1-1 = <0>,"+3+11+19";
303                 flash-fastr-spi1-2 = <0>,"+4+12+20";
304                 flash-fastr-spi2-0 = <0>,"+5+13+21";
305                 flash-fastr-spi2-1 = <0>,"+6+14+22";
306                 flash-fastr-spi2-2 = <0>,"+7+15+23";
307         };
308 };
309