Re: WL1271 on CM-T3730

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux