aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-11-13 09:59:40 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-11-26 15:01:55 -0500
commita12f703c5a27e2061fd0ea77200e5e2f8cfee54b (patch)
tree7fe922b21ee34e0c1a1ea6971adc91d1f92df695
parenta45cb698a7db6c623214a5345a32a4ce724ca560 (diff)
ARM: ux500: move MUSB pin config to device tree
This moves the MUSB pin control table out of the board file and into the device tree. Tie the config to the on-chip MUSB device rather than the ab8500-usb device which is off-chip. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/boot/dts/ste-href-family-pinctrl.dtsi55
-rw-r--r--arch/arm/boot/dts/ste-href.dtsi6
-rw-r--r--arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi13
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts5
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c25
5 files changed, 79 insertions, 25 deletions
diff --git a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
index 7408d3a898a5..6868fec95d64 100644
--- a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
@@ -488,6 +488,61 @@
488 }; 488 };
489 }; 489 };
490 }; 490 };
491
492
493 musb {
494 musb_default_mode: musb_default {
495 default_mux {
496 ste,function = "usb";
497 ste,pins = "usb_a_1";
498 };
499 default_cfg1 {
500 ste,pins =
501 "GPIO256_AF28", /* NXT */
502 "GPIO258_AD29", /* XCLK */
503 "GPIO259_AC29", /* DIR */
504 "GPIO260_AD28", /* DAT7 */
505 "GPIO261_AD26", /* DAT6 */
506 "GPIO262_AE26", /* DAT5 */
507 "GPIO263_AG29", /* DAT4 */
508 "GPIO264_AE27", /* DAT3 */
509 "GPIO265_AD27", /* DAT2 */
510 "GPIO266_AC28", /* DAT1 */
511 "GPIO267_AC27"; /* DAT0 */
512 ste,config = <&in_nopull>;
513 };
514 default_cfg2 {
515 ste,pins = "GPIO257_AE29"; /* STP */
516 ste,config = <&out_hi>;
517 };
518 };
519
520 musb_sleep_mode: musb_sleep {
521 sleep_cfg1 {
522 ste,pins =
523 "GPIO256_AF28", /* NXT */
524 "GPIO258_AD29", /* XCLK */
525 "GPIO259_AC29"; /* DIR */
526 ste,config = <&slpm_wkup_pdis_en>;
527 };
528 sleep_cfg2 {
529 ste,pins = "GPIO257_AE29"; /* STP */
530 ste,config = <&slpm_out_hi_wkup_pdis>;
531 };
532 sleep_cfg3 {
533 ste,pins =
534 "GPIO260_AD28", /* DAT7 */
535 "GPIO261_AD26", /* DAT6 */
536 "GPIO262_AE26", /* DAT5 */
537 "GPIO263_AG29", /* DAT4 */
538 "GPIO264_AE27", /* DAT3 */
539 "GPIO265_AD27", /* DAT2 */
540 "GPIO266_AC28", /* DAT1 */
541 "GPIO267_AC27"; /* DAT0 */
542 ste,config = <&slpm_in_wkup_pdis_en>;
543 };
544 };
545 };
491 }; 546 };
492 }; 547 };
493}; 548};
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi
index 85260846deae..4fda2d933488 100644
--- a/arch/arm/boot/dts/ste-href.dtsi
+++ b/arch/arm/boot/dts/ste-href.dtsi
@@ -30,6 +30,12 @@
30 }; 30 };
31 31
32 soc { 32 soc {
33 usb_per5@a03e0000 {
34 pinctrl-names = "default", "sleep";
35 pinctrl-0 = <&musb_default_mode>;
36 pinctrl-1 = <&musb_sleep_mode>;
37 };
38
33 uart@80120000 { 39 uart@80120000 {
34 pinctrl-names = "default", "sleep"; 40 pinctrl-names = "default", "sleep";
35 pinctrl-0 = <&uart0_default_mode>; 41 pinctrl-0 = <&uart0_default_mode>;
diff --git a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
index 9aea983e78b5..9f3e87573f86 100644
--- a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
@@ -41,6 +41,12 @@
41 ste,output = <OUTPUT_LOW>; 41 ste,output = <OUTPUT_LOW>;
42 }; 42 };
43 43
44 slpm_wkup_pdis_en: slpm_wkup_pdis_en {
45 ste,sleep = <SLPM_ENABLED>;
46 ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
47 ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>;
48 };
49
44 slpm_in_pu: slpm_in_pu { 50 slpm_in_pu: slpm_in_pu {
45 ste,sleep = <SLPM_ENABLED>; 51 ste,sleep = <SLPM_ENABLED>;
46 ste,sleep-input = <SLPM_INPUT_PULLUP>; 52 ste,sleep-input = <SLPM_INPUT_PULLUP>;
@@ -54,6 +60,13 @@
54 ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; 60 ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
55 }; 61 };
56 62
63 slpm_in_wkup_pdis_en: slpm_in_wkup_pdis_en {
64 ste,sleep = <SLPM_ENABLED>;
65 ste,sleep-input = <SLPM_DIR_INPUT>;
66 ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
67 ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>;
68 };
69
57 slpm_out_lo: slpm_out_lo { 70 slpm_out_lo: slpm_out_lo {
58 ste,sleep = <SLPM_ENABLED>; 71 ste,sleep = <SLPM_ENABLED>;
59 ste,sleep-output = <SLPM_OUTPUT_LOW>; 72 ste,sleep-output = <SLPM_OUTPUT_LOW>;
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index 65180b2bc409..4763b805e754 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -85,6 +85,11 @@
85 }; 85 };
86 86
87 soc { 87 soc {
88 usb_per5@a03e0000 {
89 pinctrl-names = "default", "sleep";
90 pinctrl-0 = <&musb_default_mode>;
91 pinctrl-1 = <&musb_sleep_mode>;
92 };
88 93
89 sound { 94 sound {
90 compatible = "stericsson,snd-soc-mop500"; 95 compatible = "stericsson,snd-soc-mop500";
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index c032392294a0..a6d431bd0659 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -30,7 +30,6 @@ BIAS(pd, PIN_PULL_DOWN);
30BIAS(in_nopull, PIN_INPUT_NOPULL); 30BIAS(in_nopull, PIN_INPUT_NOPULL);
31BIAS(in_pu, PIN_INPUT_PULLUP); 31BIAS(in_pu, PIN_INPUT_PULLUP);
32BIAS(in_pd, PIN_INPUT_PULLDOWN); 32BIAS(in_pd, PIN_INPUT_PULLDOWN);
33BIAS(out_hi, PIN_OUTPUT_HIGH);
34BIAS(out_lo, PIN_OUTPUT_LOW); 33BIAS(out_lo, PIN_OUTPUT_LOW);
35 34
36BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); 35BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0));
@@ -47,18 +46,12 @@ BIAS(gpio_out_lo, PIN_OUTPUT_LOW|PIN_GPIOMODE_ENABLED);
47/* Sleep modes */ 46/* Sleep modes */
48BIAS(slpm_in_wkup_pdis, PIN_SLEEPMODE_ENABLED| 47BIAS(slpm_in_wkup_pdis, PIN_SLEEPMODE_ENABLED|
49 PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 48 PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
50BIAS(slpm_in_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|
51 PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED);
52BIAS(slpm_wkup_pdis, PIN_SLEEPMODE_ENABLED| 49BIAS(slpm_wkup_pdis, PIN_SLEEPMODE_ENABLED|
53 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 50 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
54BIAS(slpm_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|
55 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED);
56BIAS(slpm_out_lo_pdis, PIN_SLEEPMODE_ENABLED| 51BIAS(slpm_out_lo_pdis, PIN_SLEEPMODE_ENABLED|
57 PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE|PIN_SLPM_PDIS_DISABLED); 52 PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE|PIN_SLPM_PDIS_DISABLED);
58BIAS(slpm_out_lo_wkup_pdis, PIN_SLEEPMODE_ENABLED| 53BIAS(slpm_out_lo_wkup_pdis, PIN_SLEEPMODE_ENABLED|
59 PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); 54 PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
60BIAS(slpm_out_hi_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_HIGH|
61 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED);
62BIAS(slpm_in_pu_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|PIN_SLPM_INPUT_PULLUP| 55BIAS(slpm_in_pu_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|PIN_SLPM_INPUT_PULLUP|
63 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED); 56 PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED);
64 57
@@ -349,24 +342,6 @@ static struct pinctrl_map __initdata mop500_family_pinmap[] = {
349 /* LCD VSI1 sleep state */ 342 /* LCD VSI1 sleep state */
350 DB8500_PIN_SLEEP("GPIO69_E2", slpm_in_wkup_pdis, "0-0070"), 343 DB8500_PIN_SLEEP("GPIO69_E2", slpm_in_wkup_pdis, "0-0070"),
351 344
352 /* Mux in USB pins, drive STP high */
353 /* USB default state */
354 DB8500_MUX("usb_a_1", "usb", "ab8500-usb.0"),
355 DB8500_PIN("GPIO257_AE29", out_hi, "ab8500-usb.0"), /* STP */
356 /* USB sleep state */
357 DB8500_PIN_SLEEP("GPIO256_AF28", slpm_wkup_pdis_en, "ab8500-usb.0"), /* NXT */
358 DB8500_PIN_SLEEP("GPIO257_AE29", slpm_out_hi_wkup_pdis, "ab8500-usb.0"), /* STP */
359 DB8500_PIN_SLEEP("GPIO258_AD29", slpm_wkup_pdis_en, "ab8500-usb.0"), /* XCLK */
360 DB8500_PIN_SLEEP("GPIO259_AC29", slpm_wkup_pdis_en, "ab8500-usb.0"), /* DIR */
361 DB8500_PIN_SLEEP("GPIO260_AD28", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT7 */
362 DB8500_PIN_SLEEP("GPIO261_AD26", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT6 */
363 DB8500_PIN_SLEEP("GPIO262_AE26", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT5 */
364 DB8500_PIN_SLEEP("GPIO263_AG29", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT4 */
365 DB8500_PIN_SLEEP("GPIO264_AE27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT3 */
366 DB8500_PIN_SLEEP("GPIO265_AD27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT2 */
367 DB8500_PIN_SLEEP("GPIO266_AC28", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT1 */
368 DB8500_PIN_SLEEP("GPIO267_AC27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT0 */
369
370 /* Mux in SPI2 pins on the "other C1" altfunction */ 345 /* Mux in SPI2 pins on the "other C1" altfunction */
371 DB8500_MUX("spi2_oc1_2", "spi2", "spi2"), 346 DB8500_MUX("spi2_oc1_2", "spi2", "spi2"),
372 DB8500_PIN("GPIO216_AG12", gpio_out_hi, "spi2"), /* FRM */ 347 DB8500_PIN("GPIO216_AG12", gpio_out_hi, "spi2"), /* FRM */