Orin Jetson AGX Devkit GPIO Pull-up/Pull-down

I am currently working an NVIDIA Jetson AGX Orin Devkit. The issue I am experiencing is that the devkit gpio pins (40 pin header) do not properly pull down.

Here is my setup:

  • I have a SPST switch connected to header pin 7 (SOC_GPIO33 / GPIOPQ.06 / gpio-454).
  • The switch is wired such that when the switch is “on”, the pin will go high (3.3V supplied to the pin). When the switch is “off”, it is wired with an external pull-down resistor.
  • I am using Jetpack 5.1, since I read that previous versions had GPIO issues.
  • I have written the value 0x054 to the pinmux in order to configure it as an input with internal pull down (busybox devmem 0x02430070 w 0x054).
  • I have flashed the orin with pinmux.dtsi from pinmux spreadsheet.

What is happening:

  • When I flip the switch on, the pin reads high (1). I have verified this using the Jetson.GPIO library (GitHub - NVIDIA/jetson-gpio: A Python library that enables the use of Jetson's GPIOs), and looking at the “value” in /sys/class/gpio/PQ.06.

  • When I flip the switch off, the pin floats. The pin will read either 0 or 1 (result from /sys/class/gpio/PQ.06 and Jetson.GPIO library). This is my problem. Why is the pin floating?

So I am wondering why the pin is floating even though I am both externally pulling the switch low and internally pulling the switch low. Any advice on pinmux settings or switch setup would be hugely appreciated.


Sorry, I am no hardware guy so not quite sure what does that mean switch on/off. Is the pin set to input mode or output mode?

For the switch, I am using a SPST analog switch. So when it is on, 3.3V is connected to the pin. When it is off, the pin is connected to ground through a resistor.

The pin is setup as an input with internal pull down.

What’s the result if you pull the pin to GND manually? If that can read 0 correctly, then it means your spst switch has configuration issue which will cause “pin float”. Please check from that point.