Yes, those settings are related to the issue. vmmc-supply and cd-gpios are basically the most important things for adding an extra sdcard slot. cd-gpios are the “card detect pin”, so you need to provide pin 118 to it. As for vmmc-supply, you need to give a 3v3 always-on regulator to it.
I also have a question regarding to your device tree
It seems that your device tree is out-of-order, especially the properties inside sdhci@700b0400. It looks like you are not building it from the kernel source.
If what I am saying is true, please try to use the standard way to create the dtb. That kind of dtb will be more easier for others to check.
Wayne - what is the correct way to modify the settings for the emmc sdio? We have previously used the pinmux tool to create a dtsi file, but that doesn’t seem to be the same way to modify, eg, setting “status = “okay”” under sdhci@700b0400.
I don’t have your schematic so I won’t really know your exact design. If your pin 118 is “card detection” pin, then you should add one “cd-gpios” under your sdmmc3 node and assign this gpio to this cd-gpios property. Not modify the regulator and give pin 118 to it. The regulator with “gpio = <&gpio TEGRA_GPIO(Z, 3) 0>;” means they use GPIO Z3 to control the power. If such design does not exist on your board, then you should just find some 3.3v regulator that does not have gpio and is “regulator-boot-on”.
Also, there is no standard answer for “which files” to modify a device tree if you really understand how device tree works.
For example, I have several platforms (TX1/TX2/Nano/TX2-NX/Xaver AGX/Xavier NX) here, it is not wise to “memorize” what files I need to use for each platform. Once you know which dtb will get flashed, open the source code and start to trace code. That will be more efficient to ask other people “which files should I modify??”.
If you don’t want to trace code, then you just write what you need inside the last dts file and make sure it would take effect in the final dtb file. That’s all.
Check the original source code. Original source code are all human-readable strings. If you just read the dts converted from dtb, it is already hex value and you won’t really able to know what is that if you are a beginner to write a dts file.
For example, from the post you just shared. This guy is using GPIO V0. For your case, you are using GPIO S5.
3v3 is supplied entirely by an external regulator and not supplied by the Nano module.
What we have so far is we are confident the system can see the SD card. Removing and inserting the SD card causes MMCBLK1 to disappear and reappear. The OS also reports the correct size of the SD card. However, we are unable to mount or create any partitions. lsblk will list mmcblk1 as a 59.5G disk with no partitions. gdisk -l /dev/mmblk1 and blkid commands hang.
What else can I try, software/configuration wise, to get the SD card working?
when we add nvidia,vmmc-always-on; the SD card is not detected at all. also, while applying the bl_update_payload with the vmmc-always-on added, the patch seems to hang for a few moments but does eventually complete. We don’t see that behavior when vmmc-always-on is left out
I also fixed my post above to fix the link to the full dtb file.