Skip to content

Commit

Permalink
ARM: dts: Improve omap l4per idling with wlcore edge sensitive interrupt
Browse files Browse the repository at this point in the history
The wl1835mod.pdf data sheet says this pretty clearly for WL_IRQ line:

"WLAN SDIO out-of-band interrupt line. Set to rising edge (active high)
by default."

And it seems this interrupt can be optionally configured to use falling
edge too since commit bd76348 ("wl18xx: wlan_irq: support platform
dependent interrupt types").

On omap4, if the wlcore interrupt is configured as level instead of edge,
L4PER will stop doing hardware based idling after ifconfig wlan0 down is
done and the WL_EN line is pulled down.

The symptoms show up with L4PER status registers no longer showing the
IDLEST bits as 2 but as 0 for all the active GPIO banks and for
L4PER_CLKCTRL. Also the l4per_pwrdm RET count stops increasing in
the /sys/kernel/debug/pm_debug/count.

While there is also probably a GPIO related issue that needs to be
still fixed, this change gets us to the point where we can have L4PER
idling.

I'm guessing wlcore was at some point configured to use level interrupts
because of edge handling issues in gpio-omap. However, with the recent
fixes to gpio-omap the edge interrupts seem to be working just fine.

Let's change it for all omap boards with wlcore interrupt set as level.

Cc: Dave Gerlach <[email protected]>
Cc: Eyal Reizer <[email protected]>
Cc: Grygorii Strashko <[email protected]>
Cc: Kalle Valo <[email protected]>
Cc: Nishanth Menon <[email protected]>
Cc: Tero Kristo <[email protected]>
[[email protected] updated comments a bit for gpio issue]
Signed-off-by: Tony Lindgren <[email protected]>
  • Loading branch information
tmlind committed Jul 3, 2018
1 parent 382ceea commit 572cf7d
Show file tree
Hide file tree
Showing 17 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/am335x-baltos.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio3>;
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
};
};

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/am335x-evm.dts
Original file line number Diff line number Diff line change
Expand Up @@ -778,7 +778,7 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio3>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <17 IRQ_TYPE_EDGE_RISING>;
};
};

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/am335x-evmsk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio0>;
interrupts = <31 IRQ_TYPE_LEVEL_HIGH>; /* gpio 31 */
interrupts = <31 IRQ_TYPE_EDGE_RISING>; /* gpio 31 */
ref-clock-frequency = <38400000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/am437x-gp-evm.dts
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio1>;
interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <23 IRQ_TYPE_EDGE_RISING>;
};
};

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/logicpd-som-lv.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@
compatible = "ti,wl1273";
reg = <2>;
interrupt-parent = <&gpio1>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; /* gpio 2 */
interrupts = <2 IRQ_TYPE_EDGE_RISING>; /* gpio 2 */
ref-clock-frequency = <26000000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
compatible = "ti,wl1283";
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <24 IRQ_TYPE_LEVEL_HIGH>; /* gpio 152 */
interrupts = <24 IRQ_TYPE_EDGE_RISING>; /* gpio 152 */
ref-clock-frequency = <26000000>;
tcxo-clock-frequency = <26000000>;
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-cm-t3517.dts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>; /* gpio 145 */
interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* gpio 145 */
ref-clock-frequency = <38400000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-cm-t3730.dts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; /* gpio 136 */
interrupts = <8 IRQ_TYPE_EDGE_RISING>; /* gpio 136 */
ref-clock-frequency = <38400000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-evm-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 149 */
interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 149 */
ref-clock-frequency = <38400000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-igep0020-rev-f.dts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio6>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>; /* gpio 177 */
interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* gpio 177 */
};
};
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-igep0030-rev-g.dts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,6 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio5>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; /* gpio 136 */
interrupts = <8 IRQ_TYPE_EDGE_RISING>; /* gpio 136 */
};
};
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap3-zoom3.dts
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio6>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; /* gpio 162 */
interrupts = <2 IRQ_TYPE_EDGE_RISING>; /* gpio 162 */
ref-clock-frequency = <26000000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap4-droid4-xt894.dts
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@
compatible = "ti,wl1285", "ti,wl1283";
reg = <2>;
interrupt-parent = <&gpio4>;
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>; /* gpio100 */
interrupts = <4 IRQ_TYPE_EDGE_RISING>; /* gpio100 */
ref-clock-frequency = <26000000>;
tcxo-clock-frequency = <26000000>;
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap4-panda-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio2>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 53 */
ref-clock-frequency = <38400000>;
};
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap4-sdp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@
compatible = "ti,wl1281";
reg = <2>;
interrupt-parent = <&gpio1>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; /* gpio 53 */
interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 53 */
ref-clock-frequency = <26000000>;
tcxo-clock-frequency = <26000000>;
};
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap4-var-som-om44-wlan.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio2>;
interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; /* gpio 41 */
interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* gpio 41 */
ref-clock-frequency = <38400000>;
};
};
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/omap5-board-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@
pinctrl-names = "default";
pinctrl-0 = <&wlcore_irq_pin>;
interrupt-parent = <&gpio1>;
interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; /* gpio 14 */
interrupts = <14 IRQ_TYPE_EDGE_RISING>; /* gpio 14 */
ref-clock-frequency = <26000000>;
};
};
Expand Down

0 comments on commit 572cf7d

Please sign in to comment.