mvebu: gpio based pwm support
[openwrt/svn-archive/archive.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 +};