Re: [linux-sunxi] Re: [PATCH 3/3] arm64: allwinner: dts: h6: add Wi-Fi support for Pine H64 model A/B

From: Chen-Yu Tsai
Date: Mon Jul 23 2018 - 22:38:18 EST


On Tue, Jul 24, 2018 at 10:28 AM, Icenowy Zheng <icenowy@xxxxxxx> wrote:
>
>
> ä 2018å7æ24æ GMT+08:00 äå10:26:02, Chen-Yu Tsai <wens@xxxxxxxx> åå:
>>On Tue, Jul 24, 2018 at 10:23 AM, Icenowy Zheng <icenowy@xxxxxxx>
>>wrote:
>>>
>>>
>>> ä 2018å7æ24æ GMT+08:00 äå10:21:59, Chen-Yu Tsai <wens@xxxxxxxx> åå:
>>>>On Tue, Jul 24, 2018 at 9:15 AM, Icenowy Zheng <icenowy@xxxxxxx>
>>wrote:
>>>>> The Pine H64 model A has a Wi-Fi module connector and the model B
>>has
>>>>an
>>>>> on-board RTL8723BS Wi-Fi module.
>>>>>
>>>>> Add support for them. For model A, as it's not defaultly present,
>>>>keep
>>>>> it disabled now.
>>>>
>>>>Nope. Pine64 actually has two WiFi/BT modules. And they require
>>>>different
>>>>device tree snippets for both the WiFi and BT side. This is better
>>>>resolved
>>>>with device tree overlays.
>>>>
>>>>I have both, though I've yet found time to work on them.
>>>
>>> I have also both.
>>>
>>> The skeleton here can get the Wi-Fi of both to work.
>>
>>Cool. Then I can put away my RTL module for now. :)
>
> P.S. SDIO is auto detectable, and for BCM chips, the OOB interrupt
> is only a bonus function and it can fall back to standard in-band
> interrupt (which doesn't need special binding, and is currently
> used by mainline r8723bs driver.)

Correct. With BT you'll have serdev device nodes with different
compatibles. Then you'll have to resort to overlays, and you'd probably
end up adding WiFi OOB interrupt bits as well.

So the question remaining is: should we enable the MMC part, along
with power sequencing and regulator supplies, by default? Thinking
more about it, I'm actually OK with it. The board connectors are
clearly marked as being for a WiFi+BT module. The whole space on
the board is surrounded by a box in silkscreen. Sorry for the
initial nack.

Maxime, any thoughts?

>>
>>ChenYu
>>
>>>
>>>>
>>>>ChenYu
>>>>
>>>>> Signed-off-by: Icenowy Zheng <icenowy@xxxxxxx>
>>>>> ---
>>>>> .../allwinner/sun50i-h6-pine-h64-model-b.dts | 8 +++++
>>>>> .../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 29
>>>>+++++++++++++++++++
>>>>> 2 files changed, 37 insertions(+)
>>>>>
>>>>> diff --git
>>>>a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
>>>>b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
>>>>> index d0fcc25efb00..d0f775613c9b 100644
>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
>>>>> @@ -18,3 +18,11 @@
>>>>> };
>>>>> };
>>>>> };
>>>>> +
>>>>> +&mmc1 {
>>>>> + status = "okay";
>>>>> +};
>>>>> +
>>>>> +&wifi_pwrseq {
>>>>> + status = "okay";
>>>>> +};
>>>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
>>>>b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
>>>>> index a85867f8b684..75db6d4139bf 100644
>>>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
>>>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
>>>>> @@ -40,6 +40,12 @@
>>>>> gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /*
>>PL7
>>>>*/
>>>>> };
>>>>> };
>>>>> +
>>>>> + wifi_pwrseq: wifi_pwrseq {
>>>>> + compatible = "mmc-pwrseq-simple";
>>>>> + reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PL2
>>*/
>>>>> + status = "disabled";
>>>>> + };
>>>>> };
>>>>>
>>>>> &mmc0 {
>>>>> @@ -50,6 +56,17 @@
>>>>> status = "okay";
>>>>> };
>>>>>
>>>>> +&mmc1 {
>>>>> + pinctrl-names = "default";
>>>>> + pinctrl-0 = <&mmc1_pins>;
>>>>> + vmmc-supply = <&reg_cldo2>;
>>>>> + vqmmc-supply = <&reg_bldo2>;
>>>>> + mmc-pwrseq = <&wifi_pwrseq>;
>>>>> + bus-width = <4>;
>>>>> + non-removable;
>>>>> + status = "disabled";
>>>>> +};
>>>>> +
>>>>> &mmc2 {
>>>>> pinctrl-names = "default";
>>>>> pinctrl-0 = <&mmc2_pins>;
>>>>> @@ -128,12 +145,24 @@
>>>>> };
>>>>>
>>>>> reg_cldo2: cldo2 {
>>>>> + /*
>>>>> + * This regulator is connected with
>>>>CLDO3.
>>>>> + * Before the kernel can support
>>>>synchronized
>>>>> + * enable of coupled regulators,
>>keep
>>>>them
>>>>> + * both always on as a ugly hack.
>>>>> + */
>>>>> + regulator-always-on;
>>>>> regulator-min-microvolt =
>><3300000>;
>>>>> regulator-max-microvolt =
>><3300000>;
>>>>> regulator-name = "vcc-wifi-1";
>>>>> };
>>>>>
>>>>> reg_cldo3: cldo3 {
>>>>> + /*
>>>>> + * This regulator is connected with
>>>>CLDO2.
>>>>> + * See the comments for CLDO2.
>>>>> + */
>>>>> + regulator-always-on;
>>>>> regulator-min-microvolt =
>><3300000>;
>>>>> regulator-max-microvolt =
>><3300000>;
>>>>> regulator-name = "vcc-wifi-2";
>>>>> --
>>>>> 2.18.0
>>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>Groups "linux-sunxi" group.
>>> To unsubscribe from this group and stop receiving emails from it,
>>send an email to linux-sunxi+unsubscribe@xxxxxxxxxxxxxxxxx
>>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe@xxxxxxxxxxxxxxxxx
> For more options, visit https://groups.google.com/d/optout.