Hello,
I was working on Azurewave CM358 WIFI bluetooth module. It consist of NXP chip 88W8987.
I am trying to Interface it with Nano on my custom carrier board.
I already successfully interface with this module with TX2 NX.
Following is the configuration in dtsi,
sdhci@3440000 {
status = “okay”;
nvidia,ddr-tap-delay = <0xb>;
nvidia,en-periodic-calib;
cap-mmc-highspeed;
compatible = “nvidia,tegra186-sdhci”;
cap-sd-highspeed;
mmc-ocr-mask = <0x0>;
uhs-mask = <0x60>;
disable-wp;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
only-1-8-v;
nvidia,is-sdio;
nvidia,disable-rtpm;
vmmc-supply = <&spmic_sd3>;
bus_width = <0x04>;
non-removable;
force-non-removable-rescan;
max-clk-limit = <50000000>;
/delete-property/ ddr-clk-limit;
/delete-property/ iommus;
};
cm358: cm358_wlan {
compatible = “marvell,sd8987”;
reg=<1>;
fw_path = “/lib/firmware/nxp/sduart8987.bin”;
sdhci-host = <&sdmmc3>;
pwr-retry-cnt = <3>;
status = “okay”;
};
And I got following results on ios
user@user-desktop:~$ sudo cat /sys/kernel/debug/mmc1/ios
clock: 208000000 Hz
actual clock: 45333334 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)
Now same thing I was trying with Nano but its not working.
I added few more parameter but still its not working
sdhci@700b0400{
status = "okay";
nvidia,ddr-tap-delay = <0xb>;
nvidia,en-periodic-calib;
cap-mmc-highspeed;
compatible = "nvidia,tegra210-sdhci";
fixed-clock-freq = <25500000 25500000 24000000 47000000 24000000 47000000 94000000 200000000 0 0 0>;
nvidia,vqmmc-always-on;
nvidia,vmmc-always-on;
cd-inverted;
wp-inverted;
built-in;
wp-inverted;
built-in;
cap-sd-highspeed;
mmc-ocr-mask = <0x0>;
uhs-mask = <0x60>;
disable-wp;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
only-1-8-v;
nvidia,is-sdio;
nvidia,disable-rtpm;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
bus_width = <0x04>;
non-removable;
force-non-removable-rescan;
max-clk-limit = <50000000>;
/delete-property/ ddr-clk-limit;
};
cm358: cm358_wlan {
compatible = "marvell,sd8987";
reg=<1>;
fw_path = "/lib/firmware/nxp/sduart8987.bin";
sdhci-host = <&sdmmc3>;
pwr-retry-cnt = <3>;
status = "okay";
};
But I got following result
user@user-desktop:~$ sudo dmesg | grep sdhci
[sudo] password for user:
[ 0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1075 core_edp_ma=4000 gpt tegra_fbmem=0x3a0000@0x92cb4000 is_hdmi_initialised=1 earlycon=uart8250,mmio32,0x70006000 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1
[ 0.532657] iommu: Adding device sdhci-tegra.3 to group 31
[ 0.532721] platform sdhci-tegra.3: domain=ffffffc0f956ee58 allocates as[0]=ffffffc0f9430520
[ 0.533189] iommu: Adding device sdhci-tegra.2 to group 32
[ 0.533307] platform sdhci-tegra.2: domain=ffffffc0f95790d8 allocates as[0]=ffffffc0f9430588
[ 3.909647] sdhci: Secure Digital Host Controller Interface driver
[ 3.909648] sdhci: Copyright(c) Pierre Ossman
[ 3.909650] sdhci-pltfm: SDHCI platform and OF driver helper
[ 3.910000] sdhci-tegra sdhci-tegra.3: Client registration for eMC Successful
[ 3.914581] sdhci-tegra sdhci-tegra.2: runtime pm disabled
[ 3.914866] sdhci-tegra sdhci-tegra.2: Client registration for eMC Successful
[ 3.955309] mmc0: SDHCI controller on sdhci-tegra.3 [sdhci-tegra.3] using ADMA 64-bit with 64 bit addr
[ 3.963292] mmc1: SDHCI controller on sdhci-tegra.2 [sdhci-tegra.2] using ADMA 64-bit with 64 bit addr
user@user-desktop:~$ sudo dmesg | grep mmc1
[ 0.642438] tegra210_dvfs: no clock found for sdmmc1_ddr
[ 3.963292] mmc1: SDHCI controller on sdhci-tegra.2 [sdhci-tegra.2] using ADMA 64-bit with 64 bit addr
user@user-desktop:~$ sudo cat /sys/kernel/debug/mmc1/ios
clock: 0 Hz
actual clock: 99221 Hz
vdd: 0 (invalid)
bus mode: 2 (push-pull)
chip select: 0 (don’t care)
power mode: 0 (off)
bus width: 0 (1 bits)
timing spec: 0 (legacy)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)
user@user-desktop:~$
As such from debug it looks like its not getting sdmmc1_ddr clock and because of that its failing.
Please guide me on this issue.