Re: [PATCH V2] arm64: dts: ti: k3-am625-beagleplay: Use mmc-pwrseq for wl18xx enable

From: Robert Nelson
Date: Tue Mar 26 2024 - 10:23:52 EST


On Mon, Mar 25, 2024 at 9:35 AM Nishanth Menon <nm@xxxxxx> wrote:
>
> From: Sukrut Bellary <sukrut.bellary@xxxxxxxxx>
>
> BeaglePlay SBC[1] has Texas Instrument's WL18xx WiFi chipset[2].
>
> Currently, WLAN_EN is configured as regulator and regulator-always-on.
> However, the timing and wlan_en sequencing is not correctly modelled.
>
> This causes the sdio access to fail during runtime-pm power operations
> saving or during system suspend/resume/hibernation/freeze operations.
> This is because the WLAN_EN line is not deasserted to low '0' to power
> down the WiFi. So during restore, the WiFi driver tries to load the FW
> without following correct power sequence. WLAN_EN => '1'/assert (high)
> to power-up the chipset.
>
> Use mmc-pwrseq-simple to drive TI's WiFi (WL18xx) chipset enable
> 'WLAN_EN'. mmc-pwrseq-simple provides power sequence flexibility with
> support for post power-on and power-off delays.
>
> Typical log signature that indicates this bug is:
> wl1271_sdio mmc2:0001:2: sdio write failed (-110)
>
> Followed by possibly a kernel warning (depending on firmware present):
> WARNING: CPU: 1 PID: 45 at drivers/net/wireless/ti/wlcore/sdio.c:123 wl12xx_sdio_raw_write+0xe4/0x168 [wlcore_sdio]
>
> [1] https://www.beagleboard.org/boards/beagleplay
> [2] https://www.ti.com/lit/ds/symlink/wl1807mod.pdf
>
> Fixes: f5a731f0787f ("arm64: dts: ti: Add k3-am625-beagleplay")
> Suggested-by: Shengyu Qu <wiagn233@xxxxxxxxxxx>
> Signed-off-by: Sukrut Bellary <sukrut.bellary@xxxxxxxxx>
> Signed-off-by: Nishanth Menon <nm@xxxxxx>

Tested-by: Robert Nelson <robertcnelson@xxxxxxxxx>

With v6.9.0-rc1 on BeaglePlay..

debian@BeaglePlay-57:~$ uname -r
6.9.0-rc1-dirty
debian@BeaglePlay-57:~$ dmesg | grep wl
[ 12.621555] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[ 12.623215] wlcore: WARNING Detected unconfigured mac address in
nvs, derive from fuse instead.
[ 12.623253] wlcore: WARNING This default nvs file can be removed
from the file system
[ 12.630813] wlcore: loaded
[ 13.061833] wlcore: using inverted interrupt logic: 2
[ 13.120366] wlcore: PHY firmware version: Rev 8.2.0.0.243
[ 13.218832] wlcore: firmware booted (Rev 8.9.0.0.83)
[ 13.795189] wlan0: no VHT support on 5 GHz, limiting to HT
[ 13.795232] wlan0: determined local STA to be HT, BW limited to 40 MHz
[ 13.795303] wlan0: determined AP ba:fb:e4:f5:7b:d2 to be HT
[ 13.799461] wlan0: connecting with HT mode, max bandwidth 40 MHz
[ 13.802189] wlan0: authenticate with ba:fb:e4:f5:7b:d2 (local
address=6c:30:2a:2a:84:f0)
[ 13.802246] wlan0: send auth to ba:fb:e4:f5:7b:d2 (try 1/3)
[ 13.873457] wlan0: authenticated
[ 13.873746] wlan0: no VHT support on 5 GHz, limiting to HT
[ 13.873764] wlan0: determined local STA to be HT, BW limited to 40 MHz
[ 13.875500] wlan0: associate with ba:fb:e4:f5:7b:d2 (try 1/3)
[ 13.881981] wlan0: RX AssocResp from ba:fb:e4:f5:7b:d2
(capab=0x1511 status=0 aid=3)
[ 13.889436] wlan0: associated
[ 13.889660] wlan0: Limiting TX power to 30 (30 - 0) dBm as
advertised by ba:fb:e4:f5:7b:d2
[ 13.990788] wlcore: Association completed.

--
Robert Nelson
https://rcn-ee.com/