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 = <®_cldo2>; >>>>> + vqmmc-supply = <®_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@xxxxxxxxxxxxxxxx. >>> 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@xxxxxxxxxxxxxxxx. > For more options, visit https://groups.google.com/d/optout. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html