Yes, it turned out that when I use the omap3-sbc-3730 devicetree then
wifi starts up ok.
I used omap3-cm-t3730 devicetree since I just use the CM T3730 on a
custom carrier board which does not have any of the stuff on the T35 board
(Actually I wrote a custom device tree inheriting from
omap3-cm-t3730.dts adding a few things needed for my carrier board).
After some experiments I deduce that the only thing missing in
omap3-cm-t3730.dts is the compatible line needs to start with
"compulab,omap3-sbc-t3730".
There is a function "omap3_sbc_t3730_legacy_init" in
arch/arm/mach-omap2/pdata-quirks.c which seems to be triggered by the
string "compulab,omap3-sbc-t3730". My guess is that this is needed for
wifi to be initialized.
Maybe this should better be triggered by "compulab,omap3-cm-t3730"
instead, since the wifi functionality has nothing to do with the t35 board?
On 6/19/20 9:55 AM, H. Nikolaus Schaller wrote:
Hi,
Am 15.06.2020 um 23:04 schrieb Oskar Enoksson <enok@xxxxxxxxxxxxxx>:
Hello all, sorry to bother, I'm urgently in need of some help/hints.
I'm trying to make wifi work on an Compulab CM-T3730, an old OMAP3 board with WL1271 Wifi chip connected to an mmc via SDIO.
I managed to boot the PandaBoard ES with v5.8-rc1 and there, the wl1271 works.
So it may be an omap3 or board specific issue.
BR,
Nikolaus
Everything works with the kernel supported by Texas Instruments 3.0.87 but I need a newer kernel. There is a device tree file omap3-cm-t3730.dts in the Linux mainline sourcees, but it doesn't work for me, the Wifi chip is not detected on the SDIO bus. I'm using mainline linux 5.6.18, but I also tried 4.14, 4.9 and 3.16 with similar results.
What could be the problem?
When I boot I can see (by enabling various verbose printouts) that the appropriate mmc is bound to the right driver omap_hsmmc, but no device is detected on the SDIO bus. Some power pin messages look worrying but maybe it's ok?:
[ 4.584228] platform 480b4000.mmc: Retrying from deferred list
[ 4.584808] bus: 'platform': driver_probe_device: matched device 480b4000.mmc with driver omap_hsmmc
[ 4.584838] bus: 'platform': really_probe: probing driver omap_hsmmc with device 480b4000.mmc
[ 4.585083] omap_hsmmc 480b4000.mmc: no init pinctrl state
[ 4.585144] omap_hsmmc 480b4000.mmc: no sleep pinctrl state
[ 4.585174] omap_hsmmc 480b4000.mmc: no idle pinctrl state
[ 4.585571] omap_hsmmc 480b4000.mmc: GPIO lookup for consumer wp
[ 4.585571] omap_hsmmc 480b4000.mmc: using device tree for GPIO lookup
[ 4.585662] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp@68000000/mmc@480b4000[0]'
[ 4.585723] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp@68000000/mmc@480b4000[0]'
[ 4.585754] omap_hsmmc 480b4000.mmc: using lookup tables for GPIO lookup
[ 4.585784] omap_hsmmc 480b4000.mmc: No GPIO consumer wp found
[ 4.586669] omap_hsmmc 480b4000.mmc: Looking up vmmc-supply from device tree
[ 4.587097] devices_kset: Moving 480b4000.mmc to end of list
[ 4.587127] omap_hsmmc 480b4000.mmc: Linked as a consumer to regulator.9
[ 4.587158] omap_hsmmc 480b4000.mmc: Looking up vqmmc-supply from device tree
[ 4.587615] devices_kset: Moving 480b4000.mmc to end of list
[ 4.587646] omap_hsmmc 480b4000.mmc: Linked as a consumer to regulator.6
[ 4.587677] omap_hsmmc 480b4000.mmc: Looking up pbias-supply from device tree
[ 4.587738] omap_hsmmc 480b4000.mmc: Looking up pbias-supply property in node /ocp@68000000/mmc@480b4000 failed
[ 4.587860] device: 'mmc1': device_add
[ 4.613861] driver: 'omap_hsmmc': driver_bound: bound to device '480b4000.mmc'
[ 4.614105] bus: 'platform': really_probe: bound device 480b4000.mmc to driver omap_hsmmc
When I manually modprobe wlcore, then wlcore_sdio, then wl12xx, dmesg shows:
[ 49.467132] device class 'rfkill': registering
[ 49.467376] device: 'rfkill': device_add
[ 50.070983] device class 'ieee80211': registering
[ 50.072143] Registering platform device 'regulatory.0'. Parent at platform
[ 50.072174] device: 'regulatory.0': device_add
[ 50.072235] bus: 'platform': add device regulatory.0
[ 50.072906] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 50.173675] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 54.470794] bus: 'sdio': add driver wl1271_sdio
[ 59.017272] bus: 'platform': add driver wl12xx_driver
Still, no wlan0 interface visible with "ifconfig -a"
Is something wrong/missing in the devicetree? cap-sdio-irq? mmc-pwrseq? Or is the pin configuration in the device tree wrong? Did anyone ever try the device tree on a board with wl1271 wifi (it is optional)? I don't even have a schematic so I can't double check the pins.
Hints much appreciated!! Device tree file is attached (from mainline kernel 5.6.18)
<omap3-cm-t3730.dts>