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

From: Icenowy Zheng
Date: Mon Jul 23 2018 - 22:39:32 EST




ä 2018å7æ24æ GMT+08:00 äå10:37:51, Chen-Yu Tsai <wens@xxxxxxxx> åå:
>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?

I remember he refused it for Pine A64.

>
>>>
>>>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.