ARM: dts: omap3-overo: Enable WiFi/BT combo
authorFlorian Vaussard <florian.vaussard@epfl.ch>
Fri, 7 Mar 2014 19:22:14 +0000 (20:22 +0100)
committerTony Lindgren <tony@atomide.com>
Wed, 12 Mar 2014 17:17:27 +0000 (10:17 -0700)
MMC2 is used by the on-board WiFi module populated on some boards
(based on Marvell Libertas 8688 SDIO). The Bluetooth is connected
to UART2.

Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/omap3-overo-base.dtsi
arch/arm/boot/dts/omap3-overo-storm.dtsi
arch/arm/boot/dts/omap3-overo.dtsi

index aea64c09d02b79138afef4f79f5a450f9741cce3..edac70e9204ce3f629aff3605beeb3be218ef5b0 100644 (file)
                ti,mcbsp = <&mcbsp2>;
                ti,codec = <&twl_audio>;
        };
+
+       /* Regulator to trigger the nPoweron signal of the Wifi module */
+       w3cbw003c_npoweron: regulator-w3cbw003c-npoweron {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-w3cbw003c-npoweron";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 22 GPIO_ACTIVE_HIGH>;            /* gpio_54: nPoweron */
+               enable-active-high;
+       };
+
+       /* Regulator to trigger the nReset signal of the Wifi module */
+       w3cbw003c_wifi_nreset: regulator-w3cbw003c-wifi-nreset {
+               pinctrl-names = "default";
+               pinctrl-0 = <&w3cbw003c_pins &w3cbw003c_2_pins>;
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-w3cbw003c-wifi-nreset";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 16 GPIO_ACTIVE_HIGH>;            /* gpio_16: WiFi nReset */
+               startup-delay-us = <10000>;
+       };
+
+       /* Regulator to trigger the nReset signal of the Bluetooth module */
+       w3cbw003c_bt_nreset: regulator-w3cbw003c-bt-nreset {
+               compatible = "regulator-fixed";
+               regulator-name = "regulator-w3cbw003c-bt-nreset";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;             /* gpio_164: BT nReset */
+               startup-delay-us = <10000>;
+       };
 };
 
 &omap3_pmx_core {
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x216c, PIN_INPUT | MUX_MODE1)        /* mcbsp3_dx.uart2_cts */
+                       OMAP3_CORE1_IOPAD(0x216e, PIN_OUTPUT | MUX_MODE1)       /* mcbsp3_dr.uart2_rts */
+                       OMAP3_CORE1_IOPAD(0x2170, PIN_OUTPUT | MUX_MODE1)       /* mcbsp3_clk.uart2_tx */
+                       OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE1)        /* mcbsp3_fsx.uart2_rx */
+               >;
+       };
+
        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
                        OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
                        OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc1_dat3.sdmmc1_dat3 */
                >;
        };
+
+       mmc2_pins: pinmux_mmc2_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_clk.sdmmc2_clk */
+                       OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_cmd.sdmmc2_cmd */
+                       OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat0.sdmmc2_dat0 */
+                       OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat1.sdmmc2_dat1 */
+                       OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat2.sdmmc2_dat2 */
+                       OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)         /* sdmmc2_dat3.sdmmc2_dat3 */
+               >;
+       };
+
+       /* WiFi/BT combo */
+       w3cbw003c_pins: pinmux_w3cbw003c_pins {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x20b4, PIN_OUTPUT | MUX_MODE4)               /* gpmc_ncs3.gpio_54 */
+                       OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4)               /* uart3_rts_sd.gpio_164 */
+               >;
+       };
 };
 
 &i2c1 {
 
 /* optional on board WiFi */
 &mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins>;
+       vmmc-supply = <&w3cbw003c_npoweron>;
+       vqmmc-supply = <&w3cbw003c_bt_nreset>;
+       vmmc_aux-supply = <&w3cbw003c_wifi_nreset>;
        bus-width = <4>;
+       cap-sdio-irq;
+       non-removable;
 };
 
 &twl_gpio {
        power = <50>;
 };
 
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
+
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;
index c30efb30f8292d2c9646476e24d9ae3fc4865f3e..c235ae8780c1ce487b64a6d48e1784f1ae679013 100644 (file)
@@ -9,3 +9,11 @@
 #include "omap36xx.dtsi"
 #include "omap3-overo-base.dtsi"
 
+&omap3_pmx_core2 {
+       w3cbw003c_2_pins: pinmux_w3cbw003c_2_pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4)            /* etk_d2.gpio_16 */
+               >;
+       };
+};
+
index 7bbda683ee0a478ac0a44cac44a9d74537ae75a3..95c59b21b4f65f52acc965da84da6c1f3651246a 100644 (file)
@@ -9,3 +9,11 @@
 #include "omap34xx.dtsi"
 #include "omap3-overo-base.dtsi"
 
+&omap3_pmx_core2 {
+       w3cbw003c_2_pins: pinmux_w3cbw003c_2_pins {
+               pinctrl-single,pins = <
+                       OMAP3430_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4)            /* etk_d2.gpio_16 */
+               >;
+       };
+};
+