Hi,
I am currently working with a custom carrier board using a Jetson Orin NX and I am trying to use UART1_CTS (PR.05 / Pin 36 on the 40-pin header) as a GPIO input.
I created a device tree overlay for this pin with the following configuration:
hdr40-pin36 {
nvidia,pins = “uart1_cts_pr5”;
nvidia,tristate = <0x0>;
nvidia,enable-input = <0x1>;
nvidia,pull = <0x0>;
};
From the software side everything seems correct:
-
After reboot, checking the PADCTL register (
devmem 0x02430090) shows 0x41, which indicates the pin is configured as input with no internal pull resistor. -
The GPIO controller register confirms the pin is configured as input.
-
gpioinfoand kernel debug confirm that PR.05 is owned by Jetson-GPIO and configured as input.
On the hardware side, the signal passes through a TXB series level shifter (TXB0108). On the high-voltage side (3.3V domain) there is an external 100k pull-up resistor. I have attached the schematic/photo of this circuit.
While reviewing the Jetson Nano Developer Kit 40-Pin Expansion Header GPIO Usage Considerations, I noticed the documentation describing the TXB architecture. It explains that TXB devices use a weak push-pull buffer with ~4kΩ series resistance and rely on an internal one-shot circuit to accelerate signal edges. The documentation also states that TXB devices are intended to interface with push-pull CMOS drivers or high-impedance loads, and that weak “keeper” resistors should be greater than 50kΩ to avoid forming a resistor divider with the internal 4kΩ buffer.
Because of that guideline, our design uses a 100k pull-up on the 3.3V side.
However, I also found information on the NVIDIA forum indicating that the maximum input leakage current for Orin NX GPIO in GPIO mode can reach up to 80 µA.
If we estimate the current available from the 100k pull-up resistor on the Jetson side (1.8V domain):
I = V / R
I = 1.8V / 100kΩ ≈ 18 µA
This seems significantly smaller than the possible 80 µA leakage current mentioned in the forum.
Because of this, I am wondering whether the available current from the pull-up resistor might be too small to reliably drive the input through the TXB translator and the Jetson input buffer.
In practice, the behavior I observe is that the GPIO is always read as LOW in my program.
My questions are:
-
Could the combination of the TXB0108 architecture, the 100k pull-up resistor, and the possible GPIO leakage current cause the input to never reach a valid HIGH level?
-
Is a TXB-type level shifter suitable for this kind of button / passive input signal, or would a different level-shifting approach be recommended?
Any clarification or suggestions would be greatly appreciated.
Thank you.

