We have a custom carrier board for a Jetson Nano, and we are unable to automatically detect the SD card. The only way the card is recognized is by setting GPIO07 to HIGH through a script. We’ve tried many configurations as suggested in various threads, but nothing has changed.
The nvidia,vmmc-always-on property allows us to detect the SD card through the script, but we need to boot from the SD card, so we have to set that PIN high on power on.
Additionally, here is the output of cat /sys/kernel/debug/mmc1/ios before and after setting that PIN high, in case it helps:
Before:
clock: 300000 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: 0 (1 bits)
timing spec: 0 (legacy)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
After:
clock: 204000000 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)
Although I am a developer, my understanding of device tree is quite limited, sorry for that.
If carrier board schematics are needed, I can provide them.
Yes, you didn’t configure anything related to what I just told.
cd-gpios is for card detection gpio. Didn’t see you add for SD2_CD_B
vbus-supply should have a regulator that is using GPIO07 as control. Didn’t see it either.
BTW, this won’t really happen if you understand the boot flow. Modifying kernel would only make you able to detect sdcard in kernel. It won’t let you really boot from it.