| From 2dbff99a37af0de990464def1d2823a19f582f22 Mon Sep 17 00:00:00 2001 |
| From: Tony Lindgren <tony@atomide.com> |
| Date: Wed, 9 Oct 2019 15:11:27 -0700 |
| Subject: [PATCH] ARM: dts: Use level interrupt for omap4 & 5 wlcore |
| |
| commit 087a2b7ec973f6f30f6e7b72cb50b6f7734ffdd2 upstream. |
| |
| Commit 572cf7d7b07d ("ARM: dts: Improve omap l4per idling with wlcore edge |
| sensitive interrupt") changed wlcore interrupts to use edge interrupt based |
| on what's specified in the wl1835mod.pdf data sheet. |
| |
| However, there are still cases where we can have lost interrupts as |
| described in omap_gpio_unidle(). And using a level interrupt instead of edge |
| interrupt helps as we avoid the check for untriggered GPIO interrupts in |
| omap_gpio_unidle(). |
| |
| And with commit e6818d29ea15 ("gpio: gpio-omap: configure edge detection |
| for level IRQs for idle wakeup") GPIOs idle just fine with level interrupts. |
| |
| Let's change omap4 and 5 wlcore users back to using level interrupt |
| instead of edge interrupt. Let's not change the others as I've only seen |
| this on omap4 and 5, probably because the other SoCs don't have l4per idle |
| independent of the CPUs. |
| |
| Fixes: 572cf7d7b07d ("ARM: dts: Improve omap l4per idling with wlcore edge sensitive interrupt") |
| Depends-on: e6818d29ea15 ("gpio: gpio-omap: configure edge detection for level IRQs for idle wakeup") |
| Cc: Anders Roxell <anders.roxell@linaro.org> |
| Cc: Eyal Reizer <eyalr@ti.com> |
| Cc: Guy Mishol <guym@ti.com> |
| Cc: John Stultz <john.stultz@linaro.org> |
| Cc: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts |
| index 4454449de00c..a40fe8d49da6 100644 |
| --- a/arch/arm/boot/dts/omap4-droid4-xt894.dts |
| +++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts |
| @@ -369,7 +369,7 @@ |
| compatible = "ti,wl1285", "ti,wl1283"; |
| reg = <2>; |
| /* gpio_100 with gpmc_wait2 pad as wakeirq */ |
| - interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>, |
| + interrupts-extended = <&gpio4 4 IRQ_TYPE_LEVEL_HIGH>, |
| <&omap4_pmx_core 0x4e>; |
| interrupt-names = "irq", "wakeup"; |
| ref-clock-frequency = <26000000>; |
| diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi |
| index 14be2ecb62b1..55ea8b6189af 100644 |
| --- a/arch/arm/boot/dts/omap4-panda-common.dtsi |
| +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi |
| @@ -474,7 +474,7 @@ |
| compatible = "ti,wl1271"; |
| reg = <2>; |
| /* gpio_53 with gpmc_ncs3 pad as wakeup */ |
| - interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_RISING>, |
| + interrupts-extended = <&gpio2 21 IRQ_TYPE_LEVEL_HIGH>, |
| <&omap4_pmx_core 0x3a>; |
| interrupt-names = "irq", "wakeup"; |
| ref-clock-frequency = <38400000>; |
| diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts |
| index 3c274965ff40..91480ac1f328 100644 |
| --- a/arch/arm/boot/dts/omap4-sdp.dts |
| +++ b/arch/arm/boot/dts/omap4-sdp.dts |
| @@ -512,7 +512,7 @@ |
| compatible = "ti,wl1281"; |
| reg = <2>; |
| interrupt-parent = <&gpio1>; |
| - interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 53 */ |
| + interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */ |
| ref-clock-frequency = <26000000>; |
| tcxo-clock-frequency = <26000000>; |
| }; |
| diff --git a/arch/arm/boot/dts/omap4-var-som-om44-wlan.dtsi b/arch/arm/boot/dts/omap4-var-som-om44-wlan.dtsi |
| index 6dbbc9b3229c..d0032213101e 100644 |
| --- a/arch/arm/boot/dts/omap4-var-som-om44-wlan.dtsi |
| +++ b/arch/arm/boot/dts/omap4-var-som-om44-wlan.dtsi |
| @@ -69,7 +69,7 @@ |
| compatible = "ti,wl1271"; |
| reg = <2>; |
| interrupt-parent = <&gpio2>; |
| - interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* gpio 41 */ |
| + interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; /* gpio 41 */ |
| ref-clock-frequency = <38400000>; |
| }; |
| }; |
| diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi |
| index 7fff555ee394..68ac04641bdb 100644 |
| --- a/arch/arm/boot/dts/omap5-board-common.dtsi |
| +++ b/arch/arm/boot/dts/omap5-board-common.dtsi |
| @@ -362,7 +362,7 @@ |
| pinctrl-names = "default"; |
| pinctrl-0 = <&wlcore_irq_pin>; |
| interrupt-parent = <&gpio1>; |
| - interrupts = <14 IRQ_TYPE_EDGE_RISING>; /* gpio 14 */ |
| + interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; /* gpio 14 */ |
| ref-clock-frequency = <26000000>; |
| }; |
| }; |
| -- |
| 2.7.4 |
| |