aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@sonymobile.com>2014-07-11 21:21:24 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-07-22 10:31:58 -0400
commit144ef62645a7725a0a442129a8750baf257e88b9 (patch)
treec1073a36400ae8b2bed66a037e49d76ec2b1da95
parent3a19805920f1b07401ea8a3ca00d7568dc2ce5e9 (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>
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt2
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt4
-rw-r--r--Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt2
-rw-r--r--drivers/pinctrl/qcom/pinctrl-apq8064.c19
-rw-r--r--drivers/pinctrl/qcom/pinctrl-ipq8064.c17
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm8960.c30
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm8x74.c29
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
48Valid values for function are: 48Valid 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
53Valid values for function are: 53Valid 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[] = {
335static const char * const codec_spkr_i2s_groups[] = { 336static const char * const codec_spkr_i2s_groups[] = {
336 "gpio39", "gpio40", "gpio41", "gpio42" 337 "gpio39", "gpio40", "gpio41", "gpio42"
337}; 338};
339static 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};
338static const char * const gsbi1_groups[] = { 354static 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
245enum ipq8064_functions { 245enum 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
295static 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
294static const char * const mdio_groups[] = { 308static 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
483static const struct msm_function ipq8064_functions[] = { 497static 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
626static 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
625static const char * const gsbi1_groups[] = { 652static 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 */
404enum msm8x74_functions { 404enum 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
513static 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
512static const char * const blsp_uart1_groups[] = { 538static 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[] = {
728static const char * const slimbus_groups[] = { "gpio70", "gpio71" }; 754static const char * const slimbus_groups[] = { "gpio70", "gpio71" };
729 755
730static const struct msm_function msm8x74_functions[] = { 756static 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),