[PATCH 2/2] arm64: dts: orange-pi-zero-plus2: enable AP6212a WiFi/BT combo

Jagan Teki
2017-11-29T18:09:35Z

On Wed, Nov 29, 2017 at 7:52 PM, Chen-Yu Tsai <wens@csie.org> wrote:
> On Wed, Nov 29, 2017 at 9:53 PM, Jagan Teki <jagan@amarulasolutions.com> wrote:
>> On Sat, Nov 4, 2017 at 1:28 AM, Sergey Matyukevich <geomatsi@gmail.com> wrote:
>>> Enable AP6212a WiFi/BT combo chip on orange-pi-zero-plus2 board:
>>> - WiFi SDIO interface is connected to MMC1
>>> - WiFi REG_ON pin connected to gpio PA9: attach to mmc-pwrseq
>>> - WiFi HOST_WAKE pin connected to gpio PL7
>>> - BT is connected to UART1
>>>
>>> Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
>>> ---
>>> .../allwinner/sun50i-h5-orangepi-zero-plus2.dts | 32 ++++++++++++++++++++++
>>> 1 file changed, 32 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
>>> index a42fd79a62a3..d415b7b67cce 100644
>>> --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
>>> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
>>> @@ -64,6 +64,13 @@
>>> regulator-min-microvolt = <3300000>;
>>> regulator-max-microvolt = <3300000>;
>>> };
>>> +
>>> + wifi_pwrseq: wifi_pwrseq {
>>> + compatible = "mmc-pwrseq-simple";
>>> + pinctrl-names = "default";
>>> + reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
>>> + post-power-on-delay-ms = <200>;
>>> + };
>>> };
>>>
>>> &mmc0 {
>>> @@ -75,6 +82,25 @@
>>> status = "okay";
>>> };
>>>
>>> +&mmc1 {
>>> + pinctrl-names = "default";
>>> + pinctrl-0 = <&mmc1_pins_a>;
>>> + vmmc-supply = <&reg_vcc3v3>;
>>> + vqmmc-supply = <&reg_vcc3v3>;
>>> + mmc-pwrseq = <&wifi_pwrseq>;
>>> + bus-width = <4>;
>>> + non-removable;
>>> + status = "okay";
>>> +
>>> + brcmf: wifi at 1 {
>>> + reg = <1>;
>>> + compatible = "brcm,bcm4329-fmac";
>>> + interrupt-parent = <&r_pio>;
>>> + interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
>>> + interrupt-names = "host-wake";
>>> + };
>>> +};
>>
>> Did you observe this issue, I'm using firmware from buildroot and
>> couldn't find any *.txt from brcm/ I believe we need ass text file for
>> firmware details, did you tried the same from BR?
>
> The text file is not provided as part of the linux-firmware repository.
> You have to fetch it from your vendor BSP. This is documented not just
> for sunxi, but also for the raspberry pi 3.

Yes, took the firmware and txt from [1] and observed the timeout.

# modprobe -a brcmfmac
[ 146.376922] cfg80211: Loading compiled-in X.509 certificates for
regulatory database
[ 146.418193] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 146.425801] platform regulatory.0: Direct firmware load for
regulatory.db failed with error -2
[ 146.434464] cfg80211: failed to load regulatory.db
# [ 146.716016] brcmfmac: brcmf_fw_map_chip_to_name: using
brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[ 147.781032] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000):
clkctl 0x50
[ 148.812968] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000):
clkctl 0x50
[ 149.824945] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000):
clkctl 0x50

[1] https://github.com/RPi-Distro/firmware-nonfree/tree/master/brcm80211/brcm

thanks!
--
Jagan Teki
Senior Linux Kernel Engineer | Amarula Solutions
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.