From: Peter Hurley <peter@hurleysoftware.com>
To: "Reizer, Eyal" <eyalr@ti.com>, Eyal Reizer <eyalreizer@gmail.com>
Cc: "tony@atomide.com" <tony@atomide.com>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"pawel.moll@arm.com" <pawel.moll@arm.com>,
"mark.rutland@arm.com" <mark.rutland@arm.com>,
"ijc+devicetree@hellion.org.uk" <ijc+devicetree@hellion.org.uk>,
"galak@codeaurora.org" <galak@codeaurora.org>,
"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: [PATCH] am437x-gp-evm: add wilink8 support
Date: Mon, 04 May 2015 07:01:33 -0400 [thread overview]
Message-ID: <5547518D.3000702@hurleysoftware.com> (raw)
In-Reply-To: <8665E2433BC68541A24DFFCA87B70F5B2365F5E7@DFRE01.ent.ti.com>
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
>
next prev parent reply other threads:[~2015-05-04 11:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2015-05-04 11:57 ` Reizer, Eyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5547518D.3000702@hurleysoftware.com \
--to=peter@hurleysoftware.com \
--cc=eyalr@ti.com \
--cc=eyalreizer@gmail.com \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.