aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-11-15 03:20:28 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-11-26 15:01:56 -0500
commit279571358df1e3f9788f1095d73b777fdb68c7e0 (patch)
treed5d5eb3573b45d240a00734475f36763dc6f3fe1
parent817a5b967d5f2c78e9ab41ec91fc44f872201fc6 (diff)
ARM: ux500: move SKE pin config to device tree
This moves the SKE keypad pin control table out of the board file and into the device tree. This was previously set to be active on all MOP500 and HREF boards but after reading the schematic this seems incorrect: the HREFv60 and later uses one of these for MC5 and no reference designs have the SKE connected to any hardware so just leave the pins alone in the power-on state. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/boot/dts/ste-href-family-pinctrl.dtsi90
-rw-r--r--arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi7
-rw-r--r--arch/arm/mach-ux500/board-mop500-pins.c87
3 files changed, 97 insertions, 87 deletions
diff --git a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
index 779829a1e143..854a4a6e521e 100644
--- a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
@@ -631,6 +631,96 @@
631 }; 631 };
632 }; 632 };
633 }; 633 };
634
635 ske {
636 /* SKE keys on position 2 in an 8x8 matrix */
637 ske_kpa2_default_mode: ske_kpa2_default {
638 default_mux {
639 ste,function = "kp";
640 ste,pins = "kp_a_2";
641 };
642 default_cfg1 {
643 ste,pins =
644 "GPIO153_B17", /* I7 */
645 "GPIO154_C16", /* I6 */
646 "GPIO155_C19", /* I5 */
647 "GPIO156_C17", /* I4 */
648 "GPIO161_D21", /* I3 */
649 "GPIO162_D20", /* I2 */
650 "GPIO163_C20", /* I1 */
651 "GPIO164_B21"; /* I0 */
652 ste,config = <&in_pd>;
653 };
654 default_cfg2 {
655 ste,pins =
656 "GPIO157_A18", /* O7 */
657 "GPIO158_C18", /* O6 */
658 "GPIO159_B19", /* O5 */
659 "GPIO160_B20", /* O4 */
660 "GPIO165_C21", /* O3 */
661 "GPIO166_A22", /* O2 */
662 "GPIO167_B24", /* O1 */
663 "GPIO168_C22"; /* O0 */
664 ste,config = <&out_lo>;
665 };
666 };
667 ske_kpa2_sleep_mode: ske_kpa2_sleep {
668 sleep_cfg1 {
669 ste,pins =
670 "GPIO153_B17", /* I7 */
671 "GPIO154_C16", /* I6 */
672 "GPIO155_C19", /* I5 */
673 "GPIO156_C17", /* I4 */
674 "GPIO161_D21", /* I3 */
675 "GPIO162_D20", /* I2 */
676 "GPIO163_C20", /* I1 */
677 "GPIO164_B21"; /* I0 */
678 ste,config = <&slpm_in_pu_wkup_pdis_en>;
679 };
680 sleep_cfg2 {
681 ste,pins =
682 "GPIO157_A18", /* O7 */
683 "GPIO158_C18", /* O6 */
684 "GPIO159_B19", /* O5 */
685 "GPIO160_B20", /* O4 */
686 "GPIO165_C21", /* O3 */
687 "GPIO166_A22", /* O2 */
688 "GPIO167_B24", /* O1 */
689 "GPIO168_C22"; /* O0 */
690 ste,config = <&slpm_out_lo_pdis>;
691 };
692 };
693 /*
694 * SKE keys on position 1 and "other C1" combi giving
695 * six rows of six keys.
696 */
697 ske_kpaoc1_default_mode: ske_kpaoc1_default {
698 default_mux {
699 ste,function = "kp";
700 ste,pins = "kp_a_1", "kp_oc1_1";
701 };
702 default_cfg1 {
703 ste,pins =
704 "GPIO91_B6", /* KP_O0 */
705 "GPIO90_A3", /* KP_O1 */
706 "GPIO87_B3", /* KP_O2 */
707 "GPIO86_C6", /* KP_O3 */
708 "GPIO96_D8", /* KP_O6 */
709 "GPIO94_D7"; /* KP_O7 */
710 ste,config = <&out_lo>;
711 };
712 default_cfg2 {
713 ste,pins =
714 "GPIO93_B7", /* KP_I0 */
715 "GPIO92_D6", /* KP_I1 */
716 "GPIO89_E6", /* KP_I2 */
717 "GPIO88_C4", /* KP_I3 */
718 "GPIO97_D9", /* KP_I6 */
719 "GPIO95_E8"; /* KP_I7 */
720 ste,config = <&in_pu>;
721 };
722 };
723 };
634 }; 724 };
635 }; 725 };
636}; 726};
diff --git a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
index 456a25fbfaee..ee143b0a5baa 100644
--- a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi
@@ -91,6 +91,13 @@
91 ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>; 91 ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>;
92 }; 92 };
93 93
94 slpm_in_pu_wkup_pdis_en: slpm_in_wkup_pdis_en {
95 ste,sleep = <SLPM_ENABLED>;
96 ste,sleep-input = <SLPM_INPUT_PULLUP>;
97 ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
98 ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>;
99 };
100
94 slpm_out_lo: slpm_out_lo { 101 slpm_out_lo: slpm_out_lo {
95 ste,sleep = <SLPM_ENABLED>; 102 ste,sleep = <SLPM_ENABLED>;
96 ste,sleep-output = <SLPM_OUTPUT_LOW>; 103 ste,sleep-output = <SLPM_OUTPUT_LOW>;
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c
index 4cc4cb151474..07ddb89a6dbe 100644
--- a/arch/arm/mach-ux500/board-mop500-pins.c
+++ b/arch/arm/mach-ux500/board-mop500-pins.c
@@ -323,42 +323,6 @@ static struct pinctrl_map __initdata ab8505_pinmap[] = {
323 323
324/* Pin control settings */ 324/* Pin control settings */
325static struct pinctrl_map __initdata mop500_family_pinmap[] = { 325static struct pinctrl_map __initdata mop500_family_pinmap[] = {
326 /* ske default state */
327 DB8500_MUX("kp_a_2", "kp", "nmk-ske-keypad"),
328 DB8500_PIN("GPIO153_B17", in_pd, "nmk-ske-keypad"), /* I7 */
329 DB8500_PIN("GPIO154_C16", in_pd, "nmk-ske-keypad"), /* I6 */
330 DB8500_PIN("GPIO155_C19", in_pd, "nmk-ske-keypad"), /* I5 */
331 DB8500_PIN("GPIO156_C17", in_pd, "nmk-ske-keypad"), /* I4 */
332 DB8500_PIN("GPIO161_D21", in_pd, "nmk-ske-keypad"), /* I3 */
333 DB8500_PIN("GPIO162_D20", in_pd, "nmk-ske-keypad"), /* I2 */
334 DB8500_PIN("GPIO163_C20", in_pd, "nmk-ske-keypad"), /* I1 */
335 DB8500_PIN("GPIO164_B21", in_pd, "nmk-ske-keypad"), /* I0 */
336 DB8500_PIN("GPIO157_A18", out_lo, "nmk-ske-keypad"), /* O7 */
337 DB8500_PIN("GPIO158_C18", out_lo, "nmk-ske-keypad"), /* O6 */
338 DB8500_PIN("GPIO159_B19", out_lo, "nmk-ske-keypad"), /* O5 */
339 DB8500_PIN("GPIO160_B20", out_lo, "nmk-ske-keypad"), /* O4 */
340 DB8500_PIN("GPIO165_C21", out_lo, "nmk-ske-keypad"), /* O3 */
341 DB8500_PIN("GPIO166_A22", out_lo, "nmk-ske-keypad"), /* O2 */
342 DB8500_PIN("GPIO167_B24", out_lo, "nmk-ske-keypad"), /* O1 */
343 DB8500_PIN("GPIO168_C22", out_lo, "nmk-ske-keypad"), /* O0 */
344 /* ske sleep state */
345 DB8500_PIN_SLEEP("GPIO153_B17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I7 */
346 DB8500_PIN_SLEEP("GPIO154_C16", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I6 */
347 DB8500_PIN_SLEEP("GPIO155_C19", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I5 */
348 DB8500_PIN_SLEEP("GPIO156_C17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I4 */
349 DB8500_PIN_SLEEP("GPIO161_D21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I3 */
350 DB8500_PIN_SLEEP("GPIO162_D20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I2 */
351 DB8500_PIN_SLEEP("GPIO163_C20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I1 */
352 DB8500_PIN_SLEEP("GPIO164_B21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I0 */
353 DB8500_PIN_SLEEP("GPIO157_A18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O7 */
354 DB8500_PIN_SLEEP("GPIO158_C18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O6 */
355 DB8500_PIN_SLEEP("GPIO159_B19", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O5 */
356 DB8500_PIN_SLEEP("GPIO160_B20", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O4 */
357 DB8500_PIN_SLEEP("GPIO165_C21", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O3 */
358 DB8500_PIN_SLEEP("GPIO166_A22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O2 */
359 DB8500_PIN_SLEEP("GPIO167_B24", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O1 */
360 DB8500_PIN_SLEEP("GPIO168_C22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O0 */
361
362 /* STM APE pins states */ 326 /* STM APE pins states */
363 DB8500_MUX_STATE("stmape_c_1", "stmape", 327 DB8500_MUX_STATE("stmape_c_1", "stmape",
364 "stm", "ape_mipi34"), 328 "stm", "ape_mipi34"),
@@ -561,41 +525,6 @@ static struct pinctrl_map __initdata mop500_pinmap[] = {
561 * Runtime stuff: make it possible to mux in the SKE keypad 525 * Runtime stuff: make it possible to mux in the SKE keypad
562 * and bias the pins 526 * and bias the pins
563 */ 527 */
564 /* ske default state */
565 DB8500_MUX("kp_a_2", "kp", "nmk-ske-keypad"),
566 DB8500_PIN("GPIO153_B17", in_pu, "nmk-ske-keypad"), /* I7 */
567 DB8500_PIN("GPIO154_C16", in_pu, "nmk-ske-keypad"), /* I6 */
568 DB8500_PIN("GPIO155_C19", in_pu, "nmk-ske-keypad"), /* I5 */
569 DB8500_PIN("GPIO156_C17", in_pu, "nmk-ske-keypad"), /* I4 */
570 DB8500_PIN("GPIO161_D21", in_pu, "nmk-ske-keypad"), /* I3 */
571 DB8500_PIN("GPIO162_D20", in_pu, "nmk-ske-keypad"), /* I2 */
572 DB8500_PIN("GPIO163_C20", in_pu, "nmk-ske-keypad"), /* I1 */
573 DB8500_PIN("GPIO164_B21", in_pu, "nmk-ske-keypad"), /* I0 */
574 DB8500_PIN("GPIO157_A18", out_lo, "nmk-ske-keypad"), /* O7 */
575 DB8500_PIN("GPIO158_C18", out_lo, "nmk-ske-keypad"), /* O6 */
576 DB8500_PIN("GPIO159_B19", out_lo, "nmk-ske-keypad"), /* O5 */
577 DB8500_PIN("GPIO160_B20", out_lo, "nmk-ske-keypad"), /* O4 */
578 DB8500_PIN("GPIO165_C21", out_lo, "nmk-ske-keypad"), /* O3 */
579 DB8500_PIN("GPIO166_A22", out_lo, "nmk-ske-keypad"), /* O2 */
580 DB8500_PIN("GPIO167_B24", out_lo, "nmk-ske-keypad"), /* O1 */
581 DB8500_PIN("GPIO168_C22", out_lo, "nmk-ske-keypad"), /* O0 */
582 /* ske sleep state */
583 DB8500_PIN_SLEEP("GPIO153_B17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I7 */
584 DB8500_PIN_SLEEP("GPIO154_C16", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I6 */
585 DB8500_PIN_SLEEP("GPIO155_C19", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I5 */
586 DB8500_PIN_SLEEP("GPIO156_C17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I4 */
587 DB8500_PIN_SLEEP("GPIO161_D21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I3 */
588 DB8500_PIN_SLEEP("GPIO162_D20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I2 */
589 DB8500_PIN_SLEEP("GPIO163_C20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I1 */
590 DB8500_PIN_SLEEP("GPIO164_B21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I0 */
591 DB8500_PIN_SLEEP("GPIO157_A18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O7 */
592 DB8500_PIN_SLEEP("GPIO158_C18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O6 */
593 DB8500_PIN_SLEEP("GPIO159_B19", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O5 */
594 DB8500_PIN_SLEEP("GPIO160_B20", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O4 */
595 DB8500_PIN_SLEEP("GPIO165_C21", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O3 */
596 DB8500_PIN_SLEEP("GPIO166_A22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O2 */
597 DB8500_PIN_SLEEP("GPIO167_B24", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O1 */
598 DB8500_PIN_SLEEP("GPIO168_C22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O0 */
599}; 528};
600 529
601/* 530/*
@@ -655,22 +584,6 @@ static struct pinctrl_map __initdata hrefv60_pinmap[] = {
655 DB8500_PIN_HOG("GPIO77_H1", gpio_out_lo), /* NFC_ENA */ 584 DB8500_PIN_HOG("GPIO77_H1", gpio_out_lo), /* NFC_ENA */
656 DB8500_PIN_HOG("GPIO144_B13", gpio_in_pd), /* NFC_IRQ */ 585 DB8500_PIN_HOG("GPIO144_B13", gpio_in_pd), /* NFC_IRQ */
657 DB8500_PIN_HOG("GPIO142_C11", gpio_out_lo), /* NFC_RESET */ 586 DB8500_PIN_HOG("GPIO142_C11", gpio_out_lo), /* NFC_RESET */
658 /*
659 * SKE keyboard partly on alt A and partly on "Other alt C1"
660 * Driver KP_O1,2,3,6,7 low and pull up KP_I 0,2,3 for three
661 * rows of 6 keys, then pull up force sensing interrup and
662 * drive reset and force sensing WU low.
663 */
664 DB8500_MUX_HOG("kp_a_1", "kp"),
665 DB8500_MUX_HOG("kp_oc1_1", "kp"),
666 DB8500_PIN_HOG("GPIO90_A3", out_lo), /* KP_O1 */
667 DB8500_PIN_HOG("GPIO87_B3", out_lo), /* KP_O2 */
668 DB8500_PIN_HOG("GPIO86_C6", out_lo), /* KP_O3 */
669 DB8500_PIN_HOG("GPIO96_D8", out_lo), /* KP_O6 */
670 DB8500_PIN_HOG("GPIO94_D7", out_lo), /* KP_O7 */
671 DB8500_PIN_HOG("GPIO93_B7", in_pu), /* KP_I0 */
672 DB8500_PIN_HOG("GPIO89_E6", in_pu), /* KP_I2 */
673 DB8500_PIN_HOG("GPIO88_C4", in_pu), /* KP_I3 */
674 DB8500_PIN_HOG("GPIO91_B6", gpio_in_pu), /* FORCE_SENSING_INT */ 587 DB8500_PIN_HOG("GPIO91_B6", gpio_in_pu), /* FORCE_SENSING_INT */
675 DB8500_PIN_HOG("GPIO92_D6", gpio_out_lo), /* FORCE_SENSING_RST */ 588 DB8500_PIN_HOG("GPIO92_D6", gpio_out_lo), /* FORCE_SENSING_RST */
676 DB8500_PIN_HOG("GPIO97_D9", gpio_out_lo), /* FORCE_SENSING_WU */ 589 DB8500_PIN_HOG("GPIO97_D9", gpio_out_lo), /* FORCE_SENSING_WU */