Change internal pullup/pulldown


I use Release 35.3.1 on Orin AGX.

I want to change internal pull for GPIO08 and GPIO27, which I configured as input via sysfs.
What is the easiest way for it?

Thank you.


You can either set it in the pinmux spreadsheet, or set it via writing registers:
The former one requires re-flashing, but the change can be kept after reboot; while the latter one is more convenient for debugging purposes, but will be lost after reboot.


Thank you for hint.

But link inside your link is unavailable:

Could you please update it?

We’ll check it.
For a guide on this changing pinmux thing, the part that really matters is this:

Thank you for help!

1 Like

For the first solution, do I have to edit BCT/tegra234-mb1-bct-pinmux-p3701-0000.dtsi file?
And what about compiling to dtb? Or it is not necessary?

You just make sure the new pinmux file is specified in the board config.
We don’t suggest editing pinmux file manually, and please leave the default one as is.

It’s not needed. Just dtsi is enough.

I’ve decided to follow the second way (via gpio registers).
GPIO08 – OK.
GPIO27 – pullup doesn’t work.

My steps.
Orin AGX dev kit, 35.3.1 Release.

According to pinmux table, GPIO27 has SOC_GPIO39 name.
I want to enable pullup, so I need PADCTL_EDP_SOC_GPIO39_0 register.
It has 0x20 offset.

I need to find a base address register with help of Pad Control Grouping.
EDP PAD related to PADCTL_A16, which has 0x02440000 base address.

As a result, address of register PADCTL_EDP_SOC_GPIO39_0 is 0x02440020

Read value:
demo@tegra-ubuntu:~$ sudo devmem2 0x02440020 w
/dev/mem opened.
Memory mapped at address 0xffffab413000.
Value at address 0x2440020 (0xffffab413020): 0x55

According to register’s description, pull is DOWN.

I want to change PUPD to pullup, I have to change 0x55 to 0x59.

demo@tegra-ubuntu:~$ sudo devmem2 0x02440020 w 0x59
/dev/mem opened.
Memory mapped at address 0xffff8f66f000.
Value at address 0x2440020 (0xffff8f66f020): 0x59
Written 0x59; readback 0x59

After this command, I measure the voltage on pin GPIO27, and it equel to zero, pullup doesn’t work.

Why? Maybe some mistake in TRM?
This procedure works well with GPIO08.

See if the first way or upgrading to 35.5/36.2 helps.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.