brcm2708: add kernel 4.14 support
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.14 / 950-0264-Add-overlay-for-JEDEC-SPI-NOR-flash.patch
1 From 0222de711db11507773604084e20ad6d6960d30b Mon Sep 17 00:00:00 2001
2 From: wavelet2 <a3d35232@btinternet.com>
3 Date: Mon, 26 Mar 2018 21:05:10 +0100
4 Subject: [PATCH 264/454] Add overlay for JEDEC SPI NOR flash
5
6 ---
7 arch/arm/boot/dts/overlays/Makefile | 1 +
8 arch/arm/boot/dts/overlays/README | 9 +
9 .../dts/overlays/jedec-spi-nor-overlay.dts | 309 ++++++++++++++++++
10 3 files changed, 319 insertions(+)
11 create mode 100644 arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
12
13 --- a/arch/arm/boot/dts/overlays/Makefile
14 +++ b/arch/arm/boot/dts/overlays/Makefile
15 @@ -55,6 +55,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
16 iqaudio-dac.dtbo \
17 iqaudio-dacplus.dtbo \
18 iqaudio-digi-wm8804-audio.dtbo \
19 + jedec-spi-nor.dtbo \
20 justboom-dac.dtbo \
21 justboom-digi.dtbo \
22 lirc-rpi.dtbo \
23 --- a/arch/arm/boot/dts/overlays/README
24 +++ b/arch/arm/boot/dts/overlays/README
25 @@ -939,6 +939,15 @@ Params: card_name Override
26 dai stream name.
27
28
29 +Name: jedec-spi-nor
30 +Info: Adds support for JEDEC-compliant SPI NOR flash devices. (Note: The
31 + "jedec,spi-nor" kernel driver was formerly known as "m25p80".)
32 +Load: dtoverlay=jedec-spi-nor,<param>=<val>
33 +Params: flash-spi<n>-<m> Enables flash device on SPI<n>, CS#<m>.
34 + flash-fastr-spi<n>-<m> Enables flash device with fast read capability
35 + on SPI<n>, CS#<m>.
36 +
37 +
38 Name: justboom-dac
39 Info: Configures the JustBoom DAC HAT, Amp HAT, DAC Zero and Amp Zero audio
40 cards
41 --- /dev/null
42 +++ b/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
43 @@ -0,0 +1,309 @@
44 +// Overlay for JEDEC SPI-NOR Flash Devices (aka m25p80)
45 +
46 +// dtparams:
47 +// flash-spi<n>-<m> - Enables flash device on SPI<n>, CS#<m>.
48 +// flash-fastr-spi<n>-<m> - Enables flash device with fast read capability on SPI<n>, CS#<m>.
49 +//
50 +// 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.
51 +//
52 +// Example: A single flash device with fast read capability on SPI0, CS#0:
53 +// dtoverlay=jedec-spi-nor:flash-fastr-spi0-0
54 +
55 +/dts-v1/;
56 +/plugin/;
57 +
58 +/ {
59 + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
60 +
61 + // disable spi-dev on spi0.0
62 + fragment@0 {
63 + target = <&spidev0>;
64 + __dormant__ {
65 + status = "disabled";
66 + };
67 + };
68 +
69 + // disable spi-dev on spi0.1
70 + fragment@1 {
71 + target = <&spidev1>;
72 + __dormant__ {
73 + status = "disabled";
74 + };
75 + };
76 +
77 + // disable spi-dev on spi1.0
78 + fragment@2 {
79 + target-path = "spi1/spidev@0";
80 + __dormant__ {
81 + status = "disabled";
82 + };
83 + };
84 +
85 + // disable spi-dev on spi1.1
86 + fragment@3 {
87 + target-path = "spi1/spidev@1";
88 + __dormant__ {
89 + status = "disabled";
90 + };
91 + };
92 +
93 + // disable spi-dev on spi1.2
94 + fragment@4 {
95 + target-path = "spi1/spidev@2";
96 + __dormant__ {
97 + status = "disabled";
98 + };
99 + };
100 +
101 + // disable spi-dev on spi2.0
102 + fragment@5 {
103 + target-path = "spi2/spidev@0";
104 + __dormant__ {
105 + status = "disabled";
106 + };
107 + };
108 +
109 + // disable spi-dev on spi2.1
110 + fragment@6 {
111 + target-path = "spi2/spidev@1";
112 + __dormant__ {
113 + status = "disabled";
114 + };
115 + };
116 +
117 + // disable spi-dev on spi2.2
118 + fragment@7 {
119 + target-path = "spi2/spidev@2";
120 + __dormant__ {
121 + status = "disabled";
122 + };
123 + };
124 +
125 + // enable flash on spi0.0
126 + fragment@8 {
127 + target = <&spi0>;
128 + __dormant__ {
129 + status = "okay";
130 + #address-cells = <1>;
131 + #size-cells = <0>;
132 + spi_nor_00: spi_nor@0 {
133 + #address-cells = <1>;
134 + #size-cells = <1>;
135 + compatible = "jedec,spi-nor";
136 + reg = <0>;
137 + spi-max-frequency = <500000>;
138 + };
139 + };
140 + };
141 +
142 + // enable flash on spi0.1
143 + fragment@9 {
144 + target = <&spi0>;
145 + __dormant__ {
146 + status = "okay";
147 + #address-cells = <1>;
148 + #size-cells = <0>;
149 + spi_nor_01: spi_nor@1 {
150 + #address-cells = <1>;
151 + #size-cells = <1>;
152 + compatible = "jedec,spi-nor";
153 + reg = <1>;
154 + spi-max-frequency = <500000>;
155 + };
156 + };
157 + };
158 +
159 + // enable flash on spi1.0
160 + fragment@10 {
161 + target = <&spi1>;
162 + __dormant__ {
163 + status = "okay";
164 + #address-cells = <1>;
165 + #size-cells = <0>;
166 + spi_nor_10: spi_nor@0 {
167 + #address-cells = <1>;
168 + #size-cells = <1>;
169 + compatible = "jedec,spi-nor";
170 + reg = <0>;
171 + spi-max-frequency = <500000>;
172 + };
173 + };
174 + };
175 +
176 + // enable flash on spi1.1
177 + fragment@11 {
178 + target = <&spi1>;
179 + __dormant__ {
180 + status = "okay";
181 + #address-cells = <1>;
182 + #size-cells = <0>;
183 + spi_nor_11: spi_nor@1 {
184 + #address-cells = <1>;
185 + #size-cells = <1>;
186 + compatible = "jedec,spi-nor";
187 + reg = <1>;
188 + spi-max-frequency = <500000>;
189 + };
190 + };
191 + };
192 +
193 + // enable flash on spi1.2
194 + fragment@12 {
195 + target = <&spi1>;
196 + __dormant__ {
197 + status = "okay";
198 + #address-cells = <1>;
199 + #size-cells = <0>;
200 + spi_nor_12: spi_nor@2 {
201 + #address-cells = <1>;
202 + #size-cells = <1>;
203 + compatible = "jedec,spi-nor";
204 + reg = <2>;
205 + spi-max-frequency = <500000>;
206 + };
207 + };
208 + };
209 +
210 + // enable flash on spi2.0
211 + fragment@13 {
212 + target = <&spi2>;
213 + __dormant__ {
214 + status = "okay";
215 + #address-cells = <1>;
216 + #size-cells = <0>;
217 + spi_nor_20: spi_nor@0 {
218 + #address-cells = <1>;
219 + #size-cells = <1>;
220 + compatible = "jedec,spi-nor";
221 + reg = <0>;
222 + spi-max-frequency = <500000>;
223 + };
224 + };
225 + };
226 +
227 + // enable flash on spi2.1
228 + fragment@14 {
229 + target = <&spi2>;
230 + __dormant__ {
231 + status = "okay";
232 + #address-cells = <1>;
233 + #size-cells = <0>;
234 + spi_nor_21: spi_nor@1 {
235 + #address-cells = <1>;
236 + #size-cells = <1>;
237 + compatible = "jedec,spi-nor";
238 + reg = <1>;
239 + spi-max-frequency = <500000>;
240 + };
241 + };
242 + };
243 +
244 + // enable flash on spi2.2
245 + fragment@15 {
246 + target = <&spi2>;
247 + __dormant__ {
248 + status = "okay";
249 + #address-cells = <1>;
250 + #size-cells = <0>;
251 + spi_nor_22: spi_nor@2 {
252 + #address-cells = <1>;
253 + #size-cells = <1>;
254 + compatible = "jedec,spi-nor";
255 + reg = <2>;
256 + spi-max-frequency = <500000>;
257 + };
258 + };
259 + };
260 +
261 + // Enable fast read for device on spi0.0.
262 + // Use default active low interrupt signalling.
263 + fragment@16 {
264 + target = <&spi_nor_00>;
265 + __dormant__ {
266 + m25p,fast-read;
267 + };
268 + };
269 +
270 + // Enable fast read for device on spi0.1.
271 + // Use default active low interrupt signalling.
272 + fragment@17 {
273 + target = <&spi_nor_01>;
274 + __dormant__ {
275 + m25p,fast-read;
276 + };
277 + };
278 +
279 + // Enable fast read for device on spi1.0.
280 + // Use default active low interrupt signalling.
281 + fragment@18 {
282 + target = <&spi_nor_10>;
283 + __dormant__ {
284 + m25p,fast-read;
285 + };
286 + };
287 +
288 + // Enable fast read for device on spi1.1.
289 + // Use default active low interrupt signalling.
290 + fragment@19 {
291 + target = <&spi_nor_11>;
292 + __dormant__ {
293 + m25p,fast-read;
294 + };
295 + };
296 +
297 + // Enable fast read for device on spi1.2.
298 + // Use default active low interrupt signalling.
299 + fragment@20 {
300 + target = <&spi_nor_12>;
301 + __dormant__ {
302 + m25p,fast-read;
303 + };
304 + };
305 +
306 + // Enable fast read for device on spi2.0.
307 + // Use default active low interrupt signalling.
308 + fragment@21 {
309 + target = <&spi_nor_20>;
310 + __dormant__ {
311 + m25p,fast-read;
312 + };
313 + };
314 +
315 + // Enable fast read for device on spi2.1.
316 + // Use default active low interrupt signalling.
317 + fragment@22 {
318 + target = <&spi_nor_21>;
319 + __dormant__ {
320 + m25p,fast-read;
321 + };
322 + };
323 +
324 + // Enable fast read for device on spi2.2.
325 + // Use default active low interrupt signalling.
326 + fragment@23 {
327 + target = <&spi_nor_22>;
328 + __dormant__ {
329 + m25p,fast-read;
330 + };
331 + };
332 +
333 + __overrides__ {
334 + flash-spi0-0 = <0>,"+0+8";
335 + flash-spi0-1 = <0>,"+1+9";
336 + flash-spi1-0 = <0>,"+2+10";
337 + flash-spi1-1 = <0>,"+3+11";
338 + flash-spi1-2 = <0>,"+4+12";
339 + flash-spi2-0 = <0>,"+5+13";
340 + flash-spi2-1 = <0>,"+6+14";
341 + flash-spi2-2 = <0>,"+7+15";
342 + flash-fastr-spi0-0 = <0>,"+0+8+16";
343 + flash-fastr-spi0-1 = <0>,"+1+9+17";
344 + flash-fastr-spi1-0 = <0>,"+2+10+18";
345 + flash-fastr-spi1-1 = <0>,"+3+11+19";
346 + flash-fastr-spi1-2 = <0>,"+4+12+20";
347 + flash-fastr-spi2-0 = <0>,"+5+13+21";
348 + flash-fastr-spi2-1 = <0>,"+6+14+22";
349 + flash-fastr-spi2-2 = <0>,"+7+15+23";
350 + };
351 +};
352 +