diff mbox series

pinctrl: qcom: sc7180: Make gpio28 non wakeup capable

Message ID 1592224927-28576-1-git-send-email-rnayak@codeaurora.org
State New
Headers show
Series pinctrl: qcom: sc7180: Make gpio28 non wakeup capable | expand

Commit Message

Rajendra Nayak June 15, 2020, 12:42 p.m. UTC
The PDC irqchip driver currently does not handle dual-edge interrupts,
and we have atleast one board with sc7180 designed to configure gpio28
as a dual-edge interrupt. This interrupt is however not expected to be
wakeup capable, so an easy way to fix this, seems to be to make this
gpio non wakeup capable and let TLMM handle it.

It would have been nice to be able to do this only for the particular
board with this design, however this change of removing gpio28 from the
pinctrl SoC file means we end up with one less wakeup capable gpio for
the entire SoC.

Reported-by: Jimmy Cheng-Yi Chiang <cychiang@google.com>
Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
---
 drivers/pinctrl/qcom/pinctrl-sc7180.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Linus Walleij June 20, 2020, 9:03 p.m. UTC | #1
On Mon, Jun 15, 2020 at 2:42 PM Rajendra Nayak <rnayak@codeaurora.org> wrote:

> It would have been nice to be able to do this only for the particular
> board with this design, however this change of removing gpio28 from the
> pinctrl SoC file means we end up with one less wakeup capable gpio for
> the entire SoC.

Yeah but what about only removing it for this board in the driver then?

> @@ -1122,7 +1122,7 @@ static const struct msm_pingroup sc7180_groups[] = {
>  static const struct msm_gpio_wakeirq_map sc7180_pdc_map[] = {
>         {0, 40}, {3, 50}, {4, 42}, {5, 70}, {6, 41}, {9, 35},
>         {10, 80}, {11, 51}, {16, 20}, {21, 55}, {22, 90}, {23, 21},
> -       {24, 61}, {26, 52}, {28, 36}, {30, 100}, {31, 33}, {32, 81},
> +       {24, 61}, {26, 52}, {30, 100}, {31, 33}, {32, 81},
>         {33, 62}, {34, 43}, {36, 91}, {37, 53}, {38, 63}, {39, 72},
>         {41, 101}, {42, 7}, {43, 34}, {45, 73}, {47, 82}, {49, 17},
>         {52, 109}, {53, 102}, {55, 92}, {56, 56}, {57, 57}, {58, 83},

Make a copy of this tuple-array and in sc7180_pinctrl_probe()
set sc7180_pinctrl.wakeirq_map and .nwakeirq_map to something
board specific like that:

if (of_machine_is_compatible("my,board")) {
    sc7180_pinctrl..wakeirq_map = ... ;
}

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/pinctrl/qcom/pinctrl-sc7180.c b/drivers/pinctrl/qcom/pinctrl-sc7180.c
index 1b6465a..3afcc01 100644
--- a/drivers/pinctrl/qcom/pinctrl-sc7180.c
+++ b/drivers/pinctrl/qcom/pinctrl-sc7180.c
@@ -1122,7 +1122,7 @@  static const struct msm_pingroup sc7180_groups[] = {
 static const struct msm_gpio_wakeirq_map sc7180_pdc_map[] = {
 	{0, 40}, {3, 50}, {4, 42}, {5, 70}, {6, 41}, {9, 35},
 	{10, 80}, {11, 51}, {16, 20}, {21, 55}, {22, 90}, {23, 21},
-	{24, 61}, {26, 52}, {28, 36}, {30, 100}, {31, 33}, {32, 81},
+	{24, 61}, {26, 52}, {30, 100}, {31, 33}, {32, 81},
 	{33, 62}, {34, 43}, {36, 91}, {37, 53}, {38, 63}, {39, 72},
 	{41, 101}, {42, 7}, {43, 34}, {45, 73}, {47, 82}, {49, 17},
 	{52, 109}, {53, 102}, {55, 92}, {56, 56}, {57, 57}, {58, 83},