+++ /dev/null
-From 0efc898a9bea7a2e8e583c6efab0e19dc7093078 Mon Sep 17 00:00:00 2001
-From: Tony Lindgren <tony@atomide.com>
-Date: Fri, 16 Oct 2015 12:32:32 -0700
-Subject: ARM: dts: Fix WLAN regression on omap5-uevm
-
-From: Tony Lindgren <tony@atomide.com>
-
-commit 0efc898a9bea7a2e8e583c6efab0e19dc7093078 upstream.
-
-Commit 99f84cae43df ("ARM: dts: add wl12xx/wl18xx bindings") added
-device tree bindings for the TI WLAN SDIO on many omap variants.
-
-I recall wondering how come omap5-uevm did not have the WLAN
-added and this issue has been bugging me for a while now, and
-I finally tracked it down to a bad pinmux regression, and a missing
-deferred probe handling for the 32k clock from palmas that's
-requested by twl6040.
-
-Basically 392adaf796b9 ("ARM: dts: omap5-evm: Add mcspi data")
-added pin muxing for mcspi4 that conflicts with the onboard
-WLAN. While some omap5-uevm don't have WLAN populated, the
-pins are not reused for other devices. And as the SDIO bus
-should be probed, let's try to enable WLAN by default.
-
-Let's fix the regression and add the WLAN configuration as
-done for the other boards in 99f84cae43df ("ARM: dts: add
-wl12xx/wl18xx bindings"). And let's use the new MMC pwrseq for
-the 32k clock as suggested by Javier Martinez Canillas
-<javier@dowhile0.org>.
-
-Note that without a related deferred probe fix for twl6040,
-the 32k clock is not initialized if palmas-clk is a module
-and twl6040 is built-in.
-
-Let's also use the generic "non-removable" instead of the
-legacy "ti,non-removable" property while at it.
-
-And finally, note that omap5 seems to require WAKEUP_EN for
-the WLAN GPIO interrupt.
-
-Fixes: 392adaf796b9 ("ARM: dts: omap5-evm: Add mcspi data")
-Cc: Sourav Poddar <sourav.poddar@ti.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/arm/boot/dts/omap5-uevm.dts | 66 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 55 insertions(+), 11 deletions(-)
-
---- a/arch/arm/boot/dts/omap5-uevm.dts
-+++ b/arch/arm/boot/dts/omap5-uevm.dts
-@@ -27,6 +27,24 @@
- regulator-max-microvolt = <3000000>;
- };
-
-+ mmc3_pwrseq: sdhci0_pwrseq {
-+ compatible = "mmc-pwrseq-simple";
-+ clocks = <&clk32kgaudio>;
-+ clock-names = "ext_clock";
-+ };
-+
-+ vmmcsdio_fixed: fixedregulator-mmcsdio {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vmmcsdio_fixed";
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ gpio = <&gpio5 12 GPIO_ACTIVE_HIGH>; /* gpio140 WLAN_EN */
-+ enable-active-high;
-+ startup-delay-us = <70000>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&wlan_pins>;
-+ };
-+
- /* HS USB Host PHY on PORT 2 */
- hsusb2_phy: hsusb2_phy {
- compatible = "usb-nop-xceiv";
-@@ -134,12 +152,20 @@
- >;
- };
-
-- mcspi4_pins: pinmux_mcspi4_pins {
-+ mmc3_pins: pinmux_mmc3_pins {
-+ pinctrl-single,pins = <
-+ OMAP5_IOPAD(0x01a4, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_clk */
-+ OMAP5_IOPAD(0x01a6, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_cmd */
-+ OMAP5_IOPAD(0x01a8, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data0 */
-+ OMAP5_IOPAD(0x01aa, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data1 */
-+ OMAP5_IOPAD(0x01ac, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data2 */
-+ OMAP5_IOPAD(0x01ae, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data3 */
-+ >;
-+ };
-+
-+ wlan_pins: pinmux_wlan_pins {
- pinctrl-single,pins = <
-- 0x164 (PIN_INPUT | MUX_MODE1) /* mcspi4_clk */
-- 0x168 (PIN_INPUT | MUX_MODE1) /* mcspi4_simo */
-- 0x16a (PIN_INPUT | MUX_MODE1) /* mcspi4_somi */
-- 0x16c (PIN_INPUT | MUX_MODE1) /* mcspi4_cs0 */
-+ OMAP5_IOPAD(0x1bc, PIN_OUTPUT | MUX_MODE6) /* mcspi1_clk.gpio5_140 */
- >;
- };
-
-@@ -200,6 +226,12 @@
- 0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
- >;
- };
-+
-+ wlcore_irq_pin: pinmux_wlcore_irq_pin {
-+ pinctrl-single,pins = <
-+ OMAP5_IOPAD(0x040, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE6) /* llia_wakereqin.gpio1_wk14 */
-+ >;
-+ };
- };
-
- &mmc1 {
-@@ -214,8 +246,25 @@
- };
-
- &mmc3 {
-+ vmmc-supply = <&vmmcsdio_fixed>;
-+ mmc-pwrseq = <&mmc3_pwrseq>;
- bus-width = <4>;
-- ti,non-removable;
-+ non-removable;
-+ cap-power-off-card;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&mmc3_pins &wlcore_irq_pin>;
-+ interrupts-extended = <&gic GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
-+ &omap5_pmx_core 0x168>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ wlcore: wlcore@2 {
-+ compatible = "ti,wl1271";
-+ reg = <2>;
-+ interrupt-parent = <&gpio1>;
-+ interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; /* gpio 14 */
-+ ref-clock-frequency = <26000000>;
-+ };
- };
-
- &mmc4 {
-@@ -472,11 +521,6 @@
- pinctrl-0 = <&mcspi3_pins>;
- };
-
--&mcspi4 {
-- pinctrl-names = "default";
-- pinctrl-0 = <&mcspi4_pins>;
--};
--
- &uart1 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart1_pins>;