Re: [PATCH 7/7] ARM: sun7i: cubietruck: enable bluetooth module

From: Maxime Ripard
Date: Tue Apr 15 2014 - 10:46:08 EST


On Tue, Apr 15, 2014 at 02:41:41PM +0800, Chen-Yu Tsai wrote:
> The CubieTruck has an AMPAK AP6210 WiFi+Bluetooth module. The Bluetooth
> part is a BCM20710 device connected to UART2 in the A20 SoC.
>
> The IC requires a 32.768 KHz low power clock input for proper
> auto-detection of the main clock, and an enable signal via GPIO.
>
> Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
> ---
> arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> index cb25d3c..767c8e1 100644
> --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
> @@ -61,6 +61,13 @@
> allwinner,drive = <0>;
> allwinner,pull = <0>;
> };
> +
> + bt_pwr_pin_cubietruck: bt_pwr_pin@0 {
> + allwinner,pins = "PH18";
> + allwinner,function = "gpio_out";
> + allwinner,drive = <0>;
> + allwinner,pull = <0>;
> + };
> };
>
> uart0: serial@01c28000 {
> @@ -69,6 +76,12 @@
> status = "okay";
> };
>
> + uart2: serial@01c28800 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart2_pins_a>;
> + status = "okay";
> + };
> +

Please make this a separate patch.

> i2c0: i2c@01c2ac00 {
> pinctrl-names = "default";
> pinctrl-0 = <&i2c0_pins_a>;
> @@ -139,4 +152,16 @@
> reg_usb2_vbus: usb2-vbus {
> status = "okay";
> };
> +
> + rfkill_bt {
> + compatible = "rfkill-gpio";
> + pinctrl-names = "default";
> + pinctrl-0 = <&bt_pwr_pin_cubietruck>, <&clk_out_a_pins_a>;
> + clocks = <&clk_out_a>;
> + clock-frequency = <32768>;
> + gpios = <&pio 7 18 0>; /* PH18 */
> + gpio-names = "reset";
> + rfkill-name = "bt";
> + rfkill-type = <2>;
> + };

Hmmm, I don't think that's actually right.

If you have such a device, then I'd expect it to be represented as a
full device in the DT, probably with one part for the WiFi, one part
for the Bluetooth, and here the definition of the rfkill device that
controls it.

But tying parts of the device to the rfkill that controls it, such as
the clocks, or the frequency it runs at seems just wrong.

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

Attachment: signature.asc
Description: Digital signature