diff options
author | Bjorn Andersson <bjorn.andersson@sonymobile.com> | 2014-07-11 21:21:24 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-07-22 10:31:58 -0400 |
commit | 144ef62645a7725a0a442129a8750baf257e88b9 (patch) | |
tree | c1073a36400ae8b2bed66a037e49d76ec2b1da95 | |
parent | 3a19805920f1b07401ea8a3ca00d7568dc2ce5e9 (diff) |
pinctrl: qcom: Make muxing of gpio function explicit
Instead of relying on pinmux->disable(), make the gpio function an
explicit function for all pins that supports it.
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
8 files changed, 96 insertions, 9 deletions
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt index 7181f925acaa..0211c6d8a522 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt | |||
@@ -46,7 +46,7 @@ Valid values for pins are: | |||
46 | gpio0-gpio89 | 46 | gpio0-gpio89 |
47 | 47 | ||
48 | Valid values for function are: | 48 | Valid values for function are: |
49 | cam_mclk, codec_mic_i2s, codec_spkr_i2s, gsbi1, gsbi2, gsbi3, gsbi4, | 49 | cam_mclk, codec_mic_i2s, codec_spkr_i2s, gpio, gsbi1, gsbi2, gsbi3, gsbi4, |
50 | gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, | 50 | gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, |
51 | gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1, | 51 | gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1, |
52 | gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, | 52 | gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm, |
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt index e0d35a40981b..e33e4dcdce79 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt | |||
@@ -51,7 +51,7 @@ Valid values for qcom,pins are: | |||
51 | 51 | ||
52 | 52 | ||
53 | Valid values for function are: | 53 | Valid values for function are: |
54 | mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gsbi1, gsbi2, gsbi4, gsbi5, | 54 | mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5, |
55 | gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1, | 55 | gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1, |
56 | spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata, | 56 | spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata, |
57 | pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt, | 57 | pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt, |
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt index 7dece8de54b6..93b7de91b9f6 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt | |||
@@ -83,7 +83,7 @@ to specify in a pin configuration subnode: | |||
83 | sdc3_data | 83 | sdc3_data |
84 | 84 | ||
85 | - function: | 85 | - function: |
86 | Usage: optional | 86 | Usage: required |
87 | Value type: <string> | 87 | Value type: <string> |
88 | Definition: Specify the alternative function to be configured for the | 88 | Definition: Specify the alternative function to be configured for the |
89 | specified pins. Functions are only valid for gpio pins. | 89 | specified pins. Functions are only valid for gpio pins. |
@@ -92,7 +92,7 @@ to specify in a pin configuration subnode: | |||
92 | codec_mic_i2s, codec_spkr_i2s, ext_gps, fm, gps_blanking, | 92 | codec_mic_i2s, codec_spkr_i2s, ext_gps, fm, gps_blanking, |
93 | gps_pps_in, gps_pps_out, gp_clk_0a, gp_clk_0b, gp_clk_1a, | 93 | gps_pps_in, gps_pps_out, gp_clk_0a, gp_clk_0b, gp_clk_1a, |
94 | gp_clk_1b, gp_clk_2a, gp_clk_2b, gp_mn, gp_pdm_0a, | 94 | gp_clk_1b, gp_clk_2a, gp_clk_2b, gp_mn, gp_pdm_0a, |
95 | gp_pdm_0b, gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b, | 95 | gp_pdm_0b, gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b, gpio, |
96 | gsbi1, gsbi1_spi_cs1_n, gsbi1_spi_cs2a_n, gsbi1_spi_cs2b_n, | 96 | gsbi1, gsbi1_spi_cs1_n, gsbi1_spi_cs2a_n, gsbi1_spi_cs2b_n, |
97 | gsbi1_spi_cs3_n, gsbi2, gsbi2_spi_cs1_n, gsbi2_spi_cs2_n, | 97 | gsbi1_spi_cs3_n, gsbi2, gsbi2_spi_cs1_n, gsbi2_spi_cs2_n, |
98 | gsbi2_spi_cs3_n, gsbi3, gsbi4, gsbi4_3d_cam_i2c_l, | 98 | gsbi2_spi_cs3_n, gsbi3, gsbi4, gsbi4_3d_cam_i2c_l, |
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt index 73262b575dfc..d2ea80dc43eb 100644 --- a/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt | |||
@@ -70,7 +70,7 @@ Valid values for function are: | |||
70 | cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc, | 70 | cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc, |
71 | hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk, | 71 | hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk, |
72 | gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s, | 72 | gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s, |
73 | ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus | 73 | ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, gpio |
74 | 74 | ||
75 | (Note that this is not yet the complete list of functions) | 75 | (Note that this is not yet the complete list of functions) |
76 | 76 | ||
diff --git a/drivers/pinctrl/qcom/pinctrl-apq8064.c b/drivers/pinctrl/qcom/pinctrl-apq8064.c index 519f7886b0f1..feb6f152f9b7 100644 --- a/drivers/pinctrl/qcom/pinctrl-apq8064.c +++ b/drivers/pinctrl/qcom/pinctrl-apq8064.c | |||
@@ -230,7 +230,7 @@ static const unsigned int sdc3_data_pins[] = { 95 }; | |||
230 | .pins = gpio##id##_pins, \ | 230 | .pins = gpio##id##_pins, \ |
231 | .npins = ARRAY_SIZE(gpio##id##_pins), \ | 231 | .npins = ARRAY_SIZE(gpio##id##_pins), \ |
232 | .funcs = (int[]){ \ | 232 | .funcs = (int[]){ \ |
233 | APQ_MUX_NA, /* gpio mode */ \ | 233 | APQ_MUX_gpio, \ |
234 | APQ_MUX_##f1, \ | 234 | APQ_MUX_##f1, \ |
235 | APQ_MUX_##f2, \ | 235 | APQ_MUX_##f2, \ |
236 | APQ_MUX_##f3, \ | 236 | APQ_MUX_##f3, \ |
@@ -293,6 +293,7 @@ enum apq8064_functions { | |||
293 | APQ_MUX_cam_mclk, | 293 | APQ_MUX_cam_mclk, |
294 | APQ_MUX_codec_mic_i2s, | 294 | APQ_MUX_codec_mic_i2s, |
295 | APQ_MUX_codec_spkr_i2s, | 295 | APQ_MUX_codec_spkr_i2s, |
296 | APQ_MUX_gpio, | ||
296 | APQ_MUX_gsbi1, | 297 | APQ_MUX_gsbi1, |
297 | APQ_MUX_gsbi2, | 298 | APQ_MUX_gsbi2, |
298 | APQ_MUX_gsbi3, | 299 | APQ_MUX_gsbi3, |
@@ -335,6 +336,21 @@ static const char * const codec_mic_i2s_groups[] = { | |||
335 | static const char * const codec_spkr_i2s_groups[] = { | 336 | static const char * const codec_spkr_i2s_groups[] = { |
336 | "gpio39", "gpio40", "gpio41", "gpio42" | 337 | "gpio39", "gpio40", "gpio41", "gpio42" |
337 | }; | 338 | }; |
339 | static const char * const gpio_groups[] = { | ||
340 | "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", | ||
341 | "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", | ||
342 | "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", | ||
343 | "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", | ||
344 | "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", | ||
345 | "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", | ||
346 | "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", | ||
347 | "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", | ||
348 | "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", | ||
349 | "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", | ||
350 | "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", | ||
351 | "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", | ||
352 | "gpio85", "gpio86", "gpio87", "gpio88", "gpio89" | ||
353 | }; | ||
338 | static const char * const gsbi1_groups[] = { | 354 | static const char * const gsbi1_groups[] = { |
339 | "gpio18", "gpio19", "gpio20", "gpio21" | 355 | "gpio18", "gpio19", "gpio20", "gpio21" |
340 | }; | 356 | }; |
@@ -430,6 +446,7 @@ static const struct msm_function apq8064_functions[] = { | |||
430 | FUNCTION(cam_mclk), | 446 | FUNCTION(cam_mclk), |
431 | FUNCTION(codec_mic_i2s), | 447 | FUNCTION(codec_mic_i2s), |
432 | FUNCTION(codec_spkr_i2s), | 448 | FUNCTION(codec_spkr_i2s), |
449 | FUNCTION(gpio), | ||
433 | FUNCTION(gsbi1), | 450 | FUNCTION(gsbi1), |
434 | FUNCTION(gsbi2), | 451 | FUNCTION(gsbi2), |
435 | FUNCTION(gsbi3), | 452 | FUNCTION(gsbi3), |
diff --git a/drivers/pinctrl/qcom/pinctrl-ipq8064.c b/drivers/pinctrl/qcom/pinctrl-ipq8064.c index acafea4c3a33..767cf1120b20 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq8064.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq8064.c | |||
@@ -183,7 +183,7 @@ static const unsigned int sdc3_data_pins[] = { 71 }; | |||
183 | .pins = gpio##id##_pins, \ | 183 | .pins = gpio##id##_pins, \ |
184 | .npins = ARRAY_SIZE(gpio##id##_pins), \ | 184 | .npins = ARRAY_SIZE(gpio##id##_pins), \ |
185 | .funcs = (int[]){ \ | 185 | .funcs = (int[]){ \ |
186 | IPQ_MUX_NA, /* gpio mode */ \ | 186 | IPQ_MUX_gpio, \ |
187 | IPQ_MUX_##f1, \ | 187 | IPQ_MUX_##f1, \ |
188 | IPQ_MUX_##f2, \ | 188 | IPQ_MUX_##f2, \ |
189 | IPQ_MUX_##f3, \ | 189 | IPQ_MUX_##f3, \ |
@@ -243,6 +243,7 @@ static const unsigned int sdc3_data_pins[] = { 71 }; | |||
243 | } | 243 | } |
244 | 244 | ||
245 | enum ipq8064_functions { | 245 | enum ipq8064_functions { |
246 | IPQ_MUX_gpio, | ||
246 | IPQ_MUX_mdio, | 247 | IPQ_MUX_mdio, |
247 | IPQ_MUX_mi2s, | 248 | IPQ_MUX_mi2s, |
248 | IPQ_MUX_pdm, | 249 | IPQ_MUX_pdm, |
@@ -291,6 +292,19 @@ enum ipq8064_functions { | |||
291 | IPQ_MUX_NA, | 292 | IPQ_MUX_NA, |
292 | }; | 293 | }; |
293 | 294 | ||
295 | static const char * const gpio_groups[] = { | ||
296 | "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", | ||
297 | "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", | ||
298 | "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", | ||
299 | "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", | ||
300 | "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", | ||
301 | "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", | ||
302 | "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", | ||
303 | "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", | ||
304 | "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", | ||
305 | "gpio64", "gpio65", "gpio66", "gpio67", "gpio68" | ||
306 | }; | ||
307 | |||
294 | static const char * const mdio_groups[] = { | 308 | static const char * const mdio_groups[] = { |
295 | "gpio0", "gpio1", "gpio10", "gpio11", | 309 | "gpio0", "gpio1", "gpio10", "gpio11", |
296 | }; | 310 | }; |
@@ -481,6 +495,7 @@ static const char * const ps_hold_groups[] = { | |||
481 | }; | 495 | }; |
482 | 496 | ||
483 | static const struct msm_function ipq8064_functions[] = { | 497 | static const struct msm_function ipq8064_functions[] = { |
498 | FUNCTION(gpio), | ||
484 | FUNCTION(mdio), | 499 | FUNCTION(mdio), |
485 | FUNCTION(ssbi), | 500 | FUNCTION(ssbi), |
486 | FUNCTION(spmi), | 501 | FUNCTION(spmi), |
diff --git a/drivers/pinctrl/qcom/pinctrl-msm8960.c b/drivers/pinctrl/qcom/pinctrl-msm8960.c index 564543bb2c1c..35047036a053 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8960.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8960.c | |||
@@ -355,7 +355,7 @@ static const unsigned int sdc3_data_pins[] = { 157 }; | |||
355 | .pins = gpio##id##_pins, \ | 355 | .pins = gpio##id##_pins, \ |
356 | .npins = ARRAY_SIZE(gpio##id##_pins), \ | 356 | .npins = ARRAY_SIZE(gpio##id##_pins), \ |
357 | .funcs = (int[]){ \ | 357 | .funcs = (int[]){ \ |
358 | MSM_MUX_NA, /* gpio mode */ \ | 358 | MSM_MUX_gpio, \ |
359 | MSM_MUX_##f1, \ | 359 | MSM_MUX_##f1, \ |
360 | MSM_MUX_##f2, \ | 360 | MSM_MUX_##f2, \ |
361 | MSM_MUX_##f3, \ | 361 | MSM_MUX_##f3, \ |
@@ -441,6 +441,7 @@ enum msm8960_functions { | |||
441 | MSM_MUX_gp_pdm_1b, | 441 | MSM_MUX_gp_pdm_1b, |
442 | MSM_MUX_gp_pdm_2a, | 442 | MSM_MUX_gp_pdm_2a, |
443 | MSM_MUX_gp_pdm_2b, | 443 | MSM_MUX_gp_pdm_2b, |
444 | MSM_MUX_gpio, | ||
444 | MSM_MUX_gsbi1, | 445 | MSM_MUX_gsbi1, |
445 | MSM_MUX_gsbi1_spi_cs1_n, | 446 | MSM_MUX_gsbi1_spi_cs1_n, |
446 | MSM_MUX_gsbi1_spi_cs2a_n, | 447 | MSM_MUX_gsbi1_spi_cs2a_n, |
@@ -622,6 +623,32 @@ static const char * const gp_pdm_2b_groups[] = { | |||
622 | "gpio53" | 623 | "gpio53" |
623 | }; | 624 | }; |
624 | 625 | ||
626 | static const char * const gpio_groups[] = { | ||
627 | "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", | ||
628 | "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", | ||
629 | "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", | ||
630 | "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", | ||
631 | "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", | ||
632 | "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", | ||
633 | "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", | ||
634 | "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", | ||
635 | "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", | ||
636 | "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", | ||
637 | "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", | ||
638 | "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", | ||
639 | "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", | ||
640 | "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", | ||
641 | "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104", | ||
642 | "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110", | ||
643 | "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116", | ||
644 | "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122", | ||
645 | "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", | ||
646 | "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", | ||
647 | "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", | ||
648 | "gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "gpio146", | ||
649 | "gpio147", "gpio148", "gpio149", "gpio150", "gpio151" | ||
650 | }; | ||
651 | |||
625 | static const char * const gsbi1_groups[] = { | 652 | static const char * const gsbi1_groups[] = { |
626 | "gpio6", "gpio7", "gpio8", "gpio9" | 653 | "gpio6", "gpio7", "gpio8", "gpio9" |
627 | }; | 654 | }; |
@@ -961,6 +988,7 @@ static const struct msm_function msm8960_functions[] = { | |||
961 | FUNCTION(gp_pdm_1b), | 988 | FUNCTION(gp_pdm_1b), |
962 | FUNCTION(gp_pdm_2a), | 989 | FUNCTION(gp_pdm_2a), |
963 | FUNCTION(gp_pdm_2b), | 990 | FUNCTION(gp_pdm_2b), |
991 | FUNCTION(gpio), | ||
964 | FUNCTION(gsbi1), | 992 | FUNCTION(gsbi1), |
965 | FUNCTION(gsbi1_spi_cs1_n), | 993 | FUNCTION(gsbi1_spi_cs1_n), |
966 | FUNCTION(gsbi1_spi_cs2a_n), | 994 | FUNCTION(gsbi1_spi_cs2a_n), |
diff --git a/drivers/pinctrl/qcom/pinctrl-msm8x74.c b/drivers/pinctrl/qcom/pinctrl-msm8x74.c index 418306911a6f..8c9720154d1e 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8x74.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8x74.c | |||
@@ -342,7 +342,7 @@ static const unsigned int sdc2_data_pins[] = { 151 }; | |||
342 | .pins = gpio##id##_pins, \ | 342 | .pins = gpio##id##_pins, \ |
343 | .npins = ARRAY_SIZE(gpio##id##_pins), \ | 343 | .npins = ARRAY_SIZE(gpio##id##_pins), \ |
344 | .funcs = (int[]){ \ | 344 | .funcs = (int[]){ \ |
345 | MSM_MUX_NA, /* gpio mode */ \ | 345 | MSM_MUX_gpio, \ |
346 | MSM_MUX_##f1, \ | 346 | MSM_MUX_##f1, \ |
347 | MSM_MUX_##f2, \ | 347 | MSM_MUX_##f2, \ |
348 | MSM_MUX_##f3, \ | 348 | MSM_MUX_##f3, \ |
@@ -402,6 +402,7 @@ static const unsigned int sdc2_data_pins[] = { 151 }; | |||
402 | * the pingroup table below. | 402 | * the pingroup table below. |
403 | */ | 403 | */ |
404 | enum msm8x74_functions { | 404 | enum msm8x74_functions { |
405 | MSM_MUX_gpio, | ||
405 | MSM_MUX_cci_i2c0, | 406 | MSM_MUX_cci_i2c0, |
406 | MSM_MUX_cci_i2c1, | 407 | MSM_MUX_cci_i2c1, |
407 | MSM_MUX_blsp_i2c1, | 408 | MSM_MUX_blsp_i2c1, |
@@ -509,6 +510,31 @@ enum msm8x74_functions { | |||
509 | MSM_MUX_NA, | 510 | MSM_MUX_NA, |
510 | }; | 511 | }; |
511 | 512 | ||
513 | static const char * const gpio_groups[] = { | ||
514 | "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", | ||
515 | "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", | ||
516 | "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", | ||
517 | "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", | ||
518 | "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", | ||
519 | "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", | ||
520 | "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", | ||
521 | "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", | ||
522 | "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", | ||
523 | "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", | ||
524 | "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", | ||
525 | "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", | ||
526 | "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", | ||
527 | "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", | ||
528 | "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104", | ||
529 | "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110", | ||
530 | "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116", | ||
531 | "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122", | ||
532 | "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", | ||
533 | "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", | ||
534 | "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", | ||
535 | "gpio141", "gpio142", "gpio143", "gpio144", "gpio145" | ||
536 | }; | ||
537 | |||
512 | static const char * const blsp_uart1_groups[] = { | 538 | static const char * const blsp_uart1_groups[] = { |
513 | "gpio0", "gpio1", "gpio2", "gpio3" | 539 | "gpio0", "gpio1", "gpio2", "gpio3" |
514 | }; | 540 | }; |
@@ -728,6 +754,7 @@ static const char * const wlan_groups[] = { | |||
728 | static const char * const slimbus_groups[] = { "gpio70", "gpio71" }; | 754 | static const char * const slimbus_groups[] = { "gpio70", "gpio71" }; |
729 | 755 | ||
730 | static const struct msm_function msm8x74_functions[] = { | 756 | static const struct msm_function msm8x74_functions[] = { |
757 | FUNCTION(gpio), | ||
731 | FUNCTION(cci_i2c0), | 758 | FUNCTION(cci_i2c0), |
732 | FUNCTION(cci_i2c1), | 759 | FUNCTION(cci_i2c1), |
733 | FUNCTION(uim1), | 760 | FUNCTION(uim1), |