diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-nomadik-db8540.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-nomadik-db8540.c | 344 |
1 files changed, 303 insertions, 41 deletions
diff --git a/drivers/pinctrl/pinctrl-nomadik-db8540.c b/drivers/pinctrl/pinctrl-nomadik-db8540.c index 3daf665c84c3..52fc30181f7e 100644 --- a/drivers/pinctrl/pinctrl-nomadik-db8540.c +++ b/drivers/pinctrl/pinctrl-nomadik-db8540.c | |||
@@ -778,50 +778,50 @@ static const struct nmk_pingroup nmk_db8540_groups[] = { | |||
778 | DB8540_PIN_GROUP(spi0_c_1, NMK_GPIO_ALT_C), | 778 | DB8540_PIN_GROUP(spi0_c_1, NMK_GPIO_ALT_C), |
779 | DB8540_PIN_GROUP(i2c3_c_1, NMK_GPIO_ALT_C), | 779 | DB8540_PIN_GROUP(i2c3_c_1, NMK_GPIO_ALT_C), |
780 | 780 | ||
781 | /* Other alt C1 column, these are still configured as alt C */ | 781 | /* Other alt C1 column */ |
782 | DB8540_PIN_GROUP(spi3_oc1_1, NMK_GPIO_ALT_C), | 782 | DB8540_PIN_GROUP(spi3_oc1_1, NMK_GPIO_ALT_C1), |
783 | DB8540_PIN_GROUP(stmape_oc1_1, NMK_GPIO_ALT_C), | 783 | DB8540_PIN_GROUP(stmape_oc1_1, NMK_GPIO_ALT_C1), |
784 | DB8540_PIN_GROUP(u2_oc1_1, NMK_GPIO_ALT_C), | 784 | DB8540_PIN_GROUP(u2_oc1_1, NMK_GPIO_ALT_C1), |
785 | DB8540_PIN_GROUP(remap0_oc1_1, NMK_GPIO_ALT_C), | 785 | DB8540_PIN_GROUP(remap0_oc1_1, NMK_GPIO_ALT_C1), |
786 | DB8540_PIN_GROUP(remap1_oc1_1, NMK_GPIO_ALT_C), | 786 | DB8540_PIN_GROUP(remap1_oc1_1, NMK_GPIO_ALT_C1), |
787 | DB8540_PIN_GROUP(modobsrefclk_oc1_1, NMK_GPIO_ALT_C), | 787 | DB8540_PIN_GROUP(modobsrefclk_oc1_1, NMK_GPIO_ALT_C1), |
788 | DB8540_PIN_GROUP(modobspwrctrl_oc1_1, NMK_GPIO_ALT_C), | 788 | DB8540_PIN_GROUP(modobspwrctrl_oc1_1, NMK_GPIO_ALT_C1), |
789 | DB8540_PIN_GROUP(modobsclkout_oc1_1, NMK_GPIO_ALT_C), | 789 | DB8540_PIN_GROUP(modobsclkout_oc1_1, NMK_GPIO_ALT_C1), |
790 | DB8540_PIN_GROUP(moduart1_oc1_1, NMK_GPIO_ALT_C), | 790 | DB8540_PIN_GROUP(moduart1_oc1_1, NMK_GPIO_ALT_C1), |
791 | DB8540_PIN_GROUP(modprcmudbg_oc1_1, NMK_GPIO_ALT_C), | 791 | DB8540_PIN_GROUP(modprcmudbg_oc1_1, NMK_GPIO_ALT_C1), |
792 | DB8540_PIN_GROUP(modobsresout_oc1_1, NMK_GPIO_ALT_C), | 792 | DB8540_PIN_GROUP(modobsresout_oc1_1, NMK_GPIO_ALT_C1), |
793 | DB8540_PIN_GROUP(modaccgpo_oc1_1, NMK_GPIO_ALT_C), | 793 | DB8540_PIN_GROUP(modaccgpo_oc1_1, NMK_GPIO_ALT_C1), |
794 | DB8540_PIN_GROUP(kp_oc1_1, NMK_GPIO_ALT_C), | 794 | DB8540_PIN_GROUP(kp_oc1_1, NMK_GPIO_ALT_C1), |
795 | DB8540_PIN_GROUP(modxmip_oc1_1, NMK_GPIO_ALT_C), | 795 | DB8540_PIN_GROUP(modxmip_oc1_1, NMK_GPIO_ALT_C1), |
796 | DB8540_PIN_GROUP(i2c6_oc1_1, NMK_GPIO_ALT_C), | 796 | DB8540_PIN_GROUP(i2c6_oc1_1, NMK_GPIO_ALT_C1), |
797 | DB8540_PIN_GROUP(u2txrx_oc1_1, NMK_GPIO_ALT_C), | 797 | DB8540_PIN_GROUP(u2txrx_oc1_1, NMK_GPIO_ALT_C1), |
798 | DB8540_PIN_GROUP(u2ctsrts_oc1_1, NMK_GPIO_ALT_C), | 798 | DB8540_PIN_GROUP(u2ctsrts_oc1_1, NMK_GPIO_ALT_C1), |
799 | 799 | ||
800 | /* Other alt C2 column, these are still configured as alt C */ | 800 | /* Other alt C2 column */ |
801 | DB8540_PIN_GROUP(sbag_oc2_1, NMK_GPIO_ALT_C), | 801 | DB8540_PIN_GROUP(sbag_oc2_1, NMK_GPIO_ALT_C2), |
802 | DB8540_PIN_GROUP(hxclk_oc2_1, NMK_GPIO_ALT_C), | 802 | DB8540_PIN_GROUP(hxclk_oc2_1, NMK_GPIO_ALT_C2), |
803 | DB8540_PIN_GROUP(modaccuart_oc2_1, NMK_GPIO_ALT_C), | 803 | DB8540_PIN_GROUP(modaccuart_oc2_1, NMK_GPIO_ALT_C2), |
804 | DB8540_PIN_GROUP(stmmod_oc2_1, NMK_GPIO_ALT_C), | 804 | DB8540_PIN_GROUP(stmmod_oc2_1, NMK_GPIO_ALT_C2), |
805 | DB8540_PIN_GROUP(moduartstmmux_oc2_1, NMK_GPIO_ALT_C), | 805 | DB8540_PIN_GROUP(moduartstmmux_oc2_1, NMK_GPIO_ALT_C2), |
806 | DB8540_PIN_GROUP(hxgpio_oc2_1, NMK_GPIO_ALT_C), | 806 | DB8540_PIN_GROUP(hxgpio_oc2_1, NMK_GPIO_ALT_C2), |
807 | DB8540_PIN_GROUP(sbag_oc2_2, NMK_GPIO_ALT_C), | 807 | DB8540_PIN_GROUP(sbag_oc2_2, NMK_GPIO_ALT_C2), |
808 | DB8540_PIN_GROUP(modobsservice_oc2_1, NMK_GPIO_ALT_C), | 808 | DB8540_PIN_GROUP(modobsservice_oc2_1, NMK_GPIO_ALT_C2), |
809 | DB8540_PIN_GROUP(moduart0_oc2_1, NMK_GPIO_ALT_C), | 809 | DB8540_PIN_GROUP(moduart0_oc2_1, NMK_GPIO_ALT_C2), |
810 | DB8540_PIN_GROUP(stmape_oc2_1, NMK_GPIO_ALT_C), | 810 | DB8540_PIN_GROUP(stmape_oc2_1, NMK_GPIO_ALT_C2), |
811 | DB8540_PIN_GROUP(u2_oc2_1, NMK_GPIO_ALT_C), | 811 | DB8540_PIN_GROUP(u2_oc2_1, NMK_GPIO_ALT_C2), |
812 | DB8540_PIN_GROUP(modxmip_oc2_1, NMK_GPIO_ALT_C), | 812 | DB8540_PIN_GROUP(modxmip_oc2_1, NMK_GPIO_ALT_C2), |
813 | 813 | ||
814 | /* Other alt C3 column, these are still configured as alt C */ | 814 | /* Other alt C3 column */ |
815 | DB8540_PIN_GROUP(modaccgpo_oc3_1, NMK_GPIO_ALT_C), | 815 | DB8540_PIN_GROUP(modaccgpo_oc3_1, NMK_GPIO_ALT_C3), |
816 | DB8540_PIN_GROUP(tpui_oc3_1, NMK_GPIO_ALT_C), | 816 | DB8540_PIN_GROUP(tpui_oc3_1, NMK_GPIO_ALT_C3), |
817 | 817 | ||
818 | /* Other alt C4 column, these are still configured as alt C */ | 818 | /* Other alt C4 column */ |
819 | DB8540_PIN_GROUP(hwobs_oc4_1, NMK_GPIO_ALT_C), | 819 | DB8540_PIN_GROUP(hwobs_oc4_1, NMK_GPIO_ALT_C4), |
820 | DB8540_PIN_GROUP(moduart1txrx_oc4_1, NMK_GPIO_ALT_C), | 820 | DB8540_PIN_GROUP(moduart1txrx_oc4_1, NMK_GPIO_ALT_C4), |
821 | DB8540_PIN_GROUP(moduart1rtscts_oc4_1, NMK_GPIO_ALT_C), | 821 | DB8540_PIN_GROUP(moduart1rtscts_oc4_1, NMK_GPIO_ALT_C4), |
822 | DB8540_PIN_GROUP(modaccuarttxrx_oc4_1, NMK_GPIO_ALT_C), | 822 | DB8540_PIN_GROUP(modaccuarttxrx_oc4_1, NMK_GPIO_ALT_C4), |
823 | DB8540_PIN_GROUP(modaccuartrtscts_oc4_1, NMK_GPIO_ALT_C), | 823 | DB8540_PIN_GROUP(modaccuartrtscts_oc4_1, NMK_GPIO_ALT_C4), |
824 | DB8540_PIN_GROUP(stmmod_oc4_1, NMK_GPIO_ALT_C), | 824 | DB8540_PIN_GROUP(stmmod_oc4_1, NMK_GPIO_ALT_C4), |
825 | 825 | ||
826 | }; | 826 | }; |
827 | 827 | ||
@@ -981,6 +981,265 @@ static const struct nmk_function nmk_db8540_functions[] = { | |||
981 | FUNCTION(usb) | 981 | FUNCTION(usb) |
982 | }; | 982 | }; |
983 | 983 | ||
984 | static const struct prcm_gpiocr_altcx_pin_desc db8540_altcx_pins[] = { | ||
985 | PRCM_GPIOCR_ALTCX(8, true, PRCM_IDX_GPIOCR1, 20, /* SPI3_CLK */ | ||
986 | false, 0, 0, | ||
987 | false, 0, 0, | ||
988 | false, 0, 0 | ||
989 | ), | ||
990 | PRCM_GPIOCR_ALTCX(9, true, PRCM_IDX_GPIOCR1, 20, /* SPI3_RXD */ | ||
991 | false, 0, 0, | ||
992 | false, 0, 0, | ||
993 | false, 0, 0 | ||
994 | ), | ||
995 | PRCM_GPIOCR_ALTCX(10, true, PRCM_IDX_GPIOCR1, 20, /* SPI3_FRM */ | ||
996 | false, 0, 0, | ||
997 | false, 0, 0, | ||
998 | false, 0, 0 | ||
999 | ), | ||
1000 | PRCM_GPIOCR_ALTCX(11, true, PRCM_IDX_GPIOCR1, 20, /* SPI3_TXD */ | ||
1001 | false, 0, 0, | ||
1002 | false, 0, 0, | ||
1003 | false, 0, 0 | ||
1004 | ), | ||
1005 | PRCM_GPIOCR_ALTCX(23, true, PRCM_IDX_GPIOCR1, 9, /* STMAPE_CLK_a */ | ||
1006 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_CLK_a */ | ||
1007 | false, 0, 0, | ||
1008 | false, 0, 0 | ||
1009 | ), | ||
1010 | PRCM_GPIOCR_ALTCX(24, true, PRCM_IDX_GPIOCR3, 30, /* U2_RXD_g */ | ||
1011 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_VAL_a */ | ||
1012 | false, 0, 0, | ||
1013 | false, 0, 0 | ||
1014 | ), | ||
1015 | PRCM_GPIOCR_ALTCX(25, true, PRCM_IDX_GPIOCR1, 9, /* STMAPE_DAT_a[0] */ | ||
1016 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_D_a[0] */ | ||
1017 | false, 0, 0, | ||
1018 | false, 0, 0 | ||
1019 | ), | ||
1020 | PRCM_GPIOCR_ALTCX(26, true, PRCM_IDX_GPIOCR1, 9, /* STMAPE_DAT_a[1] */ | ||
1021 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_D_a[1] */ | ||
1022 | false, 0, 0, | ||
1023 | false, 0, 0 | ||
1024 | ), | ||
1025 | PRCM_GPIOCR_ALTCX(27, true, PRCM_IDX_GPIOCR1, 9, /* STMAPE_DAT_a[2] */ | ||
1026 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_D_a[2] */ | ||
1027 | false, 0, 0, | ||
1028 | false, 0, 0 | ||
1029 | ), | ||
1030 | PRCM_GPIOCR_ALTCX(28, true, PRCM_IDX_GPIOCR1, 9, /* STMAPE_DAT_a[3] */ | ||
1031 | true, PRCM_IDX_GPIOCR2, 10, /* SBAG_D_a[3] */ | ||
1032 | false, 0, 0, | ||
1033 | false, 0, 0 | ||
1034 | ), | ||
1035 | PRCM_GPIOCR_ALTCX(64, true, PRCM_IDX_GPIOCR1, 15, /* MODOBS_REFCLK_REQ */ | ||
1036 | false, 0, 0, | ||
1037 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_CTL */ | ||
1038 | true, PRCM_IDX_GPIOCR2, 23 /* HW_OBS_APE_PRCMU[17] */ | ||
1039 | ), | ||
1040 | PRCM_GPIOCR_ALTCX(65, true, PRCM_IDX_GPIOCR1, 19, /* MODOBS_PWRCTRL0 */ | ||
1041 | true, PRCM_IDX_GPIOCR1, 24, /* Hx_CLK */ | ||
1042 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_CLK */ | ||
1043 | true, PRCM_IDX_GPIOCR2, 24 /* HW_OBS_APE_PRCMU[16] */ | ||
1044 | ), | ||
1045 | PRCM_GPIOCR_ALTCX(66, true, PRCM_IDX_GPIOCR1, 15, /* MODOBS_CLKOUT1 */ | ||
1046 | false, 0, 0, | ||
1047 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[15] */ | ||
1048 | true, PRCM_IDX_GPIOCR2, 25 /* HW_OBS_APE_PRCMU[15] */ | ||
1049 | ), | ||
1050 | PRCM_GPIOCR_ALTCX(67, true, PRCM_IDX_GPIOCR1, 1, /* MODUART1_TXD_a */ | ||
1051 | true, PRCM_IDX_GPIOCR1, 6, /* MODACCUART_TXD_a */ | ||
1052 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[14] */ | ||
1053 | true, PRCM_IDX_GPIOCR2, 26 /* HW_OBS_APE_PRCMU[14] */ | ||
1054 | ), | ||
1055 | PRCM_GPIOCR_ALTCX(70, true, PRCM_IDX_GPIOCR3, 6, /* MOD_PRCMU_DEBUG[17] */ | ||
1056 | true, PRCM_IDX_GPIOCR1, 10, /* STMMOD_CLK_b */ | ||
1057 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[13] */ | ||
1058 | true, PRCM_IDX_GPIOCR2, 27 /* HW_OBS_APE_PRCMU[13] */ | ||
1059 | ), | ||
1060 | PRCM_GPIOCR_ALTCX(71, true, PRCM_IDX_GPIOCR3, 6, /* MOD_PRCMU_DEBUG[16] */ | ||
1061 | true, PRCM_IDX_GPIOCR1, 10, /* STMMOD_DAT_b[3] */ | ||
1062 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[12] */ | ||
1063 | true, PRCM_IDX_GPIOCR2, 27 /* HW_OBS_APE_PRCMU[12] */ | ||
1064 | ), | ||
1065 | PRCM_GPIOCR_ALTCX(72, true, PRCM_IDX_GPIOCR3, 6, /* MOD_PRCMU_DEBUG[15] */ | ||
1066 | true, PRCM_IDX_GPIOCR1, 10, /* STMMOD_DAT_b[2] */ | ||
1067 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[11] */ | ||
1068 | true, PRCM_IDX_GPIOCR2, 27 /* HW_OBS_APE_PRCMU[11] */ | ||
1069 | ), | ||
1070 | PRCM_GPIOCR_ALTCX(73, true, PRCM_IDX_GPIOCR3, 6, /* MOD_PRCMU_DEBUG[14] */ | ||
1071 | true, PRCM_IDX_GPIOCR1, 10, /* STMMOD_DAT_b[1] */ | ||
1072 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[10] */ | ||
1073 | true, PRCM_IDX_GPIOCR2, 27 /* HW_OBS_APE_PRCMU[10] */ | ||
1074 | ), | ||
1075 | PRCM_GPIOCR_ALTCX(74, true, PRCM_IDX_GPIOCR3, 6, /* MOD_PRCMU_DEBUG[13] */ | ||
1076 | true, PRCM_IDX_GPIOCR1, 10, /* STMMOD_DAT_b[0] */ | ||
1077 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[9] */ | ||
1078 | true, PRCM_IDX_GPIOCR2, 27 /* HW_OBS_APE_PRCMU[9] */ | ||
1079 | ), | ||
1080 | PRCM_GPIOCR_ALTCX(75, true, PRCM_IDX_GPIOCR1, 12, /* MODOBS_RESOUT0_N */ | ||
1081 | true, PRCM_IDX_GPIOCR2, 1, /* MODUART_STMMUX_RXD_b */ | ||
1082 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[8] */ | ||
1083 | true, PRCM_IDX_GPIOCR2, 28 /* HW_OBS_APE_PRCMU[8] */ | ||
1084 | ), | ||
1085 | PRCM_GPIOCR_ALTCX(76, true, PRCM_IDX_GPIOCR3, 7, /* MOD_PRCMU_DEBUG[12] */ | ||
1086 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[7] */ | ||
1087 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[7] */ | ||
1088 | true, PRCM_IDX_GPIOCR2, 29 /* HW_OBS_APE_PRCMU[7] */ | ||
1089 | ), | ||
1090 | PRCM_GPIOCR_ALTCX(77, true, PRCM_IDX_GPIOCR3, 7, /* MOD_PRCMU_DEBUG[11] */ | ||
1091 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[6] */ | ||
1092 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[6] */ | ||
1093 | true, PRCM_IDX_GPIOCR2, 29 /* HW_OBS_APE_PRCMU[6] */ | ||
1094 | ), | ||
1095 | PRCM_GPIOCR_ALTCX(78, true, PRCM_IDX_GPIOCR3, 7, /* MOD_PRCMU_DEBUG[10] */ | ||
1096 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[5] */ | ||
1097 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[5] */ | ||
1098 | true, PRCM_IDX_GPIOCR2, 29 /* HW_OBS_APE_PRCMU[5] */ | ||
1099 | ), | ||
1100 | PRCM_GPIOCR_ALTCX(79, true, PRCM_IDX_GPIOCR3, 7, /* MOD_PRCMU_DEBUG[9] */ | ||
1101 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[4] */ | ||
1102 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[4] */ | ||
1103 | true, PRCM_IDX_GPIOCR2, 29 /* HW_OBS_APE_PRCMU[4] */ | ||
1104 | ), | ||
1105 | PRCM_GPIOCR_ALTCX(80, true, PRCM_IDX_GPIOCR1, 26, /* MODACC_GPO[0] */ | ||
1106 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[3] */ | ||
1107 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[3] */ | ||
1108 | true, PRCM_IDX_GPIOCR2, 30 /* HW_OBS_APE_PRCMU[3] */ | ||
1109 | ), | ||
1110 | PRCM_GPIOCR_ALTCX(81, true, PRCM_IDX_GPIOCR2, 17, /* MODACC_GPO[1] */ | ||
1111 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[2] */ | ||
1112 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[2] */ | ||
1113 | true, PRCM_IDX_GPIOCR2, 30 /* HW_OBS_APE_PRCMU[2] */ | ||
1114 | ), | ||
1115 | PRCM_GPIOCR_ALTCX(82, true, PRCM_IDX_GPIOCR3, 8, /* MOD_PRCMU_DEBUG[8] */ | ||
1116 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[1] */ | ||
1117 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[1] */ | ||
1118 | true, PRCM_IDX_GPIOCR2, 31 /* HW_OBS_APE_PRCMU[1] */ | ||
1119 | ), | ||
1120 | PRCM_GPIOCR_ALTCX(83, true, PRCM_IDX_GPIOCR3, 8, /* MOD_PRCMU_DEBUG[7] */ | ||
1121 | true, PRCM_IDX_GPIOCR1, 25, /* Hx_GPIO[0] */ | ||
1122 | true, PRCM_IDX_GPIOCR1, 2, /* TPIU_D[0] */ | ||
1123 | true, PRCM_IDX_GPIOCR2, 31 /* HW_OBS_APE_PRCMU[0] */ | ||
1124 | ), | ||
1125 | PRCM_GPIOCR_ALTCX(84, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[6] */ | ||
1126 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_CLK_b */ | ||
1127 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[23] */ | ||
1128 | true, PRCM_IDX_GPIOCR1, 16 /* MODUART1_RXD_b */ | ||
1129 | ), | ||
1130 | PRCM_GPIOCR_ALTCX(85, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[5] */ | ||
1131 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_D_b[3] */ | ||
1132 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[22] */ | ||
1133 | true, PRCM_IDX_GPIOCR1, 16 /* MODUART1_TXD_b */ | ||
1134 | ), | ||
1135 | PRCM_GPIOCR_ALTCX(86, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[0] */ | ||
1136 | true, PRCM_IDX_GPIOCR2, 18, /* STMAPE_DAT_b[0] */ | ||
1137 | true, PRCM_IDX_GPIOCR1, 14, /* TPIU_D[25] */ | ||
1138 | true, PRCM_IDX_GPIOCR1, 11 /* STMMOD_DAT_c[0] */ | ||
1139 | ), | ||
1140 | PRCM_GPIOCR_ALTCX(87, true, PRCM_IDX_GPIOCR3, 0, /* MODACC_GPO_a[5] */ | ||
1141 | true, PRCM_IDX_GPIOCR2, 3, /* U2_RXD_c */ | ||
1142 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[24] */ | ||
1143 | true, PRCM_IDX_GPIOCR1, 21 /* MODUART_STMMUX_RXD_c */ | ||
1144 | ), | ||
1145 | PRCM_GPIOCR_ALTCX(151, true, PRCM_IDX_GPIOCR1, 18, /* REMAP0 */ | ||
1146 | false, 0, 0, | ||
1147 | false, 0, 0, | ||
1148 | false, 0, 0 | ||
1149 | ), | ||
1150 | PRCM_GPIOCR_ALTCX(152, true, PRCM_IDX_GPIOCR1, 18, /* REMAP1 */ | ||
1151 | false, 0, 0, | ||
1152 | false, 0, 0, | ||
1153 | false, 0, 0 | ||
1154 | ), | ||
1155 | PRCM_GPIOCR_ALTCX(153, true, PRCM_IDX_GPIOCR3, 2, /* KP_O_b[6] */ | ||
1156 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_D_b[2] */ | ||
1157 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[21] */ | ||
1158 | true, PRCM_IDX_GPIOCR1, 0 /* MODUART1_RTS */ | ||
1159 | ), | ||
1160 | PRCM_GPIOCR_ALTCX(154, true, PRCM_IDX_GPIOCR3, 2, /* KP_I_b[6] */ | ||
1161 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_D_b[1] */ | ||
1162 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[20] */ | ||
1163 | true, PRCM_IDX_GPIOCR1, 0 /* MODUART1_CTS */ | ||
1164 | ), | ||
1165 | PRCM_GPIOCR_ALTCX(155, true, PRCM_IDX_GPIOCR3, 3, /* KP_O_b[5] */ | ||
1166 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_D_b[0] */ | ||
1167 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[19] */ | ||
1168 | true, PRCM_IDX_GPIOCR1, 5 /* MODACCUART_RXD_c */ | ||
1169 | ), | ||
1170 | PRCM_GPIOCR_ALTCX(156, true, PRCM_IDX_GPIOCR3, 3, /* KP_O_b[4] */ | ||
1171 | true, PRCM_IDX_GPIOCR1, 8, /* SBAG_VAL_b */ | ||
1172 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[18] */ | ||
1173 | true, PRCM_IDX_GPIOCR1, 5 /* MODACCUART_TXD_b */ | ||
1174 | ), | ||
1175 | PRCM_GPIOCR_ALTCX(157, true, PRCM_IDX_GPIOCR3, 4, /* KP_I_b[5] */ | ||
1176 | true, PRCM_IDX_GPIOCR1, 23, /* MODOBS_SERVICE_N */ | ||
1177 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[17] */ | ||
1178 | true, PRCM_IDX_GPIOCR1, 14 /* MODACCUART_RTS */ | ||
1179 | ), | ||
1180 | PRCM_GPIOCR_ALTCX(158, true, PRCM_IDX_GPIOCR3, 4, /* KP_I_b[4] */ | ||
1181 | true, PRCM_IDX_GPIOCR2, 0, /* U2_TXD_c */ | ||
1182 | true, PRCM_IDX_GPIOCR1, 3, /* TPIU_D[16] */ | ||
1183 | true, PRCM_IDX_GPIOCR1, 14 /* MODACCUART_CTS */ | ||
1184 | ), | ||
1185 | PRCM_GPIOCR_ALTCX(159, true, PRCM_IDX_GPIOCR3, 5, /* KP_O_b[3] */ | ||
1186 | true, PRCM_IDX_GPIOCR3, 10, /* MODUART0_RXD */ | ||
1187 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[31] */ | ||
1188 | false, 0, 0 | ||
1189 | ), | ||
1190 | PRCM_GPIOCR_ALTCX(160, true, PRCM_IDX_GPIOCR3, 5, /* KP_I_b[3] */ | ||
1191 | true, PRCM_IDX_GPIOCR3, 10, /* MODUART0_TXD */ | ||
1192 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[30] */ | ||
1193 | false, 0, 0 | ||
1194 | ), | ||
1195 | PRCM_GPIOCR_ALTCX(161, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[4] */ | ||
1196 | true, PRCM_IDX_GPIOCR2, 18, /* STMAPE_CLK_b */ | ||
1197 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[29] */ | ||
1198 | true, PRCM_IDX_GPIOCR1, 11 /* STMMOD_CLK_c */ | ||
1199 | ), | ||
1200 | PRCM_GPIOCR_ALTCX(162, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[3] */ | ||
1201 | true, PRCM_IDX_GPIOCR2, 18, /* STMAPE_DAT_b[3] */ | ||
1202 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[28] */ | ||
1203 | true, PRCM_IDX_GPIOCR1, 11 /* STMMOD_DAT_c[3] */ | ||
1204 | ), | ||
1205 | PRCM_GPIOCR_ALTCX(163, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[2] */ | ||
1206 | true, PRCM_IDX_GPIOCR2, 18, /* STMAPE_DAT_b[2] */ | ||
1207 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[27] */ | ||
1208 | true, PRCM_IDX_GPIOCR1, 11 /* STMMOD_DAT_c[2] */ | ||
1209 | ), | ||
1210 | PRCM_GPIOCR_ALTCX(164, true, PRCM_IDX_GPIOCR3, 9, /* MOD_PRCMU_DEBUG[1] */ | ||
1211 | true, PRCM_IDX_GPIOCR2, 18, /* STMAPE_DAT_b[1] */ | ||
1212 | true, PRCM_IDX_GPIOCR1, 4, /* TPIU_D[26] */ | ||
1213 | true, PRCM_IDX_GPIOCR1, 11 /* STMMOD_DAT_c[1] */ | ||
1214 | ), | ||
1215 | PRCM_GPIOCR_ALTCX(204, true, PRCM_IDX_GPIOCR2, 2, /* U2_RXD_f */ | ||
1216 | false, 0, 0, | ||
1217 | false, 0, 0, | ||
1218 | false, 0, 0 | ||
1219 | ), | ||
1220 | PRCM_GPIOCR_ALTCX(205, true, PRCM_IDX_GPIOCR2, 2, /* U2_TXD_f */ | ||
1221 | false, 0, 0, | ||
1222 | false, 0, 0, | ||
1223 | false, 0, 0 | ||
1224 | ), | ||
1225 | PRCM_GPIOCR_ALTCX(206, true, PRCM_IDX_GPIOCR2, 2, /* U2_CTSn_b */ | ||
1226 | false, 0, 0, | ||
1227 | false, 0, 0, | ||
1228 | false, 0, 0 | ||
1229 | ), | ||
1230 | PRCM_GPIOCR_ALTCX(207, true, PRCM_IDX_GPIOCR2, 2, /* U2_RTSn_b */ | ||
1231 | false, 0, 0, | ||
1232 | false, 0, 0, | ||
1233 | false, 0, 0 | ||
1234 | ), | ||
1235 | }; | ||
1236 | |||
1237 | static const u16 db8540_prcm_gpiocr_regs[] = { | ||
1238 | [PRCM_IDX_GPIOCR1] = 0x138, | ||
1239 | [PRCM_IDX_GPIOCR2] = 0x574, | ||
1240 | [PRCM_IDX_GPIOCR3] = 0x2bc, | ||
1241 | }; | ||
1242 | |||
984 | static const struct nmk_pinctrl_soc_data nmk_db8540_soc = { | 1243 | static const struct nmk_pinctrl_soc_data nmk_db8540_soc = { |
985 | .gpio_ranges = nmk_db8540_ranges, | 1244 | .gpio_ranges = nmk_db8540_ranges, |
986 | .gpio_num_ranges = ARRAY_SIZE(nmk_db8540_ranges), | 1245 | .gpio_num_ranges = ARRAY_SIZE(nmk_db8540_ranges), |
@@ -990,6 +1249,9 @@ static const struct nmk_pinctrl_soc_data nmk_db8540_soc = { | |||
990 | .nfunctions = ARRAY_SIZE(nmk_db8540_functions), | 1249 | .nfunctions = ARRAY_SIZE(nmk_db8540_functions), |
991 | .groups = nmk_db8540_groups, | 1250 | .groups = nmk_db8540_groups, |
992 | .ngroups = ARRAY_SIZE(nmk_db8540_groups), | 1251 | .ngroups = ARRAY_SIZE(nmk_db8540_groups), |
1252 | .altcx_pins = db8540_altcx_pins, | ||
1253 | .npins_altcx = ARRAY_SIZE(db8540_altcx_pins), | ||
1254 | .prcm_gpiocr_registers = db8540_prcm_gpiocr_regs, | ||
993 | }; | 1255 | }; |
994 | 1256 | ||
995 | void __devinit | 1257 | void __devinit |