This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1801MOD: Android 9: Can not load wifi driver on iMX6DL custom board.

Part Number: WL1801MOD

Hi,

We have an iMX6DL custom board, it works well on Android 6 (kernel 4.1.15) with the wl18xx module. Now we are working on Android 9 (kernel 4.14.98) using almost the same dts from android 6. But the wl18xx driver in-tree seems to be stuck at probe function, wl12xx_set_power_on return -110. From SDIO messages, we found that the CMD5 return -110. So the wlan0 interface isn't created yet.

Do you know why the CMD5 failed when the regulator is re-enabled by the kernel please?

Best regards,
Thai Ha

Here is an extract from the dmesg (the GPIO175 is the WLAN_EN on our board):

[ 4.678374] wlan-en-regulator: _regulator_do_enable
[ 4.681997] gpiod_set_value_cansleep GPIO175 GPIOF_OUT_INIT_HIGH 1 value 1
[ 4.687599] wlan-en-regulator: regulator_ena_gpio_ctrl GPIO175 enable_count 1
[ 4.778015] wlan-en-regulator: _regulator_do_enable ret 0
[ 4.848469] mmc3: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4.870857] mmc3: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4.892624] mmc3: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4.912611] mmc3: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 5.061613] mmc3: req done (CMD5): 0: a0ffffc0 00000000 00000000 00000000
[ 5.505563] mmc3: req done (CMD5): 0: a0ffffc0 00000000 00000000 00000000
[ 5.817346] mmc3: req done (CMD3): 0: 00010000 00000000 00000000 00000000
[ 5.827852] mmc3: req done (CMD7): 0: 00001ec7 00000000 00000000 00000000
[ 5.838164] mmc3: req done (CMD52): 0: 00001043 00000000 00000000 00000000
....
....
[ 8.118437] mmc3: req done (CMD52): 0: 00001002 00000000 00000000 00000000
[ 8.911596] gpiod_set_value_cansleep GPIO175 GPIOF_OUT_INIT_HIGH 1 value 0
[ 8.917209] wlan-en-regulator: regulator_ena_gpio_ctrl GPIO175 enable_count 0
[ 9.181568] wlan-en-regulator: regulator_late_cleanup disabling
[ 15.264037] wlan-en-regulator: _regulator_do_enable
[ 15.269190] gpiod_set_value_cansleep GPIO175 GPIOF_OUT_INIT_HIGH 1 value 1
[ 15.276183] wlan-en-regulator: regulator_ena_gpio_ctrl GPIO175 enable_count 1
[ 15.376232] wlan-en-regulator: _regulator_do_enable ret 0
[ 15.448073] mmc3: starting CMD52 arg 00000c00 flags 00000195
[ 26.088013] mmc3: Timeout waiting for hardware cmd interrupt.
[ 26.178687] mmc3: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 36.418573] mmc3: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 36.443418] mmc3: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 46.658369] mmc3: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 88.258503] mmc3: req done (CMD5): -110: 00000000 00000000 00000000 00000000

# cat /sys/kernel/debug/gpio

gpiochip5: GPIOs 160-191, parent: platform/20b0000.gpio, 20b0000.gpio:
  gpio-175 (                                     |wlan-en-regulator ) out hi

Full dmesg file
dts file