Skip to contentSkip to conversation

sc7180: Add PDC wakeup interrupt map for GPIOs

PATCH In review Maulik Shah 5 participants 9 messages Oct 30, 2019 – Dec 17, 2019

Subsystems (8)
lore
Share & tools
lore
#0 lore raw

cover sc7180: Add PDC wakeup interrupt map for GPIOs

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Add PDC wakeup interrupt map for sc7180 GPIOs.

This series has dependency on adding device tree support for sc7180 [1] and support wakeup capable GPIOs [2] to merge first.

Dependencies:

[1] https://lkml.org/lkml/2019/10/23/223
[2] https://lkml.org/lkml/2019/9/13/1005

Maulik Shah (2):
pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map
arm64: dts: qcom: sc7180: Add wakeup parent for TLMM

 arch/arm64/boot/dts/qcom/sc7180.dtsi  |  1 +
 drivers/pinctrl/qcom/pinctrl-sc7180.c | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#1 lore raw

PATCH 1/2 pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Provide the interrupt map of the GPIO to its wakeup capable interrupt parent.

---
 drivers/pinctrl/qcom/pinctrl-sc7180.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
drivers/pinctrl/qcom/pinctrl-sc7180.c +18 -0
index 6399c8a..8a2b97c 100644
@@ -1097,6 +1097,22 @@ static const struct msm_pingroup sc7180_groups[] = {
 	[126] = SDC_QDSD_PINGROUP(sdc2_data, 0x97b000, 9, 0),
 };
 
+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},
+	{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},
+	{59, 37}, {62, 110}, {63, 111}, {64, 74}, {65, 44}, {66, 93},
+	{67, 58}, {68, 112}, {69, 32}, {70, 54}, {72, 59}, {73, 64},
+	{74, 71}, {78, 31}, {82, 30}, {85, 103}, {86, 38}, {87, 39},
+	{88, 45}, {89, 46}, {90, 47}, {91, 48}, {92, 60}, {93, 49},
+	{94, 84}, {95, 94}, {98, 65}, {101, 66}, {104, 67}, {109, 104},
+	{110, 68}, {113, 69}, {114, 113}, {115, 108}, {116, 121},
+	{117, 114}, {118, 119},
+};
+
 static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.pins = sc7180_pins,
 	.npins = ARRAY_SIZE(sc7180_pins),
@@ -1107,6 +1123,8 @@ static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.ngpios = 120,
 	.tiles = sc7180_tiles,
 	.ntiles = ARRAY_SIZE(sc7180_tiles),
+	.wakeirq_map = sc7180_pdc_map,
+	.nwakeirq_map = ARRAY_SIZE(sc7180_pdc_map),
 };
 
 static int sc7180_pinctrl_probe(struct platform_device *pdev)
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#2 lore raw

Re: [PATCH 1/2] pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map

Quoted 7 lines · Maulik Shah

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Provide the interrupt map of the GPIO to its wakeup capable interrupt parent.

Looks good to me but I'd like to see Bjorns and preferably also Lina's review on this.

Yours,
Linus Walleij

Reviewed-by on v1 1/2
#3 lore raw

Re: [PATCH 1/2] pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map

In reply to Maulik Shah
Quoted 7 lines · Maulik Shah

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Provide the interrupt map of the GPIO to its wakeup capable interrupt parent.

Quoted 44 lines

---
drivers/pinctrl/qcom/pinctrl-sc7180.c | 18 ++++++++++++++++++

1 file changed, 18 insertions(+)
drivers/pinctrl/qcom/pinctrl-sc7180.c +18 -0
index 6399c8a..8a2b97c 100644
@@ -1097,6 +1097,22 @@ static const struct msm_pingroup sc7180_groups[] = {
 	[126] = SDC_QDSD_PINGROUP(sdc2_data, 0x97b000, 9, 0),
 };
 
+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},
+	{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},
+	{59, 37}, {62, 110}, {63, 111}, {64, 74}, {65, 44}, {66, 93},
+	{67, 58}, {68, 112}, {69, 32}, {70, 54}, {72, 59}, {73, 64},
+	{74, 71}, {78, 31}, {82, 30}, {85, 103}, {86, 38}, {87, 39},
+	{88, 45}, {89, 46}, {90, 47}, {91, 48}, {92, 60}, {93, 49},
+	{94, 84}, {95, 94}, {98, 65}, {101, 66}, {104, 67}, {109, 104},
+	{110, 68}, {113, 69}, {114, 113}, {115, 108}, {116, 121},
+	{117, 114}, {118, 119},
+};
+
 static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.pins = sc7180_pins,
 	.npins = ARRAY_SIZE(sc7180_pins),
@@ -1107,6 +1123,8 @@ static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.ngpios = 120,
 	.tiles = sc7180_tiles,
 	.ntiles = ARRAY_SIZE(sc7180_tiles),
+	.wakeirq_map = sc7180_pdc_map,
+	.nwakeirq_map = ARRAY_SIZE(sc7180_pdc_map),
 };
 
 static int sc7180_pinctrl_probe(struct platform_device *pdev)
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
Acked-by on v1 1/2
#4 lore raw

Re: [PATCH 1/2] pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map

In reply to Maulik Shah
Quoted 7 lines · Maulik Shah

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Provide the interrupt map of the GPIO to its wakeup capable interrupt parent.

@Linus, please take this patch through your tree and I'll take patch 2 through the arm tree.

Regards,
Bjorn

Quoted 44 lines
---
 drivers/pinctrl/qcom/pinctrl-sc7180.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
drivers/pinctrl/qcom/pinctrl-sc7180.c +18 -0
index 6399c8a..8a2b97c 100644
@@ -1097,6 +1097,22 @@ static const struct msm_pingroup sc7180_groups[] = {
 	[126] = SDC_QDSD_PINGROUP(sdc2_data, 0x97b000, 9, 0),
 };
 
+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},
+	{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},
+	{59, 37}, {62, 110}, {63, 111}, {64, 74}, {65, 44}, {66, 93},
+	{67, 58}, {68, 112}, {69, 32}, {70, 54}, {72, 59}, {73, 64},
+	{74, 71}, {78, 31}, {82, 30}, {85, 103}, {86, 38}, {87, 39},
+	{88, 45}, {89, 46}, {90, 47}, {91, 48}, {92, 60}, {93, 49},
+	{94, 84}, {95, 94}, {98, 65}, {101, 66}, {104, 67}, {109, 104},
+	{110, 68}, {113, 69}, {114, 113}, {115, 108}, {116, 121},
+	{117, 114}, {118, 119},
+};
+
 static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.pins = sc7180_pins,
 	.npins = ARRAY_SIZE(sc7180_pins),
@@ -1107,6 +1123,8 @@ static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
 	.ngpios = 120,
 	.tiles = sc7180_tiles,
 	.ntiles = ARRAY_SIZE(sc7180_tiles),
+	.wakeirq_map = sc7180_pdc_map,
+	.nwakeirq_map = ARRAY_SIZE(sc7180_pdc_map),
 };
 
 static int sc7180_pinctrl_probe(struct platform_device *pdev)
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
#5 lore raw

Re: [PATCH 1/2] pinctrl: qcom: sc7180: Add GPIO wakeup interrupt map

In reply to Maulik Shah
Quoted 7 lines · Maulik Shah

GPIOs that can be configured as wakeup sources, have their interrupt lines routed to PDC interrupt controller.

Provide the interrupt map of the GPIO to its wakeup capable interrupt parent.

Patch applied for v5.6 with the ACKs!

Yours,
Linus Walleij

#6 lore raw

PATCH 2/2 arm64: dts: qcom: sc7180: Add wakeup parent for TLMM

In reply to Maulik Shah

Specify wakeup parent irqchip for sc7180 TLMM.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
 1 file changed, 1 insertion(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +1 -0
index 69d5e2c..9040eee 100644
@@ -321,6 +321,7 @@
 			interrupt-controller;
 			#interrupt-cells = <2>;
 			gpio-ranges = <&tlmm 0 0 120>;
+			wakeup-parent = <&pdc>;
 
 			qup_uart2_default: qup-uart2-default {
 				pinmux {
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
Reviewed-by on v1 2/2
#7 lore raw

Re: [PATCH 2/2] arm64: dts: qcom: sc7180: Add wakeup parent for TLMM

Quoted 4 lines · Maulik Shah

Specify wakeup parent irqchip for sc7180 TLMM.

Quoted 20 lines

---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +

1 file changed, 1 insertion(+)
arch/arm64/boot/dts/qcom/sc7180.dtsi +1 -0
index 69d5e2c..9040eee 100644
@@ -321,6 +321,7 @@
 			interrupt-controller;
 			#interrupt-cells = <2>;
 			gpio-ranges = <&tlmm 0 0 120>;
+			wakeup-parent = <&pdc>;
 
 			qup_uart2_default: qup-uart2-default {
 				pinmux {
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
Reviewed-by on v1 2/2
#8 lore raw

Re: [PATCH 2/2] arm64: dts: qcom: sc7180: Add wakeup parent for TLMM

In reply to Maulik Shah

Bjorn / Andy,

Quoted 8 lines · Maulik Shah

Specify wakeup parent irqchip for sc7180 TLMM.

---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
 1 file changed, 1 insertion(+)

I see that Linus W. applied patch #1:

https://lore.kernel.org/r/CACRpkdY9ETQRHn7x2D2XVLZ810Uo1cPQxMBqTy5LnrORRNjTVw@mail.gmail.com

...so I think this patch is ready to go.

FWIW, feel free to add: