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.

WL1837MOD: Run WL1837MOD with using SPI interface

Part Number: WL1837MOD
Other Parts Discussed in Thread: WL1271

Hi!

I have tried to run WL1837MOD device with using SPI interface instead SDIO. My board is Zynq 7000 based and it has WL1837MOD device connected to PL part. I connected MISO, MOSI, SCLK, SS, IRQ, EN lines. I enabled Linux driver WLCORE_SPI (Linux kernel: 4.14 Xilinx v2018.3 tag) and after powering on I have got messages:

wl1271_spi spi3.0: selected chip family is wl18xx
wl1271_spi spi3.0: SPI read busy-word timeout!
wlcore: WARNING MAC address from fuse not available, using random locally administered addresses.
wlcore: WARNING unsupported chip id: 0x0

After that wlan0 interface is not created and device is not functional. It seems like SPI can not transfer data and driver reads only 0 values. What could be a reason of that problem? WL1837MOD works correctly with using SDIO interface, but I would like to check also SPI mode.

Paweł

  • Hi ,

    Is there a reason why you are using SPI instead of SDIO ? Are you following WL18xxMOD power up sequence : http://www.ti.com/lit/ds/symlink/wl1807mod.pdf ?

    Thanks

    Saurabh

  • Hi!

    Thanks for reply. I would like to use SDIO interface for another peripheral. I know that WL1837MOD has possibility to work with using SPI so I want to implement it. The device on my board works correctly with using SDIO thus it seems power up sequency is right. Does the device is more sensitive on power up sequence in SPI in comparision to SDIO? The documentation does not describe connecting SPI interface. Do you have any guide to realize that?

    Paweł

  • Hi Paweł

    SDIO is the recommended interface to WiLink8 WiFi  . Most  customers  use this interface b/w Host and WiLink8 WiFi IP.  I  don't believe we have a public document for SPI over SDIO interface  . You may refer to : https://elixir.bootlin.com/linux/v4.8/source/Documentation/devicetree/bindings/net/wireless/ti,wlcore,spi.txt and see if it helps . 

    Thanks

    Saurabh

  • I have read that document and I have tried to adapt it for my design. The first doubt for me is connection to device. I connected pins according to scheme:

    SDIO_DATA0 -> SPI_MISO
    SDIO_CMD -> SPI_MOSI
    SDIO_CLK -> SPI_SCK
    SDIO_DATA3 -> SPI_SS

    There is also IRQ line and I connected it to GPIO. Some docs have an information that SDIO_DATA1 should be connected as interrupt when connecting SPI to SDIO. Could you make it clear how should it be connected for WL1837MOD? Does it need both interrupts or DATA1 signal can be unconnected?

    What SPI clock frequency is recommended? Which SPI mode is recommended?

    In the kernel log there is lot of timeouts.

    [  689.456061] wl1271_spi spi3.0: SPI transfer timed out
    [  689.666063] wl1271_spi spi3.0: SPI transfer timed out
    [  689.876065] wl1271_spi spi3.0: SPI transfer timed out
    [  850.321123] wl1271_spi spi3.0: SPI read busy-word timeout!
    [  850.326627] wlcore: wl18xx HW: UNTRIMMED, PG 0.0 (ROM 0x0)

    Thanks for any help.
    Paweł

  • Pawel,

    Pls refer to https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/592569 . I believe document describing WiLink8 SPI interface is shared under NDA. Let us know if you would be interested in signing NDA .

    Thanks

    Saurabh