SDIO interface WIFI module on TX2 NX

Hello ,

I had custom carrier board for TX2 NX.
In that board I need WIFI + Bluetooth connectivity, for that I am trying to take SDIO and UART interfaced WIFI + Bluetooth combo module.
Before that I want to enable SDIO interface of SOM.
That I have enabled by doing following device tree changes.
sdhci@3440000 {
status = “okay”;
mmc-ocr-mask = <0x3>;
uhs-mask = <0x0>;
disable-wp;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&spmic_sd3>;
non-removable;
}
Now I can able to interface SD card through TX2 NX SDIO port.
SD card interface is working fine.
Now I moved to enable WIFI over SDIO interface but there I am slightly confused.
As per TRM of TX2 NX there are total four SDIO controllers are there.

For SD card interface basically SDMMC3 is been used because of that we addresses to sdhci@3440000 port,but according to TRM for WIFI on SDIO we have to consider SDMMC1 i.e. sdhci@3400000.
As per hardware and pinmux table SOM has only one SDIO port and that will be addressed through SDMMC3.

Please guide me that for Wifi over SDIO which controller should be consider (SDMMC1 or SDMMC3) and assign a node to that?

You should not read TRM. You should read the design guide document.

TRM is for every T186 SoC platform. Your TX2-NX may not have all those pins on your module…

Hello,

As per product design guideline I think we need to continue with SDMMC3 only.
Actually I used Azurewave WIFI+ Bluetooth module AW-CM358 in our board.
This module has marvell (currently NXP chip 88W8987)
As I enabled SDIO port and made some more dtsi changes to make it work with this module.
The dtsi changes are as follows,
{
sdhci@3440000 { //sdmmc3
status = “okay”;
mmc-ocr-mask = <0x3>;
uhs-mask = <0x60>;
disable-wp;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&spmic_sd3>;
non-removable;
force-non-removable-rescan;
max-clk-limit = <200000000>;
nvidia,is-sdio;
nvidia,no-mmc;
nvidia,vmmc-always-on;
cap-mmc-highspeed;
cap-sd-highspeed;
only-1-8-v;
nvidia,disable-rtpm;

cm358: cm358_wlan {
	compatible = "marvell,sd8987";
	reg=<1>;

	fw_path = "/lib/firmware/nxp/sduart8987_combo.bin";
	
	sdhci-host = <&sdmmc3>;
	pwr-retry-cnt = <3>;
	bus-width=<4>;
	status = "okay";
	};
	};

};

I compiled drivers and insert the module. On ios command device is detected.

user@user-desktop:~$ sudo cat /sys/kernel/debug/mmc1/ios
[sudo] password for user:
clock: 208000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don’t care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 6 (sd uhs SDR104)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)

Even in dmesg log its detected as second mmc1 device,

user@user-desktop:~$ sudo dmesg | grep mmc1
[ 0.501198] vddio-sdmmc1: 1800 ↔ 3300 mV at 3300 mV
[ 1.458204] mmc1: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 1.655813] mmc1: hw tuning done …
[ 1.657889] mmc1: new ultra high speed SDR104 SDIO card at address 0001
[ 31.818349] vddio-sdmmc1: disabling

But there is an error observed in dmesg log after module insert.

user@user-desktop:~$ sudo dmesg | grep -E “sdhc|mmc”
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2 video=tegrafb earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x1772e0000 gpt rootfs.slot_suffix= tegra_fbmem=0x3a0000@0x96085000 lut_mem=0x2008@0x96081000 usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 no_console_suspend boot.slot_suffix= boot.ratchetvalues=0.2031647.1 vpr_resize bl_prof_dataptr=0x10000@0x175840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2
[ 0.405733] iommu: Adding device 3460000.sdhci to group 0
[ 0.406139] iommu: Adding device 3440000.sdhci to group 1
[ 0.513204] vddio-sdmmc1: 1800 ↔ 3300 mV at 3300 mV
[ 1.453464] sdhci: Secure Digital Host Controller Interface driver
[ 1.453465] sdhci: Copyright(c) Pierre Ossman
[ 1.453467] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.454437] sdhci-tegra 3460000.sdhci: Client registration for eMC Successful
[ 1.456374] sdhci-tegra 3440000.sdhci: runtime pm disabled
[ 1.460432] sdhci-tegra 3440000.sdhci: Client registration for eMC Successful
[ 1.496639] mmc0: SDHCI controller on 3460000.sdhci [3460000.sdhci] using ADMA 64-bit with 64 bit addr
[ 1.504784] mmc1: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[ 1.542561] mmc0: mmc_decode_ext_csd: CMDQ supported: depth: 31, cmdq_support: 1
[ 1.557418] mmc0: periodic cache flush enabled
[ 1.557428] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[ 1.561795] mmcblk0: mmc0:0001 DG4016 14.7 GiB
[ 1.565939] mmcblk0boot0: mmc0:0001 DG4016 partition 1 4.00 MiB
[ 1.570064] mmcblk0boot1: mmc0:0001 DG4016 partition 2 4.00 MiB
[ 1.574191] mmcblk0rpmb: mmc0:0001 DG4016 partition 3 4.00 MiB
[ 1.610760] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33
[ 1.699926] mmc1: hw tuning done …
[ 1.701948] mmc1: new ultra high speed SDR104 SDIO card at address 0001
[ 1.713921] mmcblk mmc0:0001: Card claimed for testing.
[ 1.759993] Root device found: mmcblk0p1
[ 1.761100] Found dev node: /dev/mmcblk0p1
[ 1.779969] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[ 1.781766] Rootfs mounted over mmcblk0p1
[ 2.174759] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
[ 31.817823] vddio-sdmmc1: disabling
[ 132.460966] wlan_sdio mmc1:0001:1: Direct firmware load for /home/user/sduart8987_combo.bin failed with error -2
[ 132.460969] wlan_sdio mmc1:0001:1: Falling back to user helper
[ 132.465147] wlan_sdio: probe of mmc1:0001:1 failed with error -1

Because of this module is not enabled and finally wifi is not enable.

Can you please guide me on this?

maybe you can check the driver about why this error got printed first…

[ 132.460966] wlan_sdio mmc1:0001:1: Direct firmware load for /home/user/sduart8987_combo.bin failed with error -2
[ 132.460969] wlan_sdio mmc1:0001:1: Falling back to user helper
[ 132.465147] wlan_sdio: probe of mmc1:0001:1 failed with error -1

Hello,
We solve the issue.
Thanks a lot for support.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.