Re: [PATCH] am437x-gp-evm: add wilink8 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/03/2015 08:47 AM, Reizer, Eyal wrote:
> Hi Peter,
> 
>> -----Original Message-----
>> From: Peter Hurley [mailto:peter@xxxxxxxxxxxxxxxxxx]
>> Sent: Sunday, May 03, 2015 2:46 PM
>> To: Eyal Reizer
>> Cc: tony@xxxxxxxxxxx; robh+dt@xxxxxxxxxx; pawel.moll@xxxxxxx;
>> mark.rutland@xxxxxxx; ijc+devicetree@xxxxxxxxxxxxxx;
>> galak@xxxxxxxxxxxxxx; linux@xxxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx;
>> 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@xxxxxx>
>>> ---
>>>  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)
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux