Changing Power Rail for sdmmc1(3v3 to 1v8) in AGX Orin Industrial

Hello Everyone,

I am trying to change sdmmc1_hv from 3v3 to 1v8. But the documentation says that i have to change power rail for that rail, otherwise it will be damaged. How i can do that?


io-pad-defaults {
   sdmmc1_hv {
       nvidia,io-pad-init-voltage = <IO_PAD_VOLTAGE_3_3V>;
};

I know that I have to change IO_PAD_VOLTAGE_3_3V to IO_PAD_VOLTAGE_1_8V, but what next? I can’t find any rail named sdmmc1.

Thanks in advance

Hi,
Please check the quick start in developer guide and make sure you follow the steps one by one:
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/IN/QuickStart.html
If the device still cannot be flashed/booted, please refer to the page to get uart log from the device:
https://elinux.org/Jetson/General_debug
If you are using custom board, you can compare uart log of developer kit and custom board to get more information.

Thanks!

Hello,
Yes, I am using a custom board, but I can’t find any information about the SDMMC power rail. I don’t want to damage the board, which is why I prefer to ask before proceeding.

“If a pad’s voltage is higher than that of the corresponding I/O power rail, the pin does not work on that level. If a pad’s voltage is lower, it may damage the SoC pads.”

Where I can change settings of that i/O power rail for SDMMC1?

please refer to

I am already using “only-1-8-v” property in dt, so you mean that i dont have to change PAD Voltage settings?

I have double checked using command below, and the property is already there.

> "ls /proc/device-tree/bus\@0/mmc\@3400000/"

Just to clarify. What is the exact purpose you want here? You enable an interface on sdmmc1?

I want to change voltage on that sdmmc1 pins from 3v3 to 1v8. I have WIFI SDIO IC which is working on 1V8 but I have 3v3 pullups internally on that SDMMC pins(measured), so I have to make SDMMC working on 1v8.

I just have found out that driver is automatically chaninging its pad voltage, so i think i messed up with some bad properties. I will try to set it again.

Is there any script to flash device-tree to the target partition, without reflashing whole board? (yocto)

Which jetpack release are you using?

Jetpack 6.0 - L4T r36.3.0

I think I have the same issue as the author of that post, because I have really similar dt settings of the mmc@3400000 , and it still keeps the 3v3. When it is connected to the 1v8 pull ups i receive the 2v2 volts. I think I have to analyze sdhci-tegra driver to better understand when the pad is configured to the 3v3 or 1v8.

nvidia,only-1-8-v not working for me :(

Is it possible to test rel-35 too because I see that property is still handled in rel-35 but not present on rel-36.

Also, it is “only-1-8-v;” not with any “nvidia” string.

Yeah, now i see that it is present on the rel-35. So is there any way to enable 1v8 on sdmmc on rel-36, i would prefer to stay on current release of jetpack.

Could you help me test if this on rel35 could really make what you need?

If it can, we may need to update rel36 driver.

Yes, I am preparing jetpack 35.6 right now. Thank you so much for support!

I can confirm that on rel35 it is working fine:

root@tegra-ubuntu:~# cat /sys/kernel/debug/mmc1/ios 
clock:          0 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)

The signal voltage is finally 1.8V once the kernel is running, but before the kernel loads, it’s at 3.3V. Is it possible to modify this behavior using the pad_voltage.dtsi file?

1 Like

Is it even possible to reduce the signal voltage to 1.8V in rel36 without updating sdhci-tegra?​

1 Like

I think the io-pad-defaults shall control the bootloader in early stage. Didn’t it work?

I haven’t attempted changing the io-pad-defaults because there’s a reference in the documentation to the I/O power rail, which I don’t fully understand. My initial question is whether it’s safe to simply change the io-pad-defaults from 3.3V to 1.8V, or if additional steps are required.

And how can I change signal voltage from 3.3V to 1.8V in rel36 in sdmmc1?

clock:          0 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: 0 (3.30 V)
driver type:    0 (driver type B)