There are some pins in the AGX Orin AO_HV IO block that I need to use at 1.8V but this block is 3.3V by default in the Orin. I know there is a setting in the pinmux spreadsheet for changing the voltage between off/1.8V/3.3V. However, I noticed that the developer guide mentions that
If pad voltage is lower than the I/O power rail, then it can damage the SoC pads. Consequently, configuring the correct pad voltage is required based on the power tree.
I am not sure which I/O power rail this refers to and I have the following questions:
Is it possible to change the IO voltage of the AO_HV block from 3.3V to 1.8V?
If it is possible, is the only required step to change the pinmux spreadsheet and to take the generated padvoltage dtsi into use or are there other steps that need to be done (changing some power rail settings somewhere?)
is it camera use-case?
if yes, please check reference driver for using 1v8 power-supply directly.
for instance, $public_sources/kernel_src/hardware/nvidia/platform/t23x/concord/kernel-dts/cvb/tegra234-p3737-0000-camera-imx274-dual.dtsi
Thanks for the reference. I checked the tegra234-p3737-0000-camera-imx274-dual.dtsi device tree file. I’m not sure if I understood it correctly, but it looks to me like the power supplies (e.g. vana-supply, vif-supply) are for the camera, not for the Orin pin I/O?
I have no issues powering the camera system. The problem I am having is that some of the Orin pins that are connected to the camera system are at 3.3V I/O level and the camera system I am using has 1.8V I/O. I am trying to lower the Orin side GPIO I/O from 3.3V to 1.8V so that the GPIO voltages on both sides would match.
This is why I want to know if the Orin AO_HV block pad voltage can be changed? And if it can be changed, how can it be changed correctly so that the SoC pads are not damaged?
yes, that’s correct. they’re power supplies for camera function usage.
yes, you may update the voltage via pinmux update.
however, for this block, there’s no option for individual GPIO voltage configuration. any change to voltage level will apply to the whole block.
for instance,
there’re are CAN at 3.3V, please double confirmed there is no risk of damage on Orin I/O pins in this case where we change the VDDIO_C I/O block voltage to be 1.8V but drive 3.3V signal into the input.
any change to voltage level will apply to the whole block.
please double confirmed there is no risk of damage on Orin I/O pins in this case where we change the VDDIO_C I/O block voltage to be 1.8V but drive 3.3V signal into the input.
I have checked the connections to the VDDIO_C pins and there are no 3.3V signals connected to pins of that block in my setup. All of the I/O connected to that block from outside of the SoM is 1.8V.
However, there is this CAN1_ERR (GPIO3_PBB.03) pin in the VDDIO_C block in the pinmux sheet that is only within the Orin SoM (not routed outside of the module) and it is marked for “PWR_SAVE_MODE_N” use. I could not find any reference to this PWR_SAVE_MODE_N function in the documentation or the L4T sources.
Could you clarify if it is OK to have the CAN1_ERR PWR_SAVE_MODE_N Orin-internal pin operate at 1.8V I/O level?
Thanks for the help. I was now able to change the VDDIO_C pad voltage with the pinmux sheet and the pins measured 1.8V when driven high by the Orin, which is good.