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: WL1801MOD register descriptions

Part Number: WL1801MOD
Other Parts Discussed in Thread: WL1271

Hi,

The WL1801MOD uses SDIO as a transport. The datasheet doesnt show

any description of internal registers. Does somebody know wheater there

is a document for the WL1801MOD that lists the internal registers and 

how to program it.

Currently I just want to read some id or revision reg to verify that the

SDIO communication works

// Greetings Konrad

  • Hi,

    Your query has been assigned to a relevant expert. We will get back to you soon.

    Best regards,
    Vihang
  • Hi, We do not provide document detailing internal WiLink8 registers . Host SDIO controller will indicate if communication with chip ( cmd52/53 etc. ) succeeded or failed.
    Saurabh
  • Hi,

    After some time I have continued with Wifi bringup and we got struck
    at the below position.

    In short: The first cmd53 in the wl18xx_probe() path fails. Before a lot of cmd52 and

    some others succeed. However the cmd53 seems special. Just before the function 2 

    of device 1 is enabled before cmd53 is issued, which fails. I marked the positions

    bold in the below log.

    Any Ideas what could be wrong?

    // Greetings Konrad

    ...

    [ 26.029831] mmc1: clock 26000000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 4 timing 2
    [ 26.029834] thunderx_mmc 0000:01:01.4: [+] cvm_mmc_set_ios: width:1
    [ 26.029838] SDIO: Enabling device mmc1:0001:2...
    [ 26.029841] mmc1: starting CMD52 arg 00000400 flags 00000195
    [ 26.029844] thunderx_mmc 0000:01:01.4: [+] add cmd52 arg:0x00000400
    [ 26.035324] thunderx_mmc 0000:01:01.4: [ ] >resp: 00001000
    [ 26.035335] mmc1: starting CMD52 arg 80000404 flags 00000195
    [ 26.035339] thunderx_mmc 0000:01:01.4: [+] add cmd52 arg:0x80000404
    [ 26.040992] thunderx_mmc 0000:01:01.4: [ ] >resp: 00001004
    [ 26.041003] mmc1: starting CMD52 arg 00000600 flags 00000195
    [ 26.041006] thunderx_mmc 0000:01:01.4: [+] add cmd52 arg:0x00000600
    [ 26.047267] thunderx_mmc 0000:01:01.4: [ ] >resp: 00001004
    [ 26.047277] SDIO: Enabled device mmc1:0001:2
    [ 26.255902] wlcore: mem_start 00700000 mem_size 0000030C
    [ 26.255904] wlcore: reg_start 00802000 reg_size 00014578
    [ 26.255906] wlcore: mem2_start 00B00404 mem2_size 00001000
    [ 26.255908] wlcore: mem3_start 00C00000 mem3_size 00000400
    [ 26.255913] wl1271_sdio mmc1:0001:2: sdio write 53 addr 0x1ffc4, 4 bytes
    [ 26.255916] mmc1: starting CMD53 arg a7ff8804 flags 000001b5
    [ 26.255919] mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0
    [ 26.255923] thunderx_mmc 0000:01:01.4: [+] add cmd53 arg:0xa7ff8804
    [ 27.217310] thunderx_mmc 0000:01:01.4: [ ] >resp: 00001000
    [ 27.217338] ------------[ cut here ]------------
    [ 27.217347] WARNING: CPU: 0 PID: 111 at drivers/net/wireless/ti/wlcore/sdio.c:145 wl12xx_sdio_raw_write+0xb8/0x1b8
    [ 27.217350] Modules linked in:
    [ 27.217351]
    [ 27.217355] CPU: 0 PID: 111 Comm: kworker/0:2 Not tainted 4.9.0-gd543f58-dirty #30
    [ 27.217356] Hardware name: Cavium ThunderX CN81XX board (DT)
    [ 27.217361] Workqueue: events_freezable mmc_rescan
    [ 27.217364] task: ffff800001ca5780 task.stack: ffff800001cf0000
    [ 27.217366] PC is at wl12xx_sdio_raw_write+0xb8/0x1b8
    [ 27.217369] LR is at wl12xx_sdio_raw_write+0x80/0x1b8
    [ 27.217371] pc : [<ffff000008519be0>] lr : [<ffff000008519ba8>] pstate: 00400149
    [ 27.217372] sp : ffff800001cf36e0
    [ 27.217375] x29: ffff800001cf36e0 x28: 0000000000000000
    [ 27.217379] x27: 0000000000000000 x26: ffff000008ce4000
    [ 27.217382] x25: ffff000008bcf000 x24: 0000000000000000
    [ 27.217385] x23: ffff80000318fa00 x22: 0000000000000004
    [ 27.217388] x21: ffff80000310ac10 x20: 000000000001ffc4
    [ 27.217391] x19: ffff80000310a800 x18: ffff000088c79187
    [ 27.217394] x17: 0000000013c85ff2 x16: 0000000000000078
    [ 27.217397] x15: ffff000008818ce8 x14: 00000000000003f6
    [ 27.217400] x13: 0000000000000000 x12: 00000000000003f6
    [ 27.217403] x11: ffff80000153e180 x10: 0000000000000860
    [ 27.217406] x9 : ffff800001cf0000 x8 : ffff800001ca6040
    [ 27.217409] x7 : 0000000000000000 x6 : ffff800001cf0000
    [ 27.217412] x5 : 0000000000000000 x4 : 0000000000000000
    [ 27.217415] x3 : 0000000000000000 x2 : 00000000ffffffac
    [ 27.217418] x1 : 0000000000000140 x0 : 00000000fffffff3
    [ 27.217419]
    [ 27.217420] ---[ end trace 46e8c460df3265a6 ]---
    [ 27.217422] Call trace:
    [ 27.217425] Exception stack(0xffff800001cf3510 to 0xffff800001cf3640)
    [ 27.217427] 3500: ffff80000310a800 0001000000000000
    [ 27.217431] 3520: ffff800001cf36e0 ffff000008519be0 0000000000000200 ffff80000318fa00
    [ 27.217434] 3540: ffff800001cf3570 0000000000000000 ffff7fe00000c602 000000040000fa00
    [ 27.217437] 3560: 0000000000000000 0000000000000000 a7ff880400000035 0000000000001000
    [ 27.217440] 3580: 0000000000000000 00000000000001b5 00000000ffffffac 0000000000000000
    [ 27.217443] 35a0: ffff800001cf35b0 ffff800001cf35f8 00000000fffffff3 0000000000000140
    [ 27.217445] 35c0: 00000000ffffffac 0000000000000000 0000000000000000 0000000000000000
    [ 27.217449] 35e0: ffff800001cf0000 0000000000000000 ffff800001ca6040 ffff800001cf0000
    [ 27.217452] 3600: 0000000000000860 ffff80000153e180 00000000000003f6 0000000000000000
    [ 27.217455] 3620: 00000000000003f6 ffff000008818ce8 0000000000000078 0000000013c85ff2
    [ 27.217458] [<ffff000008519be0>] wl12xx_sdio_raw_write+0xb8/0x1b8
    [ 27.217462] [<ffff00000850bef8>] wlcore_set_partition+0x78/0x490
    [ 27.217465] [<ffff00000850190c>] wl12xx_set_power_on+0x84/0x138
    [ 27.217468] [<ffff000008506160>] wlcore_nvs_cb+0x110/0x990
    [ 27.217470] [<ffff000008506a7c>] wlcore_probe+0x9c/0xe8
    [ 27.217473] [<ffff00000851a5ac>] wl18xx_probe+0x54/0x98
    [ 27.217477] [<ffff00000846af50>] platform_drv_probe+0x50/0xc0
    [ 27.217480] [<ffff000008469160>] driver_probe_device+0x288/0x418
    [ 27.217483] [<ffff0000084694b4>] __device_attach_driver+0xac/0x158
    [ 27.217486] [<ffff000008466e44>] bus_for_each_drv+0x54/0x98
    [ 27.217489] [<ffff000008468d38>] __device_attach+0xc0/0x150
    [ 27.217491] [<ffff0000084695c0>] device_initial_probe+0x10/0x18
    [ 27.217494] [<ffff000008467f64>] bus_probe_device+0x94/0xa0
    [ 27.217496] [<ffff000008465cac>] device_add+0x394/0x5a8
    [ 27.217499] [<ffff00000846abfc>] platform_device_add+0xfc/0x280
    [ 27.217502] [<ffff00000851a168>] wl1271_probe+0x2e0/0x338
    [ 27.217506] [<ffff0000085b6938>] sdio_bus_probe+0x158/0x180
    [ 27.217509] [<ffff000008469034>] driver_probe_device+0x15c/0x418
    [ 27.217512] [<ffff0000084694b4>] __device_attach_driver+0xac/0x158
    [ 27.217515] [<ffff000008466e44>] bus_for_each_drv+0x54/0x98
    [ 27.217517] [<ffff000008468d38>] __device_attach+0xc0/0x150
    [ 27.217520] [<ffff0000084695c0>] device_initial_probe+0x10/0x18
    [ 27.217523] [<ffff000008467f64>] bus_probe_device+0x94/0xa0
    [ 27.217525] [<ffff000008465cac>] device_add+0x394/0x5a8
    [ 27.217528] [<ffff0000085b6a78>] sdio_add_func+0x60/0x88
    [ 27.217531] [<ffff0000085b5e74>] mmc_attach_sdio+0x254/0x310
    [ 27.217533] [<ffff0000085ad764>] mmc_rescan+0x2c4/0x368
    [ 27.217537] [<ffff0000080d32b0>] process_one_work+0x118/0x370
    [ 27.217539] [<ffff0000080d3558>] worker_thread+0x50/0x4b0
    [ 27.217542] [<ffff0000080d9394>] kthread+0xd4/0xe8
    [ 27.217545] [<ffff000008082b30>] ret_from_fork+0x10/0x20
    [ 27.217549] wl1271_sdio mmc1:0001:2: sdio write failed (-84)
    [ 27.217552] SDIO: Disabling device mmc1:0001:2...
    [ 27.217555] mmc1: starting CMD52 arg 00000400 flags 00000195
    [ 27.217558] thunderx_mmc 0000:01:01.4: [+] add cmd52 arg:0x00000400