]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
pinctrl: qcom: Make muxing of gpio function explicit
authorBjorn Andersson <bjorn.andersson@sonymobile.com>
Sat, 12 Jul 2014 01:21:24 +0000 (18:21 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 22 Jul 2014 14:31:58 +0000 (16:31 +0200)
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>
Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt
Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.txt
Documentation/devicetree/bindings/pinctrl/qcom,msm8960-pinctrl.txt
Documentation/devicetree/bindings/pinctrl/qcom,msm8974-pinctrl.txt
drivers/pinctrl/qcom/pinctrl-apq8064.c
drivers/pinctrl/qcom/pinctrl-ipq8064.c
drivers/pinctrl/qcom/pinctrl-msm8960.c
drivers/pinctrl/qcom/pinctrl-msm8x74.c

index 7181f925acaaa8c82a16fb22393d0c70ae193089..0211c6d8a5229e17866eb90f751a015ffaf609a0 100644 (file)
@@ -46,7 +46,7 @@ Valid values for pins are:
   gpio0-gpio89
 
 Valid values for function are:
-  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gsbi1, gsbi2, gsbi3, gsbi4,
+  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
   gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
   gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
   gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
index e0d35a40981be7deafba5d6da370be4b6c68d685..e33e4dcdce79bdfb51e17b4ab1bbb5602db569b0 100644 (file)
@@ -51,7 +51,7 @@ Valid values for qcom,pins are:
 
 
 Valid values for function are:
-  mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gsbi1, gsbi2, gsbi4, gsbi5,
+  mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5,
   gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1,
   spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata,
   pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt,
index 7dece8de54b6a8af020a9f14fdbdd6bb3c8499db..93b7de91b9f6f62d824436c003ee332705a1efdb 100644 (file)
@@ -83,7 +83,7 @@ to specify in a pin configuration subnode:
                    sdc3_data
 
 - function:
-       Usage: optional
+       Usage: required
        Value type: <string>
        Definition: Specify the alternative function to be configured for the
                    specified pins. Functions are only valid for gpio pins.
@@ -92,7 +92,7 @@ to specify in a pin configuration subnode:
                    codec_mic_i2s, codec_spkr_i2s, ext_gps, fm, gps_blanking,
                    gps_pps_in, gps_pps_out, gp_clk_0a, gp_clk_0b, gp_clk_1a,
                    gp_clk_1b, gp_clk_2a, gp_clk_2b, gp_mn, gp_pdm_0a,
-                   gp_pdm_0b, gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b,
+                   gp_pdm_0b, gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b, gpio,
                    gsbi1, gsbi1_spi_cs1_n, gsbi1_spi_cs2a_n, gsbi1_spi_cs2b_n,
                    gsbi1_spi_cs3_n, gsbi2, gsbi2_spi_cs1_n, gsbi2_spi_cs2_n,
                    gsbi2_spi_cs3_n, gsbi3, gsbi4, gsbi4_3d_cam_i2c_l,
index 73262b575dfc2481b8cf1925a7652dc9020f656d..d2ea80dc43ebca126558ed3f97d8a395f1b63c7c 100644 (file)
@@ -70,7 +70,7 @@ Valid values for function are:
   cam_mckl0, cam_mclk1, cam_mclk2, cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc,
   hdmi_hpd, edp_hpd, gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk,
   gp_mn, tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, spkr_mi2s,
-  ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus
+  ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, gpio
 
   (Note that this is not yet the complete list of functions)
 
index 519f7886b0f125573602da900fb36d90efacfa3f..feb6f152f9b793ec8e4e70eedce0c4b29790b4f5 100644 (file)
@@ -230,7 +230,7 @@ static const unsigned int sdc3_data_pins[] = { 95 };
                .pins = gpio##id##_pins,                \
                .npins = ARRAY_SIZE(gpio##id##_pins),   \
                .funcs = (int[]){                       \
-                       APQ_MUX_NA, /* gpio mode */     \
+                       APQ_MUX_gpio,                   \
                        APQ_MUX_##f1,                   \
                        APQ_MUX_##f2,                   \
                        APQ_MUX_##f3,                   \
@@ -293,6 +293,7 @@ enum apq8064_functions {
        APQ_MUX_cam_mclk,
        APQ_MUX_codec_mic_i2s,
        APQ_MUX_codec_spkr_i2s,
+       APQ_MUX_gpio,
        APQ_MUX_gsbi1,
        APQ_MUX_gsbi2,
        APQ_MUX_gsbi3,
@@ -335,6 +336,21 @@ static const char * const codec_mic_i2s_groups[] = {
 static const char * const codec_spkr_i2s_groups[] = {
        "gpio39", "gpio40", "gpio41", "gpio42"
 };
+static const char * const gpio_groups[] = {
+       "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
+       "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
+       "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
+       "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
+       "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
+       "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
+       "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
+       "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
+       "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
+       "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
+       "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
+       "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
+       "gpio85", "gpio86", "gpio87", "gpio88", "gpio89"
+};
 static const char * const gsbi1_groups[] = {
        "gpio18", "gpio19", "gpio20", "gpio21"
 };
@@ -430,6 +446,7 @@ static const struct msm_function apq8064_functions[] = {
        FUNCTION(cam_mclk),
        FUNCTION(codec_mic_i2s),
        FUNCTION(codec_spkr_i2s),
+       FUNCTION(gpio),
        FUNCTION(gsbi1),
        FUNCTION(gsbi2),
        FUNCTION(gsbi3),
index acafea4c3a336faa3de8f48479a081242f20ae4f..767cf1120b2073080a7d78749997bf4bf279ab90 100644 (file)
@@ -183,7 +183,7 @@ static const unsigned int sdc3_data_pins[] = { 71 };
                .pins = gpio##id##_pins,                \
                .npins = ARRAY_SIZE(gpio##id##_pins),   \
                .funcs = (int[]){                       \
-                       IPQ_MUX_NA, /* gpio mode */     \
+                       IPQ_MUX_gpio,                   \
                        IPQ_MUX_##f1,                   \
                        IPQ_MUX_##f2,                   \
                        IPQ_MUX_##f3,                   \
@@ -243,6 +243,7 @@ static const unsigned int sdc3_data_pins[] = { 71 };
        }
 
 enum ipq8064_functions {
+       IPQ_MUX_gpio,
        IPQ_MUX_mdio,
        IPQ_MUX_mi2s,
        IPQ_MUX_pdm,
@@ -291,6 +292,19 @@ enum ipq8064_functions {
        IPQ_MUX_NA,
 };
 
+static const char * const gpio_groups[] = {
+       "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
+       "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
+       "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
+       "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
+       "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
+       "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
+       "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
+       "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
+       "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
+       "gpio64", "gpio65", "gpio66", "gpio67", "gpio68"
+};
+
 static const char * const mdio_groups[] = {
        "gpio0", "gpio1", "gpio10", "gpio11",
 };
@@ -481,6 +495,7 @@ static const char * const ps_hold_groups[] = {
 };
 
 static const struct msm_function ipq8064_functions[] = {
+       FUNCTION(gpio),
        FUNCTION(mdio),
        FUNCTION(ssbi),
        FUNCTION(spmi),
index 564543bb2c1c044df89bedf31bbe6055fc1ef224..35047036a053c1df2040ba590d0b9d6e395d053f 100644 (file)
@@ -355,7 +355,7 @@ static const unsigned int sdc3_data_pins[] = { 157 };
                .pins = gpio##id##_pins,                \
                .npins = ARRAY_SIZE(gpio##id##_pins),   \
                .funcs = (int[]){                       \
-                       MSM_MUX_NA, /* gpio mode */     \
+                       MSM_MUX_gpio,                   \
                        MSM_MUX_##f1,                   \
                        MSM_MUX_##f2,                   \
                        MSM_MUX_##f3,                   \
@@ -441,6 +441,7 @@ enum msm8960_functions {
        MSM_MUX_gp_pdm_1b,
        MSM_MUX_gp_pdm_2a,
        MSM_MUX_gp_pdm_2b,
+       MSM_MUX_gpio,
        MSM_MUX_gsbi1,
        MSM_MUX_gsbi1_spi_cs1_n,
        MSM_MUX_gsbi1_spi_cs2a_n,
@@ -622,6 +623,32 @@ static const char * const gp_pdm_2b_groups[] = {
        "gpio53"
 };
 
+static const char * const gpio_groups[] = {
+       "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
+       "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
+       "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
+       "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
+       "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
+       "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
+       "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
+       "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
+       "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
+       "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
+       "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
+       "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
+       "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
+       "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
+       "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
+       "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
+       "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
+       "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
+       "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
+       "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134",
+       "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140",
+       "gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "gpio146",
+       "gpio147", "gpio148", "gpio149", "gpio150", "gpio151"
+};
+
 static const char * const gsbi1_groups[] = {
        "gpio6", "gpio7", "gpio8", "gpio9"
 };
@@ -961,6 +988,7 @@ static const struct msm_function msm8960_functions[] = {
        FUNCTION(gp_pdm_1b),
        FUNCTION(gp_pdm_2a),
        FUNCTION(gp_pdm_2b),
+       FUNCTION(gpio),
        FUNCTION(gsbi1),
        FUNCTION(gsbi1_spi_cs1_n),
        FUNCTION(gsbi1_spi_cs2a_n),
index 418306911a6f5f6f03d7e5a644ee566e527927ad..8c9720154d1e61fc2980b78eb96fa5333d6aa43b 100644 (file)
@@ -342,7 +342,7 @@ static const unsigned int sdc2_data_pins[] = { 151 };
                .pins = gpio##id##_pins,                \
                .npins = ARRAY_SIZE(gpio##id##_pins),   \
                .funcs = (int[]){                       \
-                       MSM_MUX_NA, /* gpio mode */     \
+                       MSM_MUX_gpio,                   \
                        MSM_MUX_##f1,                   \
                        MSM_MUX_##f2,                   \
                        MSM_MUX_##f3,                   \
@@ -402,6 +402,7 @@ static const unsigned int sdc2_data_pins[] = { 151 };
  * the pingroup table below.
  */
 enum msm8x74_functions {
+       MSM_MUX_gpio,
        MSM_MUX_cci_i2c0,
        MSM_MUX_cci_i2c1,
        MSM_MUX_blsp_i2c1,
@@ -509,6 +510,31 @@ enum msm8x74_functions {
        MSM_MUX_NA,
 };
 
+static const char * const gpio_groups[] = {
+       "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
+       "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
+       "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
+       "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
+       "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
+       "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
+       "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
+       "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
+       "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
+       "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
+       "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
+       "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84",
+       "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91",
+       "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98",
+       "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104",
+       "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110",
+       "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116",
+       "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122",
+       "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128",
+       "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134",
+       "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140",
+       "gpio141", "gpio142", "gpio143", "gpio144", "gpio145"
+};
+
 static const char * const blsp_uart1_groups[] = {
        "gpio0", "gpio1", "gpio2", "gpio3"
 };
@@ -728,6 +754,7 @@ static const char * const wlan_groups[] = {
 static const char * const slimbus_groups[] = { "gpio70", "gpio71" };
 
 static const struct msm_function msm8x74_functions[] = {
+       FUNCTION(gpio),
        FUNCTION(cci_i2c0),
        FUNCTION(cci_i2c1),
        FUNCTION(uim1),