* [PATCH] am437x-gp-evm: add wilink8 support
@ 2015-04-30 9:15 Eyal Reizer
2015-05-03 11:45 ` Peter Hurley
0 siblings, 1 reply; 7+ messages in thread
From: Eyal Reizer @ 2015-04-30 9:15 UTC (permalink / raw)
To: tony, robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak,
linux, linux-omap
Cc: Eyal Reizer
enable mmc3 used for wlan and uart3 used for bluetooth
configure the gpios used for wlan and bluetooth controls
add fixed voltage regulator used for wlan power control
Configure shared transport support for uart3
Signed-off-by: Eyal Reizer <eyalr@ti.com>
---
arch/arm/boot/dts/am437x-gp-evm.dts | 114 ++++++++++++++++++++++++++++++++++
include/dt-bindings/pinctrl/am43xx.h | 1 +
2 files changed, 115 insertions(+)
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 26956cb..2b2f715 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -21,6 +21,7 @@
aliases {
display0 = &lcd0;
+ serial3 = &uart3;
};
vmmcsd_fixed: fixedregulator-sd {
@@ -42,6 +43,15 @@
gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
};
+ vmmcwl_fixed: fixedregulator-mmcwl {
+ compatible = "regulator-fixed";
+ regulator-name = "vmmcwl_fixed";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
backlight {
compatible = "pwm-backlight";
pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
@@ -106,9 +116,25 @@
};
};
};
+
+ kim {
+ compatible = "kim";
+ nshutdown_gpio = <48>; /* Bank1, pin16 */
+ dev_name = "/dev/ttyS3";
+ flow_cntrl = <1>;
+ baud_rate = <3000000>;
+ };
+
+ btwilink {
+ compatible = "btwilink";
+ };
};
&am43xx_pinmux {
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&wlan_pins_default>;
+ pinctrl-1 = <&wlan_pins_sleep>;
+
i2c0_pins: i2c0_pins {
pinctrl-single,pins = <
0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
@@ -340,6 +366,53 @@
0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data7 mode 0*/
>;
};
+
+ mmc3_pins_default: pinmux_mmc3_pins_default {
+ pinctrl-single,pins = <
+ 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
+ 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
+ 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */
+ 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */
+ 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */
+ 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be1n.mmc2_dat3 */
+ >;
+ };
+
+ mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
+ pinctrl-single,pins = <
+ 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_clk.mmc2_clk */
+ 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn3.mmc2_cmd */
+ 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a1.mmc2_dat0 */
+ 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a2.mmc2_dat1 */
+ 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a3.mmc2_dat2 */
+ 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_be1n.mmc2_dat3 */
+ >;
+ };
+
+ wlan_pins_default: pinmux_wlan_pins_default {
+ pinctrl-single,pins = <
+ 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
+ 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
+ 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
+ >;
+ };
+
+ wlan_pins_sleep: pinmux_wlan_pins_sleep {
+ pinctrl-single,pins = <
+ 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
+ 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
+ 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
+ >;
+ };
+
+ uart3_pins: uart3_pins {
+ pinctrl-single,pins = <
+ 0x228 (PIN_INPUT | MUX_MODE0) /* uart3_rxd.uart3_rxd */
+ 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_txd.uart3_txd */
+ 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_ctsn.uart3_ctsn */
+ 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */
+ >;
+ };
};
&i2c0 {
@@ -446,6 +519,10 @@
status = "okay";
};
+&gpio1 {
+ status = "okay";
+};
+
&gpio3 {
status = "okay";
};
@@ -468,6 +545,43 @@
cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};
+&mmc3 {
+ status = "okay";
+ /* these are on the crossbar and are outlined in the
+ xbar-event-map element */
+ dmas = <&edma 30
+ &edma 31>;
+ dma-names = "tx", "rx";
+ vmmc-supply = <&vmmcwl_fixed>;
+ bus-width = <4>;
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&mmc3_pins_default>;
+ pinctrl-1 = <&mmc3_pins_sleep>;
+ cap-power-off-card;
+ keep-power-in-suspend;
+ ti,non-removable;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+ wlcore: wlcore@0 {
+ compatible = "ti,wl1835";
+ reg = <2>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
+ };
+};
+
+&edma {
+ ti,edma-xbar-event-map = /bits/ 16 <1 30
+ 2 31>;
+};
+
+&uart3 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3_pins>;
+};
+
&usb2_phy1 {
status = "okay";
};
diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h
index 5f4d0189..b00bbc9 100644
--- a/include/dt-bindings/pinctrl/am43xx.h
+++ b/include/dt-bindings/pinctrl/am43xx.h
@@ -21,6 +21,7 @@
#define SLEWCTRL_SLOW (1 << 19)
#define SLEWCTRL_FAST 0
#define DS0_PULL_UP_DOWN_EN (1 << 27)
+#define WAKEUP_ENABLE (1 << 29)
#define PIN_OUTPUT (PULL_DISABLE)
#define PIN_OUTPUT_PULLUP (PULL_UP)
--
1.7.9.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] am437x-gp-evm: add wilink8 support
2015-04-30 9:15 [PATCH] am437x-gp-evm: add wilink8 support Eyal Reizer
@ 2015-05-03 11:45 ` Peter Hurley
2015-05-03 12:47 ` Reizer, Eyal
0 siblings, 1 reply; 7+ messages in thread
From: Peter Hurley @ 2015-05-03 11:45 UTC (permalink / raw)
To: Eyal Reizer
Cc: tony, robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak,
linux, linux-omap, Eyal Reizer
Hi Eyal,
On 04/30/2015 05:15 AM, Eyal Reizer wrote:
> enable mmc3 used for wlan and uart3 used for bluetooth
>
> configure the gpios used for wlan and bluetooth controls
>
> add fixed voltage regulator used for wlan power control
>
> Configure shared transport support for uart3
>
> Signed-off-by: Eyal Reizer <eyalr@ti.com>
> ---
> arch/arm/boot/dts/am437x-gp-evm.dts | 114 ++++++++++++++++++++++++++++++++++
> include/dt-bindings/pinctrl/am43xx.h | 1 +
> 2 files changed, 115 insertions(+)
>
> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
> index 26956cb..2b2f715 100644
> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> @@ -21,6 +21,7 @@
>
> aliases {
> display0 = &lcd0;
> + serial3 = &uart3;
> };
>
> vmmcsd_fixed: fixedregulator-sd {
> @@ -42,6 +43,15 @@
> gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
> };
>
> + vmmcwl_fixed: fixedregulator-mmcwl {
> + compatible = "regulator-fixed";
> + regulator-name = "vmmcwl_fixed";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> backlight {
> compatible = "pwm-backlight";
> pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
> @@ -106,9 +116,25 @@
> };
> };
> };
> +
> + kim {
> + compatible = "kim";
> + nshutdown_gpio = <48>; /* Bank1, pin16 */
> + dev_name = "/dev/ttyS3";
> + flow_cntrl = <1>;
> + baud_rate = <3000000>;
> + };
> +
> + btwilink {
> + compatible = "btwilink";
> + };
I'd really like to see TI working _with_ the Linux kernel
bluetooth stack, rather than working *around* it.
The st_kim driver is really a mess, and wilink8 has
no other channels but BT, which the hci_ll BT protocol
driver already handles.
> };
>
> &am43xx_pinmux {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&wlan_pins_default>;
> + pinctrl-1 = <&wlan_pins_sleep>;
> +
> i2c0_pins: i2c0_pins {
> pinctrl-single,pins = <
> 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
> @@ -340,6 +366,53 @@
> 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam1_data7 mode 0*/
> >;
> };
> +
> + mmc3_pins_default: pinmux_mmc3_pins_default {
> + pinctrl-single,pins = <
> + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
> + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
> + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0 */
> + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1 */
> + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2 */
> + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_be1n.mmc2_dat3 */
> + >;
> + };
> +
> + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
> + pinctrl-single,pins = <
> + 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_clk.mmc2_clk */
> + 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn3.mmc2_cmd */
> + 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a1.mmc2_dat0 */
> + 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a2.mmc2_dat1 */
> + 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a3.mmc2_dat2 */
> + 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_be1n.mmc2_dat3 */
> + >;
> + };
> +
> + wlan_pins_default: pinmux_wlan_pins_default {
> + pinctrl-single,pins = <
> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
> + 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
> + >;
> + };
> +
> + wlan_pins_sleep: pinmux_wlan_pins_sleep {
> + pinctrl-single,pins = <
> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a4.gpio1_20 WL_EN */
> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7) /* gpmc_a7.gpio1_23 WL_IRQ*/
> + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a0.gpio1_16 BT_EN*/
> + >;
> + };
> +
> + uart3_pins: uart3_pins {
> + pinctrl-single,pins = <
> + 0x228 (PIN_INPUT | MUX_MODE0) /* uart3_rxd.uart3_rxd */
> + 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_txd.uart3_txd */
> + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart3_ctsn.uart3_ctsn */
> + 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */
> + >;
> + };
> };
>
> &i2c0 {
> @@ -446,6 +519,10 @@
> status = "okay";
> };
>
> +&gpio1 {
> + status = "okay";
> +};
> +
> &gpio3 {
> status = "okay";
> };
> @@ -468,6 +545,43 @@
> cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
> };
>
> +&mmc3 {
> + status = "okay";
> + /* these are on the crossbar and are outlined in the
> + xbar-event-map element */
> + dmas = <&edma 30
> + &edma 31>;
> + dma-names = "tx", "rx";
> + vmmc-supply = <&vmmcwl_fixed>;
> + bus-width = <4>;
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&mmc3_pins_default>;
> + pinctrl-1 = <&mmc3_pins_sleep>;
So the wilink8 module is the only thing that can be plugged
into the camera header?
I think all this really needs to go into a DT overlay.
Regards,
Peter Hurley
> + cap-power-off-card;
> + keep-power-in-suspend;
> + ti,non-removable;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> + wlcore: wlcore@0 {
> + compatible = "ti,wl1835";
> + reg = <2>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
> + };
> +};
> +
> +&edma {
> + ti,edma-xbar-event-map = /bits/ 16 <1 30
> + 2 31>;
> +};
> +
> +&uart3 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart3_pins>;
> +};
> +
> &usb2_phy1 {
> status = "okay";
> };
> diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h
> index 5f4d0189..b00bbc9 100644
> --- a/include/dt-bindings/pinctrl/am43xx.h
> +++ b/include/dt-bindings/pinctrl/am43xx.h
> @@ -21,6 +21,7 @@
> #define SLEWCTRL_SLOW (1 << 19)
> #define SLEWCTRL_FAST 0
> #define DS0_PULL_UP_DOWN_EN (1 << 27)
> +#define WAKEUP_ENABLE (1 << 29)
>
> #define PIN_OUTPUT (PULL_DISABLE)
> #define PIN_OUTPUT_PULLUP (PULL_UP)
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] am437x-gp-evm: add wilink8 support
2015-05-03 11:45 ` Peter Hurley
@ 2015-05-03 12:47 ` Reizer, Eyal
2015-05-03 13:26 ` Peter Hurley
0 siblings, 1 reply; 7+ messages in thread
From: Reizer, Eyal @ 2015-05-03 12:47 UTC (permalink / raw)
To: Peter Hurley, Eyal Reizer
Cc: tony@atomide.com, robh+dt@kernel.org, pawel.moll@arm.com,
mark.rutland@arm.com, ijc+devicetree@hellion.org.uk,
galak@codeaurora.org, linux@arm.linux.org.uk,
linux-omap@vger.kernel.org
Hi Peter,
> -----Original Message-----
> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> Sent: Sunday, May 03, 2015 2:46 PM
> To: Eyal Reizer
> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> galak@codeaurora.org; linux@arm.linux.org.uk; linux-omap@vger.kernel.org;
> Reizer, Eyal
> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>
> Hi Eyal,
>
> On 04/30/2015 05:15 AM, Eyal Reizer wrote:
> > enable mmc3 used for wlan and uart3 used for bluetooth
> >
> > configure the gpios used for wlan and bluetooth controls
> >
> > add fixed voltage regulator used for wlan power control
> >
> > Configure shared transport support for uart3
> >
> > Signed-off-by: Eyal Reizer <eyalr@ti.com>
> > ---
> > arch/arm/boot/dts/am437x-gp-evm.dts | 114
> ++++++++++++++++++++++++++++++++++
> > include/dt-bindings/pinctrl/am43xx.h | 1 +
> > 2 files changed, 115 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts
> > b/arch/arm/boot/dts/am437x-gp-evm.dts
> > index 26956cb..2b2f715 100644
> > --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> > +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> > @@ -21,6 +21,7 @@
> >
> > aliases {
> > display0 = &lcd0;
> > + serial3 = &uart3;
> > };
> >
> > vmmcsd_fixed: fixedregulator-sd {
> > @@ -42,6 +43,15 @@
> > gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
> > };
> >
> > + vmmcwl_fixed: fixedregulator-mmcwl {
> > + compatible = "regulator-fixed";
> > + regulator-name = "vmmcwl_fixed";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > backlight {
> > compatible = "pwm-backlight";
> > pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>; @@
> -106,9 +116,25 @@
> > };
> > };
> > };
> > +
> > + kim {
> > + compatible = "kim";
> > + nshutdown_gpio = <48>; /* Bank1, pin16 */
> > + dev_name = "/dev/ttyS3";
> > + flow_cntrl = <1>;
> > + baud_rate = <3000000>;
> > + };
> > +
> > + btwilink {
> > + compatible = "btwilink";
> > + };
>
> I'd really like to see TI working _with_ the Linux kernel bluetooth stack, rather
> than working *around* it.
>
> The st_kim driver is really a mess, and wilink8 has no other channels but BT,
> which the hci_ll BT protocol driver already handles.
>
Wilink8 has both Bluetooth as well as GPS using the same UART.
So the shared transport is needed also for working with the kernel Bluetooth stack.
The st_kim driver indeed needs some rework and it will be looked at regardless.
Still we want to have wilink8 Bluetooth functional in upstream with the driver that is there today.
>
> > };
> >
> > &am43xx_pinmux {
> > + pinctrl-names = "default", "sleep";
> > + pinctrl-0 = <&wlan_pins_default>;
> > + pinctrl-1 = <&wlan_pins_sleep>;
> > +
> > i2c0_pins: i2c0_pins {
> > pinctrl-single,pins = <
> > 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST |
> MUX_MODE0) /*
> > i2c0_sda.i2c0_sda */ @@ -340,6 +366,53 @@
> > 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN |
> MUX_MODE7) /* cam1_data7 mode 0*/
> > >;
> > };
> > +
> > + mmc3_pins_default: pinmux_mmc3_pins_default {
> > + pinctrl-single,pins = <
> > + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_clk.mmc2_clk */
> > + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_csn3.mmc2_cmd */
> > + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_a1.mmc2_dat0 */
> > + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_a2.mmc2_dat1 */
> > + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_a3.mmc2_dat2 */
> > + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> gpmc_be1n.mmc2_dat3 */
> > + >;
> > + };
> > +
> > + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
> > + pinctrl-single,pins = <
> > + 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_clk.mmc2_clk */
> > + 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_csn3.mmc2_cmd */
> > + 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_a1.mmc2_dat0 */
> > + 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_a2.mmc2_dat1 */
> > + 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_a3.mmc2_dat2 */
> > + 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> gpmc_be1n.mmc2_dat3 */
> > + >;
> > + };
> > +
> > + wlan_pins_default: pinmux_wlan_pins_default {
> > + pinctrl-single,pins = <
> > + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> /* gpmc_a4.gpio1_20 WL_EN */
> > + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
> /* gpmc_a7.gpio1_23 WL_IRQ*/
> > + 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> /* gpmc_a0.gpio1_16 BT_EN*/
> > + >;
> > + };
> > +
> > + wlan_pins_sleep: pinmux_wlan_pins_sleep {
> > + pinctrl-single,pins = <
> > + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> /* gpmc_a4.gpio1_20 WL_EN */
> > + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
> /* gpmc_a7.gpio1_23 WL_IRQ*/
> > + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7)
> /* gpmc_a0.gpio1_16 BT_EN*/
> > + >;
> > + };
> > +
> > + uart3_pins: uart3_pins {
> > + pinctrl-single,pins = <
> > + 0x228 (PIN_INPUT | MUX_MODE0) /*
> uart3_rxd.uart3_rxd */
> > + 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
> uart3_txd.uart3_txd */
> > + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /*
> uart3_ctsn.uart3_ctsn */
> > + 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
> uart3_rtsn.uart3_rtsn */
> > + >;
> > + };
> > };
> >
> > &i2c0 {
> > @@ -446,6 +519,10 @@
> > status = "okay";
> > };
> >
> > +&gpio1 {
> > + status = "okay";
> > +};
> > +
> > &gpio3 {
> > status = "okay";
> > };
> > @@ -468,6 +545,43 @@
> > cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; };
> >
> > +&mmc3 {
> > + status = "okay";
> > + /* these are on the crossbar and are outlined in the
> > + xbar-event-map element */
> > + dmas = <&edma 30
> > + &edma 31>;
> > + dma-names = "tx", "rx";
> > + vmmc-supply = <&vmmcwl_fixed>;
> > + bus-width = <4>;
> > + pinctrl-names = "default", "sleep";
> > + pinctrl-0 = <&mmc3_pins_default>;
> > + pinctrl-1 = <&mmc3_pins_sleep>;
>
> So the wilink8 module is the only thing that can be plugged into the camera
> header?
>
> I think all this really needs to go into a DT overlay.
>
Am437x-evm has a dedicated com8 connector used for connecting the wilink8 module.
It is not using the camera header.
> Regards,
> Peter Hurley
>
>
> > + cap-power-off-card;
> > + keep-power-in-suspend;
> > + ti,non-removable;
> > +
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + wlcore: wlcore@0 {
> > + compatible = "ti,wl1835";
> > + reg = <2>;
> > + interrupt-parent = <&gpio1>;
> > + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
> > + };
> > +};
> > +
> > +&edma {
> > + ti,edma-xbar-event-map = /bits/ 16 <1 30
> > + 2 31>;
> > +};
> > +
> > +&uart3 {
> > + status = "okay";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&uart3_pins>;
> > +};
> > +
> > &usb2_phy1 {
> > status = "okay";
> > };
> > diff --git a/include/dt-bindings/pinctrl/am43xx.h
> > b/include/dt-bindings/pinctrl/am43xx.h
> > index 5f4d0189..b00bbc9 100644
> > --- a/include/dt-bindings/pinctrl/am43xx.h
> > +++ b/include/dt-bindings/pinctrl/am43xx.h
> > @@ -21,6 +21,7 @@
> > #define SLEWCTRL_SLOW (1 << 19)
> > #define SLEWCTRL_FAST 0
> > #define DS0_PULL_UP_DOWN_EN (1 << 27)
> > +#define WAKEUP_ENABLE (1 << 29)
> >
> > #define PIN_OUTPUT (PULL_DISABLE)
> > #define PIN_OUTPUT_PULLUP (PULL_UP)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] am437x-gp-evm: add wilink8 support
2015-05-03 12:47 ` Reizer, Eyal
@ 2015-05-03 13:26 ` Peter Hurley
2015-05-03 13:44 ` Reizer, Eyal
0 siblings, 1 reply; 7+ messages in thread
From: Peter Hurley @ 2015-05-03 13:26 UTC (permalink / raw)
To: Reizer, Eyal, Eyal Reizer
Cc: tony@atomide.com, robh+dt@kernel.org, pawel.moll@arm.com,
mark.rutland@arm.com, ijc+devicetree@hellion.org.uk,
galak@codeaurora.org, linux@arm.linux.org.uk,
linux-omap@vger.kernel.org
On 05/03/2015 08:47 AM, Reizer, Eyal wrote:
> Hi Peter,
>
>> -----Original Message-----
>> From: Peter Hurley [mailto:peter@hurleysoftware.com]
>> Sent: Sunday, May 03, 2015 2:46 PM
>> To: Eyal Reizer
>> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
>> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
>> galak@codeaurora.org; linux@arm.linux.org.uk; linux-omap@vger.kernel.org;
>> Reizer, Eyal
>> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>>
>> Hi Eyal,
>>
>> On 04/30/2015 05:15 AM, Eyal Reizer wrote:
>>> enable mmc3 used for wlan and uart3 used for bluetooth
>>>
>>> configure the gpios used for wlan and bluetooth controls
>>>
>>> add fixed voltage regulator used for wlan power control
>>>
>>> Configure shared transport support for uart3
>>>
>>> Signed-off-by: Eyal Reizer <eyalr@ti.com>
>>> ---
>>> arch/arm/boot/dts/am437x-gp-evm.dts | 114
>> ++++++++++++++++++++++++++++++++++
>>> include/dt-bindings/pinctrl/am43xx.h | 1 +
>>> 2 files changed, 115 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts
>>> b/arch/arm/boot/dts/am437x-gp-evm.dts
>>> index 26956cb..2b2f715 100644
>>> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
>>> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
>>> @@ -21,6 +21,7 @@
>>>
>>> aliases {
>>> display0 = &lcd0;
>>> + serial3 = &uart3;
>>> };
>>>
>>> vmmcsd_fixed: fixedregulator-sd {
>>> @@ -42,6 +43,15 @@
>>> gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
>>> };
>>>
>>> + vmmcwl_fixed: fixedregulator-mmcwl {
>>> + compatible = "regulator-fixed";
>>> + regulator-name = "vmmcwl_fixed";
>>> + regulator-min-microvolt = <1800000>;
>>> + regulator-max-microvolt = <1800000>;
>>> + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
>>> + enable-active-high;
>>> + };
>>> +
>>> backlight {
>>> compatible = "pwm-backlight";
>>> pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>; @@
>> -106,9 +116,25 @@
>>> };
>>> };
>>> };
>>> +
>>> + kim {
>>> + compatible = "kim";
>>> + nshutdown_gpio = <48>; /* Bank1, pin16 */
>>> + dev_name = "/dev/ttyS3";
>>> + flow_cntrl = <1>;
>>> + baud_rate = <3000000>;
>>> + };
>>> +
>>> + btwilink {
>>> + compatible = "btwilink";
>>> + };
>>
>> I'd really like to see TI working _with_ the Linux kernel bluetooth stack, rather
>> than working *around* it.
>>
>> The st_kim driver is really a mess, and wilink8 has no other channels but BT,
>> which the hci_ll BT protocol driver already handles.
>>
>
> Wilink8 has both Bluetooth as well as GPS using the same UART.
Oh, great!
What part is that? I've been all over the TI products search and have only found
the WL183x and WL180x series, neither of which support GPS.
> So the shared transport is needed also for working with the kernel Bluetooth stack.
>
> The st_kim driver indeed needs some rework and it will be looked at regardless.
> Still we want to have wilink8 Bluetooth functional in upstream with the driver that is there today.
>
>>
>>> };
>>>
>>> &am43xx_pinmux {
>>> + pinctrl-names = "default", "sleep";
>>> + pinctrl-0 = <&wlan_pins_default>;
>>> + pinctrl-1 = <&wlan_pins_sleep>;
>>> +
>>> i2c0_pins: i2c0_pins {
>>> pinctrl-single,pins = <
>>> 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST |
>> MUX_MODE0) /*
>>> i2c0_sda.i2c0_sda */ @@ -340,6 +366,53 @@
>>> 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN |
>> MUX_MODE7) /* cam1_data7 mode 0*/
>>> >;
>>> };
>>> +
>>> + mmc3_pins_default: pinmux_mmc3_pins_default {
>>> + pinctrl-single,pins = <
>>> + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_clk.mmc2_clk */
>>> + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_csn3.mmc2_cmd */
>>> + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_a1.mmc2_dat0 */
>>> + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_a2.mmc2_dat1 */
>>> + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_a3.mmc2_dat2 */
>>> + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>> gpmc_be1n.mmc2_dat3 */
>>> + >;
>>> + };
>>> +
>>> + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
>>> + pinctrl-single,pins = <
>>> + 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_clk.mmc2_clk */
>>> + 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_csn3.mmc2_cmd */
>>> + 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_a1.mmc2_dat0 */
>>> + 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_a2.mmc2_dat1 */
>>> + 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_a3.mmc2_dat2 */
>>> + 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>> gpmc_be1n.mmc2_dat3 */
>>> + >;
>>> + };
>>> +
>>> + wlan_pins_default: pinmux_wlan_pins_default {
>>> + pinctrl-single,pins = <
>>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>> /* gpmc_a4.gpio1_20 WL_EN */
>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
>> /* gpmc_a7.gpio1_23 WL_IRQ*/
>>> + 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>> /* gpmc_a0.gpio1_16 BT_EN*/
>>> + >;
>>> + };
>>> +
>>> + wlan_pins_sleep: pinmux_wlan_pins_sleep {
>>> + pinctrl-single,pins = <
>>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>> /* gpmc_a4.gpio1_20 WL_EN */
>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
>> /* gpmc_a7.gpio1_23 WL_IRQ*/
>>> + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7)
>> /* gpmc_a0.gpio1_16 BT_EN*/
>>> + >;
>>> + };
>>> +
>>> + uart3_pins: uart3_pins {
>>> + pinctrl-single,pins = <
>>> + 0x228 (PIN_INPUT | MUX_MODE0) /*
>> uart3_rxd.uart3_rxd */
>>> + 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
>> uart3_txd.uart3_txd */
>>> + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /*
>> uart3_ctsn.uart3_ctsn */
>>> + 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
>> uart3_rtsn.uart3_rtsn */
>>> + >;
>>> + };
>>> };
>>>
>>> &i2c0 {
>>> @@ -446,6 +519,10 @@
>>> status = "okay";
>>> };
>>>
>>> +&gpio1 {
>>> + status = "okay";
>>> +};
>>> +
>>> &gpio3 {
>>> status = "okay";
>>> };
>>> @@ -468,6 +545,43 @@
>>> cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; };
>>>
>>> +&mmc3 {
>>> + status = "okay";
>>> + /* these are on the crossbar and are outlined in the
>>> + xbar-event-map element */
>>> + dmas = <&edma 30
>>> + &edma 31>;
>>> + dma-names = "tx", "rx";
>>> + vmmc-supply = <&vmmcwl_fixed>;
>>> + bus-width = <4>;
>>> + pinctrl-names = "default", "sleep";
>>> + pinctrl-0 = <&mmc3_pins_default>;
>>> + pinctrl-1 = <&mmc3_pins_sleep>;
>>
>> So the wilink8 module is the only thing that can be plugged into the camera
>> header?
>>
>> I think all this really needs to go into a DT overlay.
>>
>
> Am437x-evm has a dedicated com8 connector used for connecting the wilink8 module.
> It is not using the camera header.
>
>> Regards,
>> Peter Hurley
>>
>>
>>> + cap-power-off-card;
>>> + keep-power-in-suspend;
>>> + ti,non-removable;
>>> +
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + wlcore: wlcore@0 {
>>> + compatible = "ti,wl1835";
>>> + reg = <2>;
>>> + interrupt-parent = <&gpio1>;
>>> + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
>>> + };
>>> +};
>>> +
>>> +&edma {
>>> + ti,edma-xbar-event-map = /bits/ 16 <1 30
>>> + 2 31>;
>>> +};
>>> +
>>> +&uart3 {
>>> + status = "okay";
>>> + pinctrl-names = "default";
>>> + pinctrl-0 = <&uart3_pins>;
>>> +};
>>> +
>>> &usb2_phy1 {
>>> status = "okay";
>>> };
>>> diff --git a/include/dt-bindings/pinctrl/am43xx.h
>>> b/include/dt-bindings/pinctrl/am43xx.h
>>> index 5f4d0189..b00bbc9 100644
>>> --- a/include/dt-bindings/pinctrl/am43xx.h
>>> +++ b/include/dt-bindings/pinctrl/am43xx.h
>>> @@ -21,6 +21,7 @@
>>> #define SLEWCTRL_SLOW (1 << 19)
>>> #define SLEWCTRL_FAST 0
>>> #define DS0_PULL_UP_DOWN_EN (1 << 27)
>>> +#define WAKEUP_ENABLE (1 << 29)
>>>
>>> #define PIN_OUTPUT (PULL_DISABLE)
>>> #define PIN_OUTPUT_PULLUP (PULL_UP)
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] am437x-gp-evm: add wilink8 support
2015-05-03 13:26 ` Peter Hurley
@ 2015-05-03 13:44 ` Reizer, Eyal
2015-05-04 11:01 ` Peter Hurley
0 siblings, 1 reply; 7+ messages in thread
From: Reizer, Eyal @ 2015-05-03 13:44 UTC (permalink / raw)
To: Peter Hurley, Eyal Reizer
Cc: tony@atomide.com, robh+dt@kernel.org, pawel.moll@arm.com,
mark.rutland@arm.com, ijc+devicetree@hellion.org.uk,
galak@codeaurora.org, linux@arm.linux.org.uk,
linux-omap@vger.kernel.org
Hi Peter,
> -----Original Message-----
> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> Sent: Sunday, May 03, 2015 4:26 PM
> To: Reizer, Eyal; Eyal Reizer
> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> galak@codeaurora.org; linux@arm.linux.org.uk; linux-omap@vger.kernel.org
> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>
> On 05/03/2015 08:47 AM, Reizer, Eyal wrote:
> > Hi Peter,
> >
> >> -----Original Message-----
> >> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> >> Sent: Sunday, May 03, 2015 2:46 PM
> >> To: Eyal Reizer
> >> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> >> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> >> galak@codeaurora.org; linux@arm.linux.org.uk;
> >> linux-omap@vger.kernel.org; Reizer, Eyal
> >> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
> >>
> >> Hi Eyal,
> >>
> >> On 04/30/2015 05:15 AM, Eyal Reizer wrote:
> >>> enable mmc3 used for wlan and uart3 used for bluetooth
> >>>
> >>> configure the gpios used for wlan and bluetooth controls
> >>>
> >>> add fixed voltage regulator used for wlan power control
> >>>
> >>> Configure shared transport support for uart3
> >>>
> >>> Signed-off-by: Eyal Reizer <eyalr@ti.com>
> >>> ---
> >>> arch/arm/boot/dts/am437x-gp-evm.dts | 114
> >> ++++++++++++++++++++++++++++++++++
> >>> include/dt-bindings/pinctrl/am43xx.h | 1 +
> >>> 2 files changed, 115 insertions(+)
> >>>
> >>> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts
> >>> b/arch/arm/boot/dts/am437x-gp-evm.dts
> >>> index 26956cb..2b2f715 100644
> >>> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> >>> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> >>> @@ -21,6 +21,7 @@
> >>>
> >>> aliases {
> >>> display0 = &lcd0;
> >>> + serial3 = &uart3;
> >>> };
> >>>
> >>> vmmcsd_fixed: fixedregulator-sd {
> >>> @@ -42,6 +43,15 @@
> >>> gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
> >>> };
> >>>
> >>> + vmmcwl_fixed: fixedregulator-mmcwl {
> >>> + compatible = "regulator-fixed";
> >>> + regulator-name = "vmmcwl_fixed";
> >>> + regulator-min-microvolt = <1800000>;
> >>> + regulator-max-microvolt = <1800000>;
> >>> + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
> >>> + enable-active-high;
> >>> + };
> >>> +
> >>> backlight {
> >>> compatible = "pwm-backlight";
> >>> pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>; @@
> >> -106,9 +116,25 @@
> >>> };
> >>> };
> >>> };
> >>> +
> >>> + kim {
> >>> + compatible = "kim";
> >>> + nshutdown_gpio = <48>; /* Bank1, pin16 */
> >>> + dev_name = "/dev/ttyS3";
> >>> + flow_cntrl = <1>;
> >>> + baud_rate = <3000000>;
> >>> + };
> >>> +
> >>> + btwilink {
> >>> + compatible = "btwilink";
> >>> + };
> >>
> >> I'd really like to see TI working _with_ the Linux kernel bluetooth
> >> stack, rather than working *around* it.
> >>
> >> The st_kim driver is really a mess, and wilink8 has no other channels
> >> but BT, which the hci_ll BT protocol driver already handles.
> >>
> >
> > Wilink8 has both Bluetooth as well as GPS using the same UART.
>
> Oh, great!
>
> What part is that? I've been all over the TI products search and have only
> found the WL183x and WL180x series, neither of which support GPS.
>
See the below link.
http://www.jorjin.com.tw/#!wg7871-bn/c246o
>
> > So the shared transport is needed also for working with the kernel
> Bluetooth stack.
> >
> > The st_kim driver indeed needs some rework and it will be looked at
> regardless.
> > Still we want to have wilink8 Bluetooth functional in upstream with the
> driver that is there today.
> >
> >>
> >>> };
> >>>
> >>> &am43xx_pinmux {
> >>> + pinctrl-names = "default", "sleep";
> >>> + pinctrl-0 = <&wlan_pins_default>;
> >>> + pinctrl-1 = <&wlan_pins_sleep>;
> >>> +
> >>> i2c0_pins: i2c0_pins {
> >>> pinctrl-single,pins = <
> >>> 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST |
> >> MUX_MODE0) /*
> >>> i2c0_sda.i2c0_sda */ @@ -340,6 +366,53 @@
> >>> 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN |
> >> MUX_MODE7) /* cam1_data7 mode 0*/
> >>> >;
> >>> };
> >>> +
> >>> + mmc3_pins_default: pinmux_mmc3_pins_default {
> >>> + pinctrl-single,pins = <
> >>> + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_clk.mmc2_clk */
> >>> + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_csn3.mmc2_cmd */
> >>> + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_a1.mmc2_dat0 */
> >>> + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_a2.mmc2_dat1 */
> >>> + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_a3.mmc2_dat2 */
> >>> + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /*
> >> gpmc_be1n.mmc2_dat3 */
> >>> + >;
> >>> + };
> >>> +
> >>> + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
> >>> + pinctrl-single,pins = <
> >>> + 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_clk.mmc2_clk */
> >>> + 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_csn3.mmc2_cmd */
> >>> + 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_a1.mmc2_dat0 */
> >>> + 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_a2.mmc2_dat1 */
> >>> + 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_a3.mmc2_dat2 */
> >>> + 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
> >> gpmc_be1n.mmc2_dat3 */
> >>> + >;
> >>> + };
> >>> +
> >>> + wlan_pins_default: pinmux_wlan_pins_default {
> >>> + pinctrl-single,pins = <
> >>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> >> /* gpmc_a4.gpio1_20 WL_EN */
> >>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
> >> /* gpmc_a7.gpio1_23 WL_IRQ*/
> >>> + 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> >> /* gpmc_a0.gpio1_16 BT_EN*/
> >>> + >;
> >>> + };
> >>> +
> >>> + wlan_pins_sleep: pinmux_wlan_pins_sleep {
> >>> + pinctrl-single,pins = <
> >>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
> >> /* gpmc_a4.gpio1_20 WL_EN */
> >>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
> >> /* gpmc_a7.gpio1_23 WL_IRQ*/
> >>> + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7)
> >> /* gpmc_a0.gpio1_16 BT_EN*/
> >>> + >;
> >>> + };
> >>> +
> >>> + uart3_pins: uart3_pins {
> >>> + pinctrl-single,pins = <
> >>> + 0x228 (PIN_INPUT | MUX_MODE0) /*
> >> uart3_rxd.uart3_rxd */
> >>> + 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
> >> uart3_txd.uart3_txd */
> >>> + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /*
> >> uart3_ctsn.uart3_ctsn */
> >>> + 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
> >> uart3_rtsn.uart3_rtsn */
> >>> + >;
> >>> + };
> >>> };
> >>>
> >>> &i2c0 {
> >>> @@ -446,6 +519,10 @@
> >>> status = "okay";
> >>> };
> >>>
> >>> +&gpio1 {
> >>> + status = "okay";
> >>> +};
> >>> +
> >>> &gpio3 {
> >>> status = "okay";
> >>> };
> >>> @@ -468,6 +545,43 @@
> >>> cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; };
> >>>
> >>> +&mmc3 {
> >>> + status = "okay";
> >>> + /* these are on the crossbar and are outlined in the
> >>> + xbar-event-map element */
> >>> + dmas = <&edma 30
> >>> + &edma 31>;
> >>> + dma-names = "tx", "rx";
> >>> + vmmc-supply = <&vmmcwl_fixed>;
> >>> + bus-width = <4>;
> >>> + pinctrl-names = "default", "sleep";
> >>> + pinctrl-0 = <&mmc3_pins_default>;
> >>> + pinctrl-1 = <&mmc3_pins_sleep>;
> >>
> >> So the wilink8 module is the only thing that can be plugged into the
> >> camera header?
> >>
> >> I think all this really needs to go into a DT overlay.
> >>
> >
> > Am437x-evm has a dedicated com8 connector used for connecting the
> wilink8 module.
> > It is not using the camera header.
> >
> >> Regards,
> >> Peter Hurley
> >>
> >>
> >>> + cap-power-off-card;
> >>> + keep-power-in-suspend;
> >>> + ti,non-removable;
> >>> +
> >>> + #address-cells = <1>;
> >>> + #size-cells = <0>;
> >>> + wlcore: wlcore@0 {
> >>> + compatible = "ti,wl1835";
> >>> + reg = <2>;
> >>> + interrupt-parent = <&gpio1>;
> >>> + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
> >>> + };
> >>> +};
> >>> +
> >>> +&edma {
> >>> + ti,edma-xbar-event-map = /bits/ 16 <1 30
> >>> + 2 31>;
> >>> +};
> >>> +
> >>> +&uart3 {
> >>> + status = "okay";
> >>> + pinctrl-names = "default";
> >>> + pinctrl-0 = <&uart3_pins>;
> >>> +};
> >>> +
> >>> &usb2_phy1 {
> >>> status = "okay";
> >>> };
> >>> diff --git a/include/dt-bindings/pinctrl/am43xx.h
> >>> b/include/dt-bindings/pinctrl/am43xx.h
> >>> index 5f4d0189..b00bbc9 100644
> >>> --- a/include/dt-bindings/pinctrl/am43xx.h
> >>> +++ b/include/dt-bindings/pinctrl/am43xx.h
> >>> @@ -21,6 +21,7 @@
> >>> #define SLEWCTRL_SLOW (1 << 19)
> >>> #define SLEWCTRL_FAST 0
> >>> #define DS0_PULL_UP_DOWN_EN (1 << 27)
> >>> +#define WAKEUP_ENABLE (1 << 29)
> >>>
> >>> #define PIN_OUTPUT (PULL_DISABLE)
> >>> #define PIN_OUTPUT_PULLUP (PULL_UP)
> >>
> >
Best Regards,
Eyal
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] am437x-gp-evm: add wilink8 support
2015-05-03 13:44 ` Reizer, Eyal
@ 2015-05-04 11:01 ` Peter Hurley
2015-05-04 11:57 ` Reizer, Eyal
0 siblings, 1 reply; 7+ messages in thread
From: Peter Hurley @ 2015-05-04 11:01 UTC (permalink / raw)
To: Reizer, Eyal, Eyal Reizer
Cc: tony@atomide.com, robh+dt@kernel.org, pawel.moll@arm.com,
mark.rutland@arm.com, ijc+devicetree@hellion.org.uk,
galak@codeaurora.org, linux@arm.linux.org.uk,
linux-omap@vger.kernel.org
On 05/03/2015 09:44 AM, Reizer, Eyal wrote:
> Hi Peter,
>
>> -----Original Message-----
>> From: Peter Hurley [mailto:peter@hurleysoftware.com]
>> Sent: Sunday, May 03, 2015 4:26 PM
>> To: Reizer, Eyal; Eyal Reizer
>> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
>> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
>> galak@codeaurora.org; linux@arm.linux.org.uk; linux-omap@vger.kernel.org
>> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>>
>> On 05/03/2015 08:47 AM, Reizer, Eyal wrote:
>>> Hi Peter,
>>>
>>>> -----Original Message-----
>>>> From: Peter Hurley [mailto:peter@hurleysoftware.com]
>>>> Sent: Sunday, May 03, 2015 2:46 PM
>>>> To: Eyal Reizer
>>>> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
>>>> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
>>>> galak@codeaurora.org; linux@arm.linux.org.uk;
>>>> linux-omap@vger.kernel.org; Reizer, Eyal
>>>> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>>>>
>>>> Hi Eyal,
>>>>
>>>> On 04/30/2015 05:15 AM, Eyal Reizer wrote:
>>>>> enable mmc3 used for wlan and uart3 used for bluetooth
>>>>>
>>>>> configure the gpios used for wlan and bluetooth controls
>>>>>
>>>>> add fixed voltage regulator used for wlan power control
>>>>>
>>>>> Configure shared transport support for uart3
>>>>>
>>>>> Signed-off-by: Eyal Reizer <eyalr@ti.com>
>>>>> ---
>>>>> arch/arm/boot/dts/am437x-gp-evm.dts | 114
>>>> ++++++++++++++++++++++++++++++++++
>>>>> include/dt-bindings/pinctrl/am43xx.h | 1 +
>>>>> 2 files changed, 115 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts
>>>>> b/arch/arm/boot/dts/am437x-gp-evm.dts
>>>>> index 26956cb..2b2f715 100644
>>>>> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
>>>>> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
>>>>> @@ -21,6 +21,7 @@
>>>>>
>>>>> aliases {
>>>>> display0 = &lcd0;
>>>>> + serial3 = &uart3;
>>>>> };
>>>>>
>>>>> vmmcsd_fixed: fixedregulator-sd {
>>>>> @@ -42,6 +43,15 @@
>>>>> gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
>>>>> };
>>>>>
>>>>> + vmmcwl_fixed: fixedregulator-mmcwl {
>>>>> + compatible = "regulator-fixed";
>>>>> + regulator-name = "vmmcwl_fixed";
>>>>> + regulator-min-microvolt = <1800000>;
>>>>> + regulator-max-microvolt = <1800000>;
>>>>> + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
>>>>> + enable-active-high;
>>>>> + };
>>>>> +
>>>>> backlight {
>>>>> compatible = "pwm-backlight";
>>>>> pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>; @@
>>>> -106,9 +116,25 @@
>>>>> };
>>>>> };
>>>>> };
>>>>> +
>>>>> + kim {
>>>>> + compatible = "kim";
>>>>> + nshutdown_gpio = <48>; /* Bank1, pin16 */
>>>>> + dev_name = "/dev/ttyS3";
>>>>> + flow_cntrl = <1>;
>>>>> + baud_rate = <3000000>;
>>>>> + };
>>>>> +
>>>>> + btwilink {
>>>>> + compatible = "btwilink";
>>>>> + };
>>>>
>>>> I'd really like to see TI working _with_ the Linux kernel bluetooth
>>>> stack, rather than working *around* it.
>>>>
>>>> The st_kim driver is really a mess, and wilink8 has no other channels
>>>> but BT, which the hci_ll BT protocol driver already handles.
>>>>
>>>
>>> Wilink8 has both Bluetooth as well as GPS using the same UART.
>>
>> Oh, great!
>>
>> What part is that? I've been all over the TI products search and have only
>> found the WL183x and WL180x series, neither of which support GPS.
>>
>
> See the below link.
> http://www.jorjin.com.tw/#!wg7871-bn/c246o
Oh, so this isn't a part that can actually be plugged into the
dedicated COM8 header?
IOW, the only existing h/w for that header is bluetooth only.
>>> So the shared transport is needed also for working with the kernel
>> Bluetooth stack.
Not true.
The kernel bluetooth stack runs fine on wilink8, by simply enabling
the BT_EN gpio.
Moreover, if this patch goes upstream, all _future_ users will be forced
to use st_kim, even though they only have bluetooth-only h/w.
>>> The st_kim driver indeed needs some rework and it will be looked at
>> regardless.
>>> Still we want to have wilink8 Bluetooth functional in upstream with the
>> driver that is there today.
That's trivially possible without the kim/btwilink hunk above (eg., with
userspace sysfs gpio).
Regards,
Peter Hurley
>>>
>>>>
>>>>> };
>>>>>
>>>>> &am43xx_pinmux {
>>>>> + pinctrl-names = "default", "sleep";
>>>>> + pinctrl-0 = <&wlan_pins_default>;
>>>>> + pinctrl-1 = <&wlan_pins_sleep>;
>>>>> +
>>>>> i2c0_pins: i2c0_pins {
>>>>> pinctrl-single,pins = <
>>>>> 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST |
>>>> MUX_MODE0) /*
>>>>> i2c0_sda.i2c0_sda */ @@ -340,6 +366,53 @@
>>>>> 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN |
>>>> MUX_MODE7) /* cam1_data7 mode 0*/
>>>>> >;
>>>>> };
>>>>> +
>>>>> + mmc3_pins_default: pinmux_mmc3_pins_default {
>>>>> + pinctrl-single,pins = <
>>>>> + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_clk.mmc2_clk */
>>>>> + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_csn3.mmc2_cmd */
>>>>> + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_a1.mmc2_dat0 */
>>>>> + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_a2.mmc2_dat1 */
>>>>> + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_a3.mmc2_dat2 */
>>>>> + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /*
>>>> gpmc_be1n.mmc2_dat3 */
>>>>> + >;
>>>>> + };
>>>>> +
>>>>> + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
>>>>> + pinctrl-single,pins = <
>>>>> + 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_clk.mmc2_clk */
>>>>> + 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_csn3.mmc2_cmd */
>>>>> + 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_a1.mmc2_dat0 */
>>>>> + 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_a2.mmc2_dat1 */
>>>>> + 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_a3.mmc2_dat2 */
>>>>> + 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE7) /*
>>>> gpmc_be1n.mmc2_dat3 */
>>>>> + >;
>>>>> + };
>>>>> +
>>>>> + wlan_pins_default: pinmux_wlan_pins_default {
>>>>> + pinctrl-single,pins = <
>>>>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>>>> /* gpmc_a4.gpio1_20 WL_EN */
>>>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
>>>> /* gpmc_a7.gpio1_23 WL_IRQ*/
>>>>> + 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>>>> /* gpmc_a0.gpio1_16 BT_EN*/
>>>>> + >;
>>>>> + };
>>>>> +
>>>>> + wlan_pins_sleep: pinmux_wlan_pins_sleep {
>>>>> + pinctrl-single,pins = <
>>>>> + 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)
>>>> /* gpmc_a4.gpio1_20 WL_EN */
>>>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)
>>>> /* gpmc_a7.gpio1_23 WL_IRQ*/
>>>>> + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7)
>>>> /* gpmc_a0.gpio1_16 BT_EN*/
>>>>> + >;
>>>>> + };
>>>>> +
>>>>> + uart3_pins: uart3_pins {
>>>>> + pinctrl-single,pins = <
>>>>> + 0x228 (PIN_INPUT | MUX_MODE0) /*
>>>> uart3_rxd.uart3_rxd */
>>>>> + 0x22c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
>>>> uart3_txd.uart3_txd */
>>>>> + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0) /*
>>>> uart3_ctsn.uart3_ctsn */
>>>>> + 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /*
>>>> uart3_rtsn.uart3_rtsn */
>>>>> + >;
>>>>> + };
>>>>> };
>>>>>
>>>>> &i2c0 {
>>>>> @@ -446,6 +519,10 @@
>>>>> status = "okay";
>>>>> };
>>>>>
>>>>> +&gpio1 {
>>>>> + status = "okay";
>>>>> +};
>>>>> +
>>>>> &gpio3 {
>>>>> status = "okay";
>>>>> };
>>>>> @@ -468,6 +545,43 @@
>>>>> cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; };
>>>>>
>>>>> +&mmc3 {
>>>>> + status = "okay";
>>>>> + /* these are on the crossbar and are outlined in the
>>>>> + xbar-event-map element */
>>>>> + dmas = <&edma 30
>>>>> + &edma 31>;
>>>>> + dma-names = "tx", "rx";
>>>>> + vmmc-supply = <&vmmcwl_fixed>;
>>>>> + bus-width = <4>;
>>>>> + pinctrl-names = "default", "sleep";
>>>>> + pinctrl-0 = <&mmc3_pins_default>;
>>>>> + pinctrl-1 = <&mmc3_pins_sleep>;
>>>>
>>>> So the wilink8 module is the only thing that can be plugged into the
>>>> camera header?
>>>>
>>>> I think all this really needs to go into a DT overlay.
>>>>
>>>
>>> Am437x-evm has a dedicated com8 connector used for connecting the
>> wilink8 module.
>>> It is not using the camera header.
>>>
>>>> Regards,
>>>> Peter Hurley
>>>>
>>>>
>>>>> + cap-power-off-card;
>>>>> + keep-power-in-suspend;
>>>>> + ti,non-removable;
>>>>> +
>>>>> + #address-cells = <1>;
>>>>> + #size-cells = <0>;
>>>>> + wlcore: wlcore@0 {
>>>>> + compatible = "ti,wl1835";
>>>>> + reg = <2>;
>>>>> + interrupt-parent = <&gpio1>;
>>>>> + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + };
>>>>> +};
>>>>> +
>>>>> +&edma {
>>>>> + ti,edma-xbar-event-map = /bits/ 16 <1 30
>>>>> + 2 31>;
>>>>> +};
>>>>> +
>>>>> +&uart3 {
>>>>> + status = "okay";
>>>>> + pinctrl-names = "default";
>>>>> + pinctrl-0 = <&uart3_pins>;
>>>>> +};
>>>>> +
>>>>> &usb2_phy1 {
>>>>> status = "okay";
>>>>> };
>>>>> diff --git a/include/dt-bindings/pinctrl/am43xx.h
>>>>> b/include/dt-bindings/pinctrl/am43xx.h
>>>>> index 5f4d0189..b00bbc9 100644
>>>>> --- a/include/dt-bindings/pinctrl/am43xx.h
>>>>> +++ b/include/dt-bindings/pinctrl/am43xx.h
>>>>> @@ -21,6 +21,7 @@
>>>>> #define SLEWCTRL_SLOW (1 << 19)
>>>>> #define SLEWCTRL_FAST 0
>>>>> #define DS0_PULL_UP_DOWN_EN (1 << 27)
>>>>> +#define WAKEUP_ENABLE (1 << 29)
>>>>>
>>>>> #define PIN_OUTPUT (PULL_DISABLE)
>>>>> #define PIN_OUTPUT_PULLUP (PULL_UP)
>>>>
>>>
>
> Best Regards,
> Eyal
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH] am437x-gp-evm: add wilink8 support
2015-05-04 11:01 ` Peter Hurley
@ 2015-05-04 11:57 ` Reizer, Eyal
0 siblings, 0 replies; 7+ messages in thread
From: Reizer, Eyal @ 2015-05-04 11:57 UTC (permalink / raw)
To: Peter Hurley, Eyal Reizer
Cc: tony@atomide.com, robh+dt@kernel.org, pawel.moll@arm.com,
mark.rutland@arm.com, ijc+devicetree@hellion.org.uk,
galak@codeaurora.org, linux@arm.linux.org.uk,
linux-omap@vger.kernel.org
Hi Peter,
> -----Original Message-----
> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> Sent: Monday, May 04, 2015 2:02 PM
> To: Reizer, Eyal; Eyal Reizer
> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> galak@codeaurora.org; linux@arm.linux.org.uk; linux-omap@vger.kernel.org
> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
>
> On 05/03/2015 09:44 AM, Reizer, Eyal wrote:
> > Hi Peter,
> >
> >> -----Original Message-----
> >> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> >> Sent: Sunday, May 03, 2015 4:26 PM
> >> To: Reizer, Eyal; Eyal Reizer
> >> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> >> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> >> galak@codeaurora.org; linux@arm.linux.org.uk;
> >> linux-omap@vger.kernel.org
> >> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
> >>
> >> On 05/03/2015 08:47 AM, Reizer, Eyal wrote:
> >>> Hi Peter,
> >>>
> >>>> -----Original Message-----
> >>>> From: Peter Hurley [mailto:peter@hurleysoftware.com]
> >>>> Sent: Sunday, May 03, 2015 2:46 PM
> >>>> To: Eyal Reizer
> >>>> Cc: tony@atomide.com; robh+dt@kernel.org; pawel.moll@arm.com;
> >>>> mark.rutland@arm.com; ijc+devicetree@hellion.org.uk;
> >>>> galak@codeaurora.org; linux@arm.linux.org.uk;
> >>>> linux-omap@vger.kernel.org; Reizer, Eyal
> >>>> Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
> >>>>
> >>>> Hi Eyal,
> >>>>
> >>>> On 04/30/2015 05:15 AM, Eyal Reizer wrote:
> >>>>> enable mmc3 used for wlan and uart3 used for bluetooth
> >>>>>
> >>>>> configure the gpios used for wlan and bluetooth controls
> >>>>>
> >>>>> add fixed voltage regulator used for wlan power control
> >>>>>
> >>>>> Configure shared transport support for uart3
> >>>>>
> >>>>> Signed-off-by: Eyal Reizer <eyalr@ti.com>
> >>>>> ---
> >>>>> arch/arm/boot/dts/am437x-gp-evm.dts | 114
> >>>> ++++++++++++++++++++++++++++++++++
> >>>>> include/dt-bindings/pinctrl/am43xx.h | 1 +
> >>>>> 2 files changed, 115 insertions(+)
> >>>>>
> >>>>> diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts
> >>>>> b/arch/arm/boot/dts/am437x-gp-evm.dts
> >>>>> index 26956cb..2b2f715 100644
> >>>>> --- a/arch/arm/boot/dts/am437x-gp-evm.dts
> >>>>> +++ b/arch/arm/boot/dts/am437x-gp-evm.dts
> >>>>> @@ -21,6 +21,7 @@
> >>>>>
> >>>>> aliases {
> >>>>> display0 = &lcd0;
> >>>>> + serial3 = &uart3;
> >>>>> };
> >>>>>
> >>>>> vmmcsd_fixed: fixedregulator-sd { @@ -42,6 +43,15 @@
> >>>>> gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
> >>>>> };
> >>>>>
> >>>>> + vmmcwl_fixed: fixedregulator-mmcwl {
> >>>>> + compatible = "regulator-fixed";
> >>>>> + regulator-name = "vmmcwl_fixed";
> >>>>> + regulator-min-microvolt = <1800000>;
> >>>>> + regulator-max-microvolt = <1800000>;
> >>>>> + gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
> >>>>> + enable-active-high;
> >>>>> + };
> >>>>> +
> >>>>> backlight {
> >>>>> compatible = "pwm-backlight";
> >>>>> pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>; @@
> >>>> -106,9 +116,25 @@
> >>>>> };
> >>>>> };
> >>>>> };
> >>>>> +
> >>>>> + kim {
> >>>>> + compatible = "kim";
> >>>>> + nshutdown_gpio = <48>; /* Bank1, pin16 */
> >>>>> + dev_name = "/dev/ttyS3";
> >>>>> + flow_cntrl = <1>;
> >>>>> + baud_rate = <3000000>;
> >>>>> + };
> >>>>> +
> >>>>> + btwilink {
> >>>>> + compatible = "btwilink";
> >>>>> + };
> >>>>
> >>>> I'd really like to see TI working _with_ the Linux kernel bluetooth
> >>>> stack, rather than working *around* it.
> >>>>
> >>>> The st_kim driver is really a mess, and wilink8 has no other
> >>>> channels but BT, which the hci_ll BT protocol driver already handles.
> >>>>
> >>>
> >>> Wilink8 has both Bluetooth as well as GPS using the same UART.
> >>
> >> Oh, great!
> >>
> >> What part is that? I've been all over the TI products search and have
> >> only found the WL183x and WL180x series, neither of which support GPS.
> >>
> >
> > See the below link.
> > http://www.jorjin.com.tw/#!wg7871-bn/c246o
>
> Oh, so this isn't a part that can actually be plugged into the dedicated COM8
> header?
>
> IOW, the only existing h/w for that header is bluetooth only.
>
> >>> So the shared transport is needed also for working with the kernel
> >> Bluetooth stack.
>
> Not true.
> The kernel bluetooth stack runs fine on wilink8, by simply enabling the BT_EN
> gpio.
>
> Moreover, if this patch goes upstream, all _future_ users will be forced to use
> st_kim, even though they only have bluetooth-only h/w.
>
> >>> The st_kim driver indeed needs some rework and it will be looked at
> >> regardless.
> >>> Still we want to have wilink8 Bluetooth functional in upstream with
> >>> the
> >> driver that is there today.
>
> That's trivially possible without the kim/btwilink hunk above (eg., with
> userspace sysfs gpio).
>
OK, Understood.
I will remove the kim/btwilink part from the device tree patch, leaving only wlan and uart pin muxing and submit a v2.
Best Regards,
Eyal
>
>
> >>>
> >>>>
> >>>>> };
> >>>>>
> >>>>> &am43xx_pinmux {
> >>>>> + pinctrl-names = "default", "sleep";
> >>>>> + pinctrl-0 = <&wlan_pins_default>;
> >>>>> + pinctrl-1 = <&wlan_pins_sleep>;
> >>>>> +
> >>>>> i2c0_pins: i2c0_pins {
> >>>>> pinctrl-single,pins = <
> >>>>> 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST |
> >>>> MUX_MODE0) /*
> >>>>> i2c0_sda.i2c0_sda */ @@ -340,6 +366,53 @@
> >>>>> 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN |
> >>>> MUX_MODE7) /* cam1_data7 mode 0*/
> >>>>> >;
> >>>>> };
> >>>>> +
> >>>>> + mmc3_pins_default: pinmux_mmc3_pins_default {
> >>>>> + pinctrl-single,pins = <
> >>>>> + 0x8c (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_clk.mmc2_clk */
> >>>>> + 0x88 (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_csn3.mmc2_cmd */
> >>>>> + 0x44 (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_a1.mmc2_dat0 */
> >>>>> + 0x48 (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_a2.mmc2_dat1 */
> >>>>> + 0x4c (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_a3.mmc2_dat2 */
> >>>>> + 0x78 (PIN_INPUT_PULLUP | MUX_MODE3)
> /*
> >>>> gpmc_be1n.mmc2_dat3 */
> >>>>> + >;
> >>>>> + };
> >>>>> +
> >>>>> + mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
> >>>>> + pinctrl-single,pins = <
> >>>>> + 0x8c (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_clk.mmc2_clk */
> >>>>> + 0x88 (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_csn3.mmc2_cmd */
> >>>>> + 0x44 (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_a1.mmc2_dat0 */
> >>>>> + 0x48 (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_a2.mmc2_dat1 */
> >>>>> + 0x4c (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_a3.mmc2_dat2 */
> >>>>> + 0x78 (PIN_INPUT_PULLDOWN |
> MUX_MODE7) /*
> >>>> gpmc_be1n.mmc2_dat3 */
> >>>>> + >;
> >>>>> + };
> >>>>> +
> >>>>> + wlan_pins_default: pinmux_wlan_pins_default {
> >>>>> + pinctrl-single,pins = <
> >>>>> + 0x50 (PIN_OUTPUT_PULLDOWN |
> MUX_MODE7)
> >>>> /* gpmc_a4.gpio1_20 WL_EN */
> >>>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE |
> MUX_MODE7)
> >>>> /* gpmc_a7.gpio1_23 WL_IRQ*/
> >>>>> + 0x40 (PIN_OUTPUT_PULLDOWN |
> MUX_MODE7)
> >>>> /* gpmc_a0.gpio1_16 BT_EN*/
> >>>>> + >;
> >>>>> + };
> >>>>> +
> >>>>> + wlan_pins_sleep: pinmux_wlan_pins_sleep {
> >>>>> + pinctrl-single,pins = <
> >>>>> + 0x50 (PIN_OUTPUT_PULLDOWN |
> MUX_MODE7)
> >>>> /* gpmc_a4.gpio1_20 WL_EN */
> >>>>> + 0x5c (PIN_INPUT | WAKEUP_ENABLE |
> MUX_MODE7)
> >>>> /* gpmc_a7.gpio1_23 WL_IRQ*/
> >>>>> + 0x40 (PIN_OUTPUT_PULLUP | MUX_MODE7)
> >>>> /* gpmc_a0.gpio1_16 BT_EN*/
> >>>>> + >;
> >>>>> + };
> >>>>> +
> >>>>> + uart3_pins: uart3_pins {
> >>>>> + pinctrl-single,pins = <
> >>>>> + 0x228 (PIN_INPUT | MUX_MODE0)
> /*
> >>>> uart3_rxd.uart3_rxd */
> >>>>> + 0x22c (PIN_OUTPUT_PULLDOWN |
> MUX_MODE0) /*
> >>>> uart3_txd.uart3_txd */
> >>>>> + 0x230 (PIN_INPUT_PULLUP | MUX_MODE0)
> /*
> >>>> uart3_ctsn.uart3_ctsn */
> >>>>> + 0x234 (PIN_OUTPUT_PULLDOWN |
> MUX_MODE0) /*
> >>>> uart3_rtsn.uart3_rtsn */
> >>>>> + >;
> >>>>> + };
> >>>>> };
> >>>>>
> >>>>> &i2c0 {
> >>>>> @@ -446,6 +519,10 @@
> >>>>> status = "okay";
> >>>>> };
> >>>>>
> >>>>> +&gpio1 {
> >>>>> + status = "okay";
> >>>>> +};
> >>>>> +
> >>>>> &gpio3 {
> >>>>> status = "okay";
> >>>>> };
> >>>>> @@ -468,6 +545,43 @@
> >>>>> cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; };
> >>>>>
> >>>>> +&mmc3 {
> >>>>> + status = "okay";
> >>>>> + /* these are on the crossbar and are outlined in the
> >>>>> + xbar-event-map element */
> >>>>> + dmas = <&edma 30
> >>>>> + &edma 31>;
> >>>>> + dma-names = "tx", "rx";
> >>>>> + vmmc-supply = <&vmmcwl_fixed>;
> >>>>> + bus-width = <4>;
> >>>>> + pinctrl-names = "default", "sleep";
> >>>>> + pinctrl-0 = <&mmc3_pins_default>;
> >>>>> + pinctrl-1 = <&mmc3_pins_sleep>;
> >>>>
> >>>> So the wilink8 module is the only thing that can be plugged into
> >>>> the camera header?
> >>>>
> >>>> I think all this really needs to go into a DT overlay.
> >>>>
> >>>
> >>> Am437x-evm has a dedicated com8 connector used for connecting the
> >> wilink8 module.
> >>> It is not using the camera header.
> >>>
> >>>> Regards,
> >>>> Peter Hurley
> >>>>
> >>>>
> >>>>> + cap-power-off-card;
> >>>>> + keep-power-in-suspend;
> >>>>> + ti,non-removable;
> >>>>> +
> >>>>> + #address-cells = <1>;
> >>>>> + #size-cells = <0>;
> >>>>> + wlcore: wlcore@0 {
> >>>>> + compatible = "ti,wl1835";
> >>>>> + reg = <2>;
> >>>>> + interrupt-parent = <&gpio1>;
> >>>>> + interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
> >>>>> + };
> >>>>> +};
> >>>>> +
> >>>>> +&edma {
> >>>>> + ti,edma-xbar-event-map = /bits/ 16 <1 30
> >>>>> + 2 31>;
> >>>>> +};
> >>>>> +
> >>>>> +&uart3 {
> >>>>> + status = "okay";
> >>>>> + pinctrl-names = "default";
> >>>>> + pinctrl-0 = <&uart3_pins>;
> >>>>> +};
> >>>>> +
> >>>>> &usb2_phy1 {
> >>>>> status = "okay";
> >>>>> };
> >>>>> diff --git a/include/dt-bindings/pinctrl/am43xx.h
> >>>>> b/include/dt-bindings/pinctrl/am43xx.h
> >>>>> index 5f4d0189..b00bbc9 100644
> >>>>> --- a/include/dt-bindings/pinctrl/am43xx.h
> >>>>> +++ b/include/dt-bindings/pinctrl/am43xx.h
> >>>>> @@ -21,6 +21,7 @@
> >>>>> #define SLEWCTRL_SLOW (1 << 19)
> >>>>> #define SLEWCTRL_FAST 0
> >>>>> #define DS0_PULL_UP_DOWN_EN (1 << 27)
> >>>>> +#define WAKEUP_ENABLE (1 << 29)
> >>>>>
> >>>>> #define PIN_OUTPUT (PULL_DISABLE)
> >>>>> #define PIN_OUTPUT_PULLUP (PULL_UP)
> >>>>
> >>>
> >
> > Best Regards,
> > Eyal
> >
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-05-04 11:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-30 9:15 [PATCH] am437x-gp-evm: add wilink8 support Eyal Reizer
2015-05-03 11:45 ` Peter Hurley
2015-05-03 12:47 ` Reizer, Eyal
2015-05-03 13:26 ` Peter Hurley
2015-05-03 13:44 ` Reizer, Eyal
2015-05-04 11:01 ` Peter Hurley
2015-05-04 11:57 ` Reizer, Eyal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).