5259e05ccbbade66a1e51336de02ef92f7c06d34
[15.05/openwrt.git] / target / linux / mvebu / patches-3.18 / 015-move_armada_370_xp_pinctrl_node_definition.patch
1 From 4904a82a9399d037588162e6fb4b293fa6a37f7c Mon Sep 17 00:00:00 2001
2 From: Arnaud Ebalard <arno@natisbad.org>
3 Date: Sat, 22 Nov 2014 00:45:56 +0100
4 Subject: arm: mvebu: move Armada 370/XP pinctrl node definition
5  armada-370-xp.dtsi
6
7 What was done by Sebastian in 264a05e19bf5 ("ARM: mvebu: armada-xp:
8 Add node alias to pinctrl and add base address") and 01c434225ee6
9 ("ARM: mvebu: armada-xp: Use pinctrl node alias") can also be done for
10 Armada 370, i.e.
11
12  - Rename Armada 370 pinctrl node to pin-ctrl with its address encoded
13  - Add a node alias to access the pinctrl node easily.
14  - use the newly available alias in existing Armada 370 .dts files
15
16 We can even go a bit further by putting the pinctrl node definition in
17 armada-370-xp.dtsi, with only its reg property defined. This allows us
18 to then also use the newly defined node alias in armada-xp.dtsi,
19 armada-370.dtsi.
20
21 Suggested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
22 Suggested-by: Andrew Lunn <andrew@lunn.ch>
23 Acked-by: Andrew Lunn <andrew@lunn.ch>
24 Signed-off-by: Arnaud Ebalard <arno@natisbad.org>
25 Link: https://lkml.kernel.org/r/b54eb45e5242728aace3ce8aef2eae4251f8dea3.1416613429.git.arno@natisbad.org
26 Signed-off-by: Jason Cooper <jason@lakedaemon.net>
27
28 --- a/arch/arm/boot/dts/armada-370-db.dts
29 +++ b/arch/arm/boot/dts/armada-370-db.dts
30 @@ -157,3 +157,27 @@
31               compatible = "linux,spdif-dir";
32         };
33  };
34 +
35 +&pinctrl {
36 +       /*
37 +        * These pins might be muxed as I2S by
38 +        * the bootloader, but it conflicts
39 +        * with the real I2S pins that are
40 +        * muxed using i2s_pins. We must mux
41 +        * those pins to a function other than
42 +        * I2S.
43 +        */
44 +       pinctrl-0 = <&hog_pins1 &hog_pins2>;
45 +       pinctrl-names = "default";
46 +
47 +       hog_pins1: hog-pins1 {
48 +               marvell,pins = "mpp6",  "mpp8", "mpp10",
49 +                              "mpp12", "mpp13";
50 +               marvell,function = "gpio";
51 +       };
52 +
53 +       hog_pins2: hog-pins2 {
54 +               marvell,pins = "mpp5", "mpp7", "mpp9";
55 +               marvell,function = "gpo";
56 +       };
57 +};
58 --- a/arch/arm/boot/dts/armada-370-mirabox.dts
59 +++ b/arch/arm/boot/dts/armada-370-mirabox.dts
60 @@ -54,18 +54,6 @@
61                                 status = "okay";
62                         };
63  
64 -                       pinctrl {
65 -                               pwr_led_pin: pwr-led-pin {
66 -                                       marvell,pins = "mpp63";
67 -                                       marvell,function = "gpo";
68 -                               };
69 -
70 -                               stat_led_pins: stat-led-pins {
71 -                                       marvell,pins = "mpp64", "mpp65";
72 -                                       marvell,function = "gpio";
73 -                               };
74 -                       };
75 -
76                         gpio_leds {
77                                 compatible = "gpio-leds";
78                                 pinctrl-names = "default";
79 @@ -169,3 +157,16 @@
80                 };
81         };
82  };
83 +
84 +&pinctrl {
85 +       pwr_led_pin: pwr-led-pin {
86 +               marvell,pins = "mpp63";
87 +               marvell,function = "gpo";
88 +       };
89 +
90 +       stat_led_pins: stat-led-pins {
91 +               marvell,pins = "mpp64", "mpp65";
92 +               marvell,function = "gpio";
93 +       };
94 +};
95 +
96 --- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts
97 +++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts
98 @@ -58,48 +58,6 @@
99                                 status = "okay";
100                         };
101  
102 -                       pinctrl {
103 -                               power_led_pin: power-led-pin {
104 -                                       marvell,pins = "mpp57";
105 -                                       marvell,function = "gpio";
106 -                               };
107 -
108 -                               sata1_led_pin: sata1-led-pin {
109 -                                       marvell,pins = "mpp15";
110 -                                       marvell,function = "gpio";
111 -                               };
112 -
113 -                               sata2_led_pin: sata2-led-pin {
114 -                                       marvell,pins = "mpp14";
115 -                                       marvell,function = "gpio";
116 -                               };
117 -
118 -                               backup_led_pin: backup-led-pin {
119 -                                       marvell,pins = "mpp56";
120 -                                       marvell,function = "gpio";
121 -                               };
122 -
123 -                               backup_button_pin: backup-button-pin {
124 -                                       marvell,pins = "mpp58";
125 -                                       marvell,function = "gpio";
126 -                               };
127 -
128 -                               power_button_pin: power-button-pin {
129 -                                       marvell,pins = "mpp62";
130 -                                       marvell,function = "gpio";
131 -                               };
132 -
133 -                               reset_button_pin: reset-button-pin {
134 -                                       marvell,pins = "mpp6";
135 -                                       marvell,function = "gpio";
136 -                               };
137 -
138 -                               poweroff: poweroff {
139 -                                       marvell,pins = "mpp8";
140 -                                       marvell,function = "gpio";
141 -                               };
142 -                       };
143 -
144                         mdio {
145                                 pinctrl-0 = <&mdio_pins>;
146                                 pinctrl-names = "default";
147 @@ -256,3 +214,45 @@
148                 gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
149         };
150  };
151 +
152 +&pinctrl {
153 +       power_led_pin: power-led-pin {
154 +               marvell,pins = "mpp57";
155 +               marvell,function = "gpio";
156 +       };
157 +
158 +       sata1_led_pin: sata1-led-pin {
159 +               marvell,pins = "mpp15";
160 +               marvell,function = "gpio";
161 +       };
162 +
163 +       sata2_led_pin: sata2-led-pin {
164 +               marvell,pins = "mpp14";
165 +               marvell,function = "gpio";
166 +       };
167 +
168 +       backup_led_pin: backup-led-pin {
169 +               marvell,pins = "mpp56";
170 +               marvell,function = "gpio";
171 +       };
172 +
173 +       backup_button_pin: backup-button-pin {
174 +               marvell,pins = "mpp58";
175 +               marvell,function = "gpio";
176 +       };
177 +
178 +       power_button_pin: power-button-pin {
179 +               marvell,pins = "mpp62";
180 +               marvell,function = "gpio";
181 +       };
182 +
183 +       reset_button_pin: reset-button-pin {
184 +               marvell,pins = "mpp6";
185 +               marvell,function = "gpio";
186 +       };
187 +
188 +       poweroff: poweroff {
189 +               marvell,pins = "mpp8";
190 +               marvell,function = "gpio";
191 +       };
192 +};
193 --- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts
194 +++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
195 @@ -53,38 +53,6 @@
196                                 status = "okay";
197                         };
198  
199 -                       pinctrl {
200 -                               poweroff: poweroff {
201 -                                       marvell,pins = "mpp60";
202 -                                       marvell,function = "gpio";
203 -                               };
204 -
205 -                               backup_button_pin: backup-button-pin {
206 -                                       marvell,pins = "mpp52";
207 -                                       marvell,function = "gpio";
208 -                               };
209 -
210 -                               power_button_pin: power-button-pin {
211 -                                       marvell,pins = "mpp62";
212 -                                       marvell,function = "gpio";
213 -                               };
214 -
215 -                               backup_led_pin: backup-led-pin {
216 -                                       marvell,pins = "mpp63";
217 -                                       marvell,function = "gpo";
218 -                               };
219 -
220 -                               power_led_pin: power-led-pin {
221 -                                       marvell,pins = "mpp64";
222 -                                       marvell,function = "gpio";
223 -                               };
224 -
225 -                               reset_button_pin: reset-button-pin {
226 -                                       marvell,pins = "mpp65";
227 -                                       marvell,function = "gpio";
228 -                               };
229 -                       };
230 -
231                         mdio {
232                                 pinctrl-0 = <&mdio_pins>;
233                                 pinctrl-names = "default";
234 @@ -269,3 +237,35 @@
235                 gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
236         };
237  };
238 +
239 +&pinctrl {
240 +       poweroff: poweroff {
241 +               marvell,pins = "mpp60";
242 +               marvell,function = "gpio";
243 +       };
244 +
245 +       backup_button_pin: backup-button-pin {
246 +               marvell,pins = "mpp52";
247 +               marvell,function = "gpio";
248 +       };
249 +
250 +       power_button_pin: power-button-pin {
251 +               marvell,pins = "mpp62";
252 +               marvell,function = "gpio";
253 +       };
254 +
255 +       backup_led_pin: backup-led-pin {
256 +               marvell,pins = "mpp63";
257 +               marvell,function = "gpo";
258 +       };
259 +
260 +       power_led_pin: power-led-pin {
261 +               marvell,pins = "mpp64";
262 +               marvell,function = "gpio";
263 +       };
264 +
265 +       reset_button_pin: reset-button-pin {
266 +               marvell,pins = "mpp65";
267 +               marvell,function = "gpio";
268 +       };
269 +};
270 --- a/arch/arm/boot/dts/armada-370-rd.dts
271 +++ b/arch/arm/boot/dts/armada-370-rd.dts
272 @@ -59,18 +59,6 @@
273                 };
274  
275                 internal-regs {
276 -                       pinctrl {
277 -                               fan_pins: fan-pins {
278 -                                       marvell,pins = "mpp8";
279 -                                       marvell,function = "gpio";
280 -                               };
281 -
282 -                               led_pins: led-pins {
283 -                                       marvell,pins = "mpp32";
284 -                                       marvell,function = "gpio";
285 -                               };
286 -                       };
287 -
288                         serial@12000 {
289                                 status = "okay";
290                         };
291 @@ -174,3 +162,15 @@
292                 };
293         };
294   };
295 +
296 +&pinctrl {
297 +       fan_pins: fan-pins {
298 +               marvell,pins = "mpp8";
299 +               marvell,function = "gpio";
300 +       };
301 +
302 +       led_pins: led-pins {
303 +               marvell,pins = "mpp32";
304 +               marvell,function = "gpio";
305 +       };
306 +};
307 --- a/arch/arm/boot/dts/armada-370-xp.dtsi
308 +++ b/arch/arm/boot/dts/armada-370-xp.dtsi
309 @@ -171,6 +171,10 @@
310                                 status = "disabled";
311                         };
312  
313 +                       pinctrl: pin-ctrl@18000 {
314 +                               reg = <0x18000 0x38>;
315 +                       };
316 +
317                         coredivclk: corediv-clock@18740 {
318                                 compatible = "marvell,armada-370-corediv-clock";
319                                 reg = <0x18740 0xc>;
320 --- a/arch/arm/boot/dts/armada-370.dtsi
321 +++ b/arch/arm/boot/dts/armada-370.dtsi
322 @@ -107,67 +107,6 @@
323                                 reg = <0x11100 0x20>;
324                         };
325  
326 -                       pinctrl {
327 -                               compatible = "marvell,mv88f6710-pinctrl";
328 -                               reg = <0x18000 0x38>;
329 -
330 -                               sdio_pins1: sdio-pins1 {
331 -                                       marvell,pins = "mpp9",  "mpp11", "mpp12",
332 -                                                       "mpp13", "mpp14", "mpp15";
333 -                                       marvell,function = "sd0";
334 -                               };
335 -
336 -                               sdio_pins2: sdio-pins2 {
337 -                                       marvell,pins = "mpp47", "mpp48", "mpp49",
338 -                                                       "mpp50", "mpp51", "mpp52";
339 -                                       marvell,function = "sd0";
340 -                               };
341 -
342 -                               sdio_pins3: sdio-pins3 {
343 -                                       marvell,pins = "mpp48", "mpp49", "mpp50",
344 -                                                       "mpp51", "mpp52", "mpp53";
345 -                                       marvell,function = "sd0";
346 -                               };
347 -
348 -                               i2c0_pins: i2c0-pins {
349 -                                       marvell,pins = "mpp2", "mpp3";
350 -                                       marvell,function = "i2c0";
351 -                               };
352 -
353 -                               i2s_pins1: i2s-pins1 {
354 -                                       marvell,pins = "mpp5", "mpp6", "mpp7",
355 -                                                      "mpp8", "mpp9", "mpp10",
356 -                                                      "mpp12", "mpp13";
357 -                                       marvell,function = "audio";
358 -                               };
359 -
360 -                               i2s_pins2: i2s-pins2 {
361 -                                       marvell,pins = "mpp49", "mpp47", "mpp50",
362 -                                                      "mpp59", "mpp57", "mpp61",
363 -                                                      "mpp62", "mpp60", "mpp58";
364 -                                       marvell,function = "audio";
365 -                               };
366 -
367 -                               mdio_pins: mdio-pins {
368 -                                       marvell,pins = "mpp17", "mpp18";
369 -                                       marvell,function = "ge";
370 -                               };
371 -
372 -                               ge0_rgmii_pins: ge0-rgmii-pins {
373 -                                       marvell,pins = "mpp5", "mpp6", "mpp7", "mpp8",
374 -                                                      "mpp9", "mpp10", "mpp11", "mpp12",
375 -                                                      "mpp13", "mpp14", "mpp15", "mpp16";
376 -                                       marvell,function = "ge0";
377 -                               };
378 -
379 -                               ge1_rgmii_pins: ge1-rgmii-pins {
380 -                                       marvell,pins = "mpp19", "mpp20", "mpp21", "mpp22",
381 -                                                      "mpp23", "mpp24", "mpp25", "mpp26",
382 -                                                      "mpp27", "mpp28", "mpp29", "mpp30";
383 -                                       marvell,function = "ge1";
384 -                               };
385 -                       };
386 -
387                         gpio0: gpio@18100 {
388                                 compatible = "marvell,orion-gpio";
389                                 reg = <0x18100 0x40>;
390 @@ -306,3 +245,63 @@
391                 };
392         };
393  };
394 +
395 +&pinctrl {
396 +       compatible = "marvell,mv88f6710-pinctrl";
397 +
398 +       sdio_pins1: sdio-pins1 {
399 +               marvell,pins = "mpp9",  "mpp11", "mpp12",
400 +                               "mpp13", "mpp14", "mpp15";
401 +               marvell,function = "sd0";
402 +       };
403 +
404 +       sdio_pins2: sdio-pins2 {
405 +               marvell,pins = "mpp47", "mpp48", "mpp49",
406 +                               "mpp50", "mpp51", "mpp52";
407 +               marvell,function = "sd0";
408 +       };
409 +
410 +       sdio_pins3: sdio-pins3 {
411 +               marvell,pins = "mpp48", "mpp49", "mpp50",
412 +                               "mpp51", "mpp52", "mpp53";
413 +               marvell,function = "sd0";
414 +       };
415 +
416 +       i2c0_pins: i2c0-pins {
417 +               marvell,pins = "mpp2", "mpp3";
418 +               marvell,function = "i2c0";
419 +       };
420 +
421 +       i2s_pins1: i2s-pins1 {
422 +               marvell,pins = "mpp5", "mpp6", "mpp7",
423 +                              "mpp8", "mpp9", "mpp10",
424 +                              "mpp12", "mpp13";
425 +               marvell,function = "audio";
426 +       };
427 +
428 +       i2s_pins2: i2s-pins2 {
429 +               marvell,pins = "mpp49", "mpp47", "mpp50",
430 +                              "mpp59", "mpp57", "mpp61",
431 +                              "mpp62", "mpp60", "mpp58";
432 +               marvell,function = "audio";
433 +       };
434 +
435 +       mdio_pins: mdio-pins {
436 +               marvell,pins = "mpp17", "mpp18";
437 +               marvell,function = "ge";
438 +       };
439 +
440 +       ge0_rgmii_pins: ge0-rgmii-pins {
441 +               marvell,pins = "mpp5", "mpp6", "mpp7", "mpp8",
442 +                              "mpp9", "mpp10", "mpp11", "mpp12",
443 +                              "mpp13", "mpp14", "mpp15", "mpp16";
444 +               marvell,function = "ge0";
445 +       };
446 +
447 +       ge1_rgmii_pins: ge1-rgmii-pins {
448 +               marvell,pins = "mpp19", "mpp20", "mpp21", "mpp22",
449 +                              "mpp23", "mpp24", "mpp25", "mpp26",
450 +                              "mpp27", "mpp28", "mpp29", "mpp30";
451 +               marvell,function = "ge1";
452 +       };
453 +};
454 --- a/arch/arm/boot/dts/armada-xp.dtsi
455 +++ b/arch/arm/boot/dts/armada-xp.dtsi
456 @@ -73,43 +73,6 @@
457                                 status = "disabled";
458                         };
459  
460 -                       pinctrl: pin-ctrl@18000 {
461 -                               reg = <0x18000 0x38>;
462 -
463 -                               pmx_ge0_gmii: pmx-ge0-gmii {
464 -                                       marvell,pins =
465 -                                            "mpp0",  "mpp1",  "mpp2",  "mpp3",
466 -                                            "mpp4",  "mpp5",  "mpp6",  "mpp7",
467 -                                            "mpp8",  "mpp9",  "mpp10", "mpp11",
468 -                                            "mpp12", "mpp13", "mpp14", "mpp15",
469 -                                            "mpp16", "mpp17", "mpp18", "mpp19",
470 -                                            "mpp20", "mpp21", "mpp22", "mpp23";
471 -                                       marvell,function = "ge0";
472 -                               };
473 -
474 -                               pmx_ge0_rgmii: pmx-ge0-rgmii {
475 -                                       marvell,pins =
476 -                                            "mpp0", "mpp1", "mpp2", "mpp3",
477 -                                            "mpp4", "mpp5", "mpp6", "mpp7",
478 -                                            "mpp8", "mpp9", "mpp10", "mpp11";
479 -                                       marvell,function = "ge0";
480 -                               };
481 -
482 -                               pmx_ge1_rgmii: pmx-ge1-rgmii {
483 -                                       marvell,pins =
484 -                                            "mpp12", "mpp13", "mpp14", "mpp15",
485 -                                            "mpp16", "mpp17", "mpp18", "mpp19",
486 -                                            "mpp20", "mpp21", "mpp22", "mpp23";
487 -                                       marvell,function = "ge1";
488 -                               };
489 -
490 -                               sdio_pins: sdio-pins {
491 -                                       marvell,pins = "mpp30", "mpp31", "mpp32",
492 -                                                      "mpp33", "mpp34", "mpp35";
493 -                                       marvell,function = "sd0";
494 -                               };
495 -                       };
496 -
497                         system-controller@18200 {
498                                 compatible = "marvell,armada-370-xp-system-controller";
499                                 reg = <0x18200 0x500>;
500 @@ -238,3 +201,38 @@
501                 };
502         };
503  };
504 +
505 +&pinctrl {
506 +       pmx_ge0_gmii: pmx-ge0-gmii {
507 +               marvell,pins =
508 +                    "mpp0",  "mpp1",  "mpp2",  "mpp3",
509 +                    "mpp4",  "mpp5",  "mpp6",  "mpp7",
510 +                    "mpp8",  "mpp9",  "mpp10", "mpp11",
511 +                    "mpp12", "mpp13", "mpp14", "mpp15",
512 +                    "mpp16", "mpp17", "mpp18", "mpp19",
513 +                    "mpp20", "mpp21", "mpp22", "mpp23";
514 +               marvell,function = "ge0";
515 +       };
516 +
517 +       pmx_ge0_rgmii: pmx-ge0-rgmii {
518 +               marvell,pins =
519 +                    "mpp0", "mpp1", "mpp2", "mpp3",
520 +                    "mpp4", "mpp5", "mpp6", "mpp7",
521 +                    "mpp8", "mpp9", "mpp10", "mpp11";
522 +               marvell,function = "ge0";
523 +       };
524 +
525 +       pmx_ge1_rgmii: pmx-ge1-rgmii {
526 +               marvell,pins =
527 +                    "mpp12", "mpp13", "mpp14", "mpp15",
528 +                    "mpp16", "mpp17", "mpp18", "mpp19",
529 +                    "mpp20", "mpp21", "mpp22", "mpp23";
530 +               marvell,function = "ge1";
531 +       };
532 +
533 +       sdio_pins: sdio-pins {
534 +               marvell,pins = "mpp30", "mpp31", "mpp32",
535 +                              "mpp33", "mpp34", "mpp35";
536 +               marvell,function = "sd0";
537 +       };
538 +};