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.

wl1271_sdio: probe of mmc0:0001:2 failed with error -61

Other Parts Discussed in Thread: WL1271

I am integrating a TI WiLink 1837 TDK module to a custom Xilinx Zynq platform using the TI Wireless drivers from Linux-Xlnx 4.4.0 build. I do not know exactly which WiLink software driver version that is. My device tree entries are as follows:

   wlan_en_reg: fixedregulator@2 {
      compatible = "regulator-fixed";
      regulator-name = "wlan-en-regulator";
      regulator-min-microvolt = <1800000>;
      regulator-max-microvolt = <1800000>;
      gpio = <&gpio0 20 4>;
      startup-delay-us = <70000>;
      enable-active-high;
   };
};

&sdhci0 {
        status = "okay";
        vmmc-supply = <&wlan_en_reg>;
        bus-width = <4>;
        ti,non-removable;
        ti,needs-special-hs-handling;
        cap-power-off-card;
        keep-power-in-suspend;
        #address-cells = <1>;
        #size-cells = <0>;

        wlcore: wlcore@0 {
                compatible = "ti,wl1837";
                interrupts = <0 63 0>;
                interrupt-parent = <&intc>;
                platform-quirks = <0x1>;
                board-ref-clock = <0x4>;
   };
};

I have verified that the enable line is going high and there is brief SD cmd and clock activity when I install kernel modules wlcore.ko, wlcore_sdio.ko and wl18xx.ko. Could you provide tips as to what I should be looking at to help get past this error?

  • I have applied the sub node parsing fix in git.ti.com/.../5f99dcbde8e59f0b719f649f660b7f0537159bc0.

    I get further along but now find myself now getting:

    wlcore: Could not get nvs file ti-connectivity/wl1271-nvs.bin
    wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl18xx-conf.bin failed with error -2
    wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
    wlcore: WARNING falling back to default config
    wlcore: mem_start 00700000 mem_size 0000030C
    wlcore: reg_start 00802000 reg_size 00014578
    wlcore: mem2_start 00B00404 mem2_size 00001000
    <7>wlcore: mem2_start 00B00404 mem2_size 00001000
    wlcore: mem3_start 00C00000 mem3_size 00000400
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 43 at drivers/net/wireless/ti/wlcore/sdio.c:107 wl12xx_sdio_raw_read+0xe4/0x11c [wlcore_sdio]()
    Modules linked in: wl18xx wl12xx wlcore_sdio wlcore_spi wlcore
    CPU: 0 PID: 43 Comm: kworker/0:1 Not tainted 4.4.0-34440-g62693b1 #10
    Hardware name: Xilinx Zynq Platform
    Workqueue: events request_firmware_work_func
    <4>Modules linked in: wl18xx wl12xx wlcore_sdio wlcore_spi wlcor[<c0015440>] (unwind_backtrace) from [<c0012594>] (show_stack+0x10/0x14)
    e
    <4>CPU: 0 PID: 43 Comm: kworker/0:1 Not tainted 4.4.0-34440-g[<c0012594>] (show_stack) from [<c01fd83c>] (dump_stack+0x7c/0xc8)
    62693b1 #10
    <4>Hardware name: Xilinx Zynq Platform
    <4>Workqueu[<c01fd83c>] (dump_stack) from [<c0020c3c>] (warn_slowpath_common+0x80/0xac)
    e: events request_firmware_work_func
    [<c0020c3c>] (warn_slowpath_common) from [<c0020cf8>] (warn_slowpath_null+0x18/0x20)
    <4>[<c0015440>] (unwind_backtrace) from [<c0012594>] (show_stack[<c0020cf8>] (warn_slowpath_null) from [<bf0383a0>] (wl12xx_sdio_raw_read+0xe4/0x11c [wlcore_sdio])
    +0x10/0x14)
    [<bf0383a0>] (wl12xx_sdio_raw_read [wlcore_sdio]) from [<bf006a6c>] (wlcore_nvs_cb+0x228/0x9c4 [wlcore])
    [<bf006a6c>] (wlcore_nvs_cb [wlcore]) from [<c026b540>] (request_firmware_work_func+0x2c/0x54)
    [<c026b540>] (request_firmware_work_func) from [<c0033c50>] (process_one_work+0x1c0/0x2f8)
    <4>[<bf006a6c>] (wlcore_nvs_cb [wlcore]) from [<c026b540>] (requ[<c0033c50>] (process_one_work) from [<c0034818>] (worker_thread+0x2b0/0x3ec)
    est_firmware_work_func+0x2c/0x54)
    [<c0034818>] (worker_thread) from [<c0038700>] (kthread+0xd8/0xec)
    [<c0038700>] (kthread) from [<c000ee78>] (ret_from_fork+0x14/0x3c)
    <4>[<c0034818>] (worker_thread) from [<c0038700>] (kthread+0xd8/---[ end trace 9e8d502ccdf53ded ]---
    0xec)
    wl1271_sdio mmc0:0001:2: sdio read failed (-84)
    wlcore: ERROR couldn't get hw info
    <3>wl1271_sdio mmc0:0001:2: sdio read failed (-84)
  • Hi,

    -84 => "Illegal Byte sequencing" - this would mean some sort of a hardware connection issue.
    You can verify the hardware connections by filling out the wl18xx module integration checklist @ www.ti.com/.../swru437

    Regards,
    Gigi Joseph.
  • There was a problem with level shifting hardware. It was corrected and now I can connect with the wl18xx module. Thank you!