pinctrl: qcom: sc7280: Add egpio support
authorRajendra Nayak <rnayak@codeaurora.org>
Tue, 16 Nov 2021 05:38:04 +0000 (11:08 +0530)
committerLinus Walleij <linus.walleij@linaro.org>
Sun, 21 Nov 2021 23:27:54 +0000 (00:27 +0100)
sc7280 supports the egpio feature, GPIOs ranging from 144 to 174
(31 GPIOs) support it, we define gpio_func to 9, which
is an unused function for all these pins on sc7280.

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/1637041084-3299-2-git-send-email-rnayak@codeaurora.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/qcom/pinctrl-sc7280.c

index 9017ede..31df55c 100644 (file)
@@ -43,6 +43,8 @@
                .mux_bit = 2,                   \
                .pull_bit = 0,                  \
                .drv_bit = 6,                   \
+               .egpio_enable = 12,             \
+               .egpio_present = 11,            \
                .oe_bit = 9,                    \
                .in_bit = 0,                    \
                .out_bit = 1,                   \
@@ -520,6 +522,7 @@ enum sc7280_functions {
        msm_mux_dp_lcd,
        msm_mux_edp_hot,
        msm_mux_edp_lcd,
+       msm_mux_egpio,
        msm_mux_gcc_gp1,
        msm_mux_gcc_gp2,
        msm_mux_gcc_gp3,
@@ -658,6 +661,14 @@ static const char * const gpio_groups[] = {
        "gpio165", "gpio166", "gpio167", "gpio168", "gpio169", "gpio170",
        "gpio171", "gpio172", "gpio173", "gpio174",
 };
+static const char * const egpio_groups[] = {
+       "gpio144", "gpio145", "gpio146", "gpio147", "gpio148", "gpio149",
+       "gpio150", "gpio151", "gpio152", "gpio153", "gpio154", "gpio155",
+       "gpio156", "gpio157", "gpio158", "gpio159", "gpio160", "gpio161",
+       "gpio162", "gpio163", "gpio164", "gpio165", "gpio166", "gpio167",
+       "gpio168", "gpio169", "gpio170", "gpio171", "gpio172", "gpio173",
+       "gpio174",
+};
 static const char * const atest_char_groups[] = {
        "gpio81",
 };
@@ -1150,6 +1161,7 @@ static const struct msm_function sc7280_functions[] = {
        FUNCTION(dp_lcd),
        FUNCTION(edp_hot),
        FUNCTION(edp_lcd),
+       FUNCTION(egpio),
        FUNCTION(gcc_gp1),
        FUNCTION(gcc_gp2),
        FUNCTION(gcc_gp3),
@@ -1408,37 +1420,37 @@ static const struct msm_pingroup sc7280_groups[] = {
        [141] = PINGROUP(141, _, _, _, _, _, _, _, _, _),
        [142] = PINGROUP(142, _, _, _, _, _, _, _, _, _),
        [143] = PINGROUP(143, _, _, _, _, _, _, _, _, _),
-       [144] = PINGROUP(144, _, _, _, _, _, _, _, _, _),
-       [145] = PINGROUP(145, _, _, _, _, _, _, _, _, _),
-       [146] = PINGROUP(146, _, _, _, _, _, _, _, _, _),
-       [147] = PINGROUP(147, _, _, _, _, _, _, _, _, _),
-       [148] = PINGROUP(148, _, _, _, _, _, _, _, _, _),
-       [149] = PINGROUP(149, _, _, _, _, _, _, _, _, _),
-       [150] = PINGROUP(150, qdss, _, _, _, _, _, _, _, _),
-       [151] = PINGROUP(151, qdss, _, _, _, _, _, _, _, _),
-       [152] = PINGROUP(152, qdss, _, _, _, _, _, _, _, _),
-       [153] = PINGROUP(153, qdss, _, _, _, _, _, _, _, _),
-       [154] = PINGROUP(154, _, _, _, _, _, _, _, _, _),
-       [155] = PINGROUP(155, _, _, _, _, _, _, _, _, _),
-       [156] = PINGROUP(156, qdss_cti, _, _, _, _, _, _, _, _),
-       [157] = PINGROUP(157, qdss_cti, _, _, _, _, _, _, _, _),
-       [158] = PINGROUP(158, _, _, _, _, _, _, _, _, _),
-       [159] = PINGROUP(159, _, _, _, _, _, _, _, _, _),
-       [160] = PINGROUP(160, _, _, _, _, _, _, _, _, _),
-       [161] = PINGROUP(161, _, _, _, _, _, _, _, _, _),
-       [162] = PINGROUP(162, _, _, _, _, _, _, _, _, _),
-       [163] = PINGROUP(163, _, _, _, _, _, _, _, _, _),
-       [164] = PINGROUP(164, _, _, _, _, _, _, _, _, _),
-       [165] = PINGROUP(165, qdss_cti, _, _, _, _, _, _, _, _),
-       [166] = PINGROUP(166, qdss_cti, _, _, _, _, _, _, _, _),
-       [167] = PINGROUP(167, _, _, _, _, _, _, _, _, _),
-       [168] = PINGROUP(168, _, _, _, _, _, _, _, _, _),
-       [169] = PINGROUP(169, _, _, _, _, _, _, _, _, _),
-       [170] = PINGROUP(170, _, _, _, _, _, _, _, _, _),
-       [171] = PINGROUP(171, qdss, _, _, _, _, _, _, _, _),
-       [172] = PINGROUP(172, qdss, _, _, _, _, _, _, _, _),
-       [173] = PINGROUP(173, qdss, _, _, _, _, _, _, _, _),
-       [174] = PINGROUP(174, qdss, _, _, _, _, _, _, _, _),
+       [144] = PINGROUP(144, _, _, _, _, _, _, _, _, egpio),
+       [145] = PINGROUP(145, _, _, _, _, _, _, _, _, egpio),
+       [146] = PINGROUP(146, _, _, _, _, _, _, _, _, egpio),
+       [147] = PINGROUP(147, _, _, _, _, _, _, _, _, egpio),
+       [148] = PINGROUP(148, _, _, _, _, _, _, _, _, egpio),
+       [149] = PINGROUP(149, _, _, _, _, _, _, _, _, egpio),
+       [150] = PINGROUP(150, qdss, _, _, _, _, _, _, _, egpio),
+       [151] = PINGROUP(151, qdss, _, _, _, _, _, _, _, egpio),
+       [152] = PINGROUP(152, qdss, _, _, _, _, _, _, _, egpio),
+       [153] = PINGROUP(153, qdss, _, _, _, _, _, _, _, egpio),
+       [154] = PINGROUP(154, _, _, _, _, _, _, _, _, egpio),
+       [155] = PINGROUP(155, _, _, _, _, _, _, _, _, egpio),
+       [156] = PINGROUP(156, qdss_cti, _, _, _, _, _, _, _, egpio),
+       [157] = PINGROUP(157, qdss_cti, _, _, _, _, _, _, _, egpio),
+       [158] = PINGROUP(158, _, _, _, _, _, _, _, _, egpio),
+       [159] = PINGROUP(159, _, _, _, _, _, _, _, _, egpio),
+       [160] = PINGROUP(160, _, _, _, _, _, _, _, _, egpio),
+       [161] = PINGROUP(161, _, _, _, _, _, _, _, _, egpio),
+       [162] = PINGROUP(162, _, _, _, _, _, _, _, _, egpio),
+       [163] = PINGROUP(163, _, _, _, _, _, _, _, _, egpio),
+       [164] = PINGROUP(164, _, _, _, _, _, _, _, _, egpio),
+       [165] = PINGROUP(165, qdss_cti, _, _, _, _, _, _, _, egpio),
+       [166] = PINGROUP(166, qdss_cti, _, _, _, _, _, _, _, egpio),
+       [167] = PINGROUP(167, _, _, _, _, _, _, _, _, egpio),
+       [168] = PINGROUP(168, _, _, _, _, _, _, _, _, egpio),
+       [169] = PINGROUP(169, _, _, _, _, _, _, _, _, egpio),
+       [170] = PINGROUP(170, _, _, _, _, _, _, _, _, egpio),
+       [171] = PINGROUP(171, qdss, _, _, _, _, _, _, _, egpio),
+       [172] = PINGROUP(172, qdss, _, _, _, _, _, _, _, egpio),
+       [173] = PINGROUP(173, qdss, _, _, _, _, _, _, _, egpio),
+       [174] = PINGROUP(174, qdss, _, _, _, _, _, _, _, egpio),
        [175] = UFS_RESET(ufs_reset, 0xbe000),
        [176] = SDC_QDSD_PINGROUP(sdc1_rclk, 0xb3004, 0, 6),
        [177] = SDC_QDSD_PINGROUP(sdc1_clk, 0xb3000, 13, 6),
@@ -1481,6 +1493,7 @@ static const struct msm_pinctrl_soc_data sc7280_pinctrl = {
        .ngpios = 176,
        .wakeirq_map = sc7280_pdc_map,
        .nwakeirq_map = ARRAY_SIZE(sc7280_pdc_map),
+       .egpio_func = 9,
 };
 
 static int sc7280_pinctrl_probe(struct platform_device *pdev)