Hello. I am working on a custom board that was designed with the reference of the Xavier NX P3509_A01_Concept_schematics.pdf
. Although this board supports the Xavier NX, we are currently using the Nano with it.
The board has an on-board WiFi/Bluetooth Module. It connects to the Nano with the SDIO interface. Because the board was designed using the Xavier NX Schematics, the power tree is the same.
P3509_A01 : 19.5V (VDD_DCIN) -> TPS53015 (VDD_5V_SYS) -> TPS53015 (VDD_3V3_SYS) -> TLV70018 (VDD_1V8) -> GS7116S5-ADJ-R (3V3_AO)
Custom Board: 24V (VDD_DCIN) -> TPS53015 (VDD_5V_SYS) -> TPS53015 (VDD_3V3_SYS) -> LDL212 (3V3_AO)
The WiFi/Bluetooth Module is powered using VDD_3V3_SYS. While VDD_1V8 is also supplied to it. It uses the VDD_1V8 as a supply for its SDIO signals.
Right now the card is not initialising. I have enabled the MMC logs which floods the dmesg. I am using the UART debug to monitor the bootlogs.
[ 3.803188] mmc1: SDHCI controller on sdhci-tegra.2 [sdhci-tegra.2] using ADMA 64-bit with 64 bit addr
[ 3.803209] mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz
[ 3.810362] mmc1: mmc_rescan_try_freq: trying to init card at 300000 Hz
[ 3.871230] mmc1: mmc_rescan_try_freq: trying to init card at 200000 Hz
[ 3.920555] mmc1: mmc_rescan_try_freq: trying to init card at 100000 Hz
The above messages are seen in the bootlogs.
I have also tried unbinding and rebinding the sdhci driver. This allows me to get the dmesg logs and mmc tracing logs. I am attaching the bootlogs, dmesg and mmc tracing logs with my following post because of the one link for new user limit.
I have also made the necessary changes to the device tree as suggested by the vendor. Although I am confused about the supplies to be used for vmmc-supply and vqmmc-supply. Right now, I have created two dummy regulators with reference of the regulators in the Xavier NX tegra194-fixed-regulator-p3509-0000-a00.dtsi
file.
Xavier NX Board:
hdr40_vdd_3v3: p3509_vdd_3v3_cvb: regulator@101 {
compatible = "regulator-fixed";
reg = <101>;
regulator-name = "vdd-3v3-cvb";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
p3509_vdd_1v8_cvb: regulator@102 {
compatible = "regulator-fixed";
reg = <102>;
regulator-name = "vdd-1v8-cvb";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
Custom Board:
dummy_regulator_3v3: regulator@11 {
compatible = "regulator-fixed";
reg = <11>;
regulator-name = "dummy_regulator_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
dummy_regulator_1v8: regulator@12 {
compatible = "regulator-fixed";
reg = <12>;
regulator-name = "dummy_regulator_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
Please remember these are dummy regulators for the VDD_3V3_SYS and VDD_1V8. I am also attaching the device tree from runtime taken from /proc/device-tree. You can find the sdhci@700b0400 node in it.
proc_device-tree.dts (287.8 KB)
Can someone please look at this and suggest any changes if required? Also, I am not sure whether to use the nvidia,vmmc-always-on
and nvidia,vqmmc-always-on
properties.
Any input is appreciated.
Thanks and Regards,
Abhijit