[PATCH 1/2] ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for pandaboard
Luca Coelho
luca at coelho.fi
Tue Sep 17 02:26:54 EDT 2013
Hi Tony,
Both patches look good to me, though I didn't have the time to retest
them.
--
Cheers,
Luca.
On Fri, 2013-09-13 at 12:09 -0700, Tony Lindgren wrote:
> Commit b42b9181 (ARM: OMAP2+: Remove board-omap4panda.c)
> removed legacy booting in favor of device tree based booting
> for pandaboard. That caused the WLAN to stop working as the
> related .dts entries fell through the cracks.
>
> The legacy muxing was setting pulls for GPIO 48 and 49, so let's
> keep that behaviour for now to avoid further regressions for
> BT and FM. Also input logic was enabled for MMC CLK line, but
> I've verified that the input logic we don't need enabled for
> CLK line as it's not bidirectional.
>
> Also, we want to use non-removable instead of ti,non-removable
> as the ti,non-removable also sets no_regulator_off_init which
> is really not what we want as then wl12xx won't get powered
> up and down which is needed for resetting it.
>
> Note that looks like the WLAN interface fails to come up after
> a warm reset, but that most likely was also happening with
> the legacy booting and needs a separate fix.
>
> Cc: Paolo Pisati <p.pisati at gmail.com>
> Cc: Benoit Cousson <bcousson at baylibre.com>
> Cc: Rajendra Nayak <rnayak at ti.com>
> Cc: Luciano Coelho <luca at coelho.fi>
> Cc: devicetree-discuss at lists.ozlabs.org
> Signed-off-by: Tony Lindgren <tony at atomide.com>
> ---
> arch/arm/boot/dts/omap4-panda-common.dtsi | 46 ++++++++++++++++++++++++++++-
> 1 file changed, 45 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
> index faa95b5..814ab67 100644
> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
> @@ -107,6 +107,19 @@
> */
> clock-frequency = <19200000>;
> };
> +
> + /* regulator for wl12xx on sdio5 */
> + wl12xx_vmmc: wl12xx_vmmc {
> + pinctrl-names = "default";
> + pinctrl-0 = <&wl12xx_gpio>;
> + compatible = "regulator-fixed";
> + regulator-name = "vwl1271";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + gpio = <&gpio2 11 0>;
> + startup-delay-us = <70000>;
> + enable-active-high;
> + };
> };
>
> &omap4_pmx_wkup {
> @@ -235,6 +248,33 @@
> 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
> >;
> };
> +
> + /*
> + * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
> + * REVISIT: Are the pull-ups needed for GPIO 48 and 49?
> + */
> + wl12xx_gpio: pinmux_wl12xx_gpio {
> + pinctrl-single,pins = <
> + 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
> + 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */
> + 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
> + 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */
> + >;
> + };
> +
> + /* wl12xx GPIO inputs and SDIO pins */
> + wl12xx_pins: pinmux_wl12xx_pins {
> + pinctrl-single,pins = <
> + 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */
> + 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */
> + 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */
> + 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */
> + 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */
> + 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */
> + 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */
> + 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */
> + >;
> + };
> };
>
> &i2c1 {
> @@ -314,8 +354,12 @@
> };
>
> &mmc5 {
> - ti,non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&wl12xx_pins>;
> + vmmc-supply = <&wl12xx_vmmc>;
> + non-removable;
> bus-width = <4>;
> + cap-power-off-card;
> };
>
> &emif1 {
>
More information about the linux-arm-kernel
mailing list