# Controlling GPIO output pin via gpioset does not work in JP 6.x

**URL:** <https://forums.developer.nvidia.com/t/controlling-gpio-output-pin-via-gpioset-does-not-work-in-jp-6-x/320308>\
**Category:** Jetson Orin Nano\
**Tags:** gpio\
**Created:** [January 16, 2025, 4:09pm UTC](https://forums.developer.nvidia.com/t/controlling-gpio-output-pin-via-gpioset-does-not-work-in-jp-6-x/320308 "2025-01-16T16:09:12Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![KevinFFF](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/kevinfff/32/15508_2.png) [@KevinFFF](https://forums.developer.nvidia.com/u/KevinFFF)\
**Post date:** [February 3, 2025, 4:28am UTC](https://forums.developer.nvidia.com/t/controlling-gpio-output-pin-via-gpioset-does-not-work-in-jp-6-x/320308/5 "2025-02-03T04:28:42Z")

</div>

Hi ahans123,

Thanks for pointing out the GPIO control issue in JP6.

> [@ahans123](#):
>
> This page tells you to search for “Orin Series Pinmux” in the Jetson Download Center. However, doing so yields only one result, which is the AGX Orin one, not Nano! Searching for “nano series pinmux” gives the correct link. Note that a search just for “pin” gives a couple of pinmux results, but not the Orin Nano one. That explains why I had such a hard time finding that spreadsheet. Here is the complete link: [https://developer.nvidia.com/downloads/jetson-orin-nx-and-orin-nano-series-pinmux-config-template](https://developer.nvidia.com/downloads/jetson-orin-nx-and-orin-nano-series-pinmux-config-template)

AGX Orin and Orin Nano/NX are from similar Orin platform(T234), but they are different modules and we have separate guide for them.  
It is caused from that the adaptation guide you were referring is for `AGX Orin`( [Jetson AGX Orin Platform Adaptation and Bring-Up — NVIDIA Jetson Linux Developer Guide 1 documentation](https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html#pinmux-changes))  
If you are using `Orin Nano`, please refer to [Jetson Orin NX and Nano Series — NVIDIA Jetson Linux Developer Guide 1 documentation](https://docs.nvidia.com/jetson/archives/r36.4.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonOrinNxNanoSeries.html).

> [@ahans123](#):
>
> Without this [example](https://forums.developer.nvidia.com/t/gpio-issues-in-jetpack-6-0-with-linux-36-3/292802/19), I would have had a very hard time finding out the address. “TRM” in point A is the Technical Reference Manual, which is then linked in point D. It’s the exact same document.

Yes, TRM is Technical Reference Manual and you can download it from [Jetson Download Center](https://developer.nvidia.com/embedded/downloads).  
For the PADCTL address, you can also refer to [Calculating/Getting register adresses of gpio pins - #7 by jost38](https://forums.developer.nvidia.com/t/calculating-getting-register-adresses-of-gpio-pins/311661/7)

> [@ahans123](#):
>
> So once I had the address, I was able to read the value using `busybox devmem <address>`. It was always giving me 0x0000005A. The documentation says that for an input, bits 4 and 6 are set, which they indeed are in 0x0000005A. Flipping those, I get 0x0000000A. Once I had written that value to the register, I was able to use the pin as output!

Let me take an example for `PAC.06`(SOC\_GPIO59).  
Once you find its pinmux address(0x02448030 = Base+offset = 0x02448000+0x30 ), you can run `sudo busybox devmem 0x02448030 ` to get its value.  
Bit 0:1 → Functions  
Bit 2:3 → PULL  
Bit 4 → TRISTATE  
Bit 6 → ENABLE Input  
Bit 10 → SFIO/GPIO  
Above information should be included in TRM.

> [@ahans123](#):
>
> I agree with @bremen_matt and @tteuber in the aforementioned [thread](https://forums.developer.nvidia.com/t/gpio-issues-in-jetpack-6-0-with-linux-36-3/292802) that changing the default behaviour without explicit note or a migration guide is not exactly customer friendly. On top of that we have @DaveYYY’s very inappropriate tone.

Sorry for the inconvenience and inappropriate response from us.  
The most of pins are configured as GPIO Input by default, but you can configure them as `Bi-directional` in pinmux spreadsheet instead. We’ve also mentioned it in developer guide as following:

 ![image](https://global.discourse-cdn.com/nvidia/original/4X/f/c/e/fce396bc6e7d1620ed8858fe5e207ebec63617b5.png)

However, we have a [known issue](https://forums.developer.nvidia.com/t/jetson-agx-orin-faq/237459#p-1101540-q-i-cannot-control-gpio-in-jp60-and-jp61-but-it-works-with-jp5x-2) in both JP6.0(R36.3.0) and JP6.1(R36.4.0), which has been fixed in JP6.2(R36.4.3).

> [@ahans123](#):
>
> That spreadsheet only working with Excel on Windows really is the icing on the cake here!

About pinmux spreadsheet only works with Excel on Windows, it is caused that the macro features were designed there.  
Actually, you can also modify the pinmux dtsi file directly if you are familiar with those attributes.  
Normally, we would just suggest user using the pinmux spreasheet in case some attributes were not configured correctly.

Moreover, we’ve also discussed GPIO control issue in JP6 with internal.  
We collected many feedbacks from forum.  
The good news is that it seems Jetson-IO would support to configure pins on 40-pins header to use them as GPIO or specific functions in the next release.

---

_[View the full topic](https://forums.developer.nvidia.com/t/controlling-gpio-output-pin-via-gpioset-does-not-work-in-jp-6-x/320308)._
