Hi Developers,
I want to control the GPIOs of Nvidia Jetson Orin Nano Devlopment Board. I want help regarding the PINMUX configuration. I have downloaded the PINMUX configuration spreadsheet for jetson nx/orin nano but I haven’t understand how to configure it. I tried to follow guide on Jetson Orin NX and Nano Series — Jetson Linux Developer Guide documentation but I didn’t understand. Kindly help me in details how to setup all these things so I can Control GPIO pins.(40pin header). My JetPack version is 6.2 and OS is ubuntu
Thank you!
Hi Saurabh_A,
What’s the Jetpack version in use?
You can refer to the following document for the details about pinmux spreadsheet.
I am using the jetpack 6.2. My board is nvidia jetson orin nano devkit with 4gb ram having ubuntu 24.04 installed. Please help me to configure pinmux to use gpio. and also i didint understand the procedure of spreadsheet and how to flash dtsi files. you don’t mine could you please provide your mail id or microsoft team for detailed assitance?
This document link is not opening
Please search for “Pinmux Application Note” in download center(Jetson Download Center | NVIDIA Developer).
Sorry that we can support only through forum topic.
To apply the change in pinmux spreadsheet, please refer to Jetson Orin NX and Nano Series — NVIDIA Jetson Linux Developer Guide for details.
May I know what’s your use case to configure the pinmux?
i.e. Which GPIO would you like to control?
Thanku for replying.
I want to control the GPIO1 GPIO 9, GPIO 7, GPIO12, GPIO13.
Basically I want to drive 2 PWM loads and one led
Hello Sir , I have configured the pinmux spreadsheet for nvidia jetson orin nano devkit 4gb model and generated the required dtsi files. Can you please tell me how to flash these files into the jetson orin board? in my jetson orin nano board 128GB sdcard is installed not the nvme. Do I need a host computer to flash these settings? And what other things are required to do this? please reply
These links might guide you:
Thank you Sir! I will try this and tell you.
hello Sir, I have generated the dtsi files and placed it in the required directories of Linux_for_Tegra as mentioned in this link: Jetson AGX Orin Platform Adaptation and Bring-Up — NVIDIA Jetson Linux Developer Guide 1 documentation
But i am stuck at building the dts file something and so the changes will refelect in kernel. I need help regarding further procedure and make flashable image. could you please guide me in details. my problem is i am not understanding these nvidia manuals or guides as i am new at these things.
Follow the steps in below link to build and copy dtbs
For final flashing command go through this link;
Okk Thank you Sir.
Sorry to ask you again can you tell me in which directory to place the generated pinmux files (pinmux.dtsi, gpio.dtsi, padvoltage.dtsi) ; And after in which file these pinmux files should be pointed? Because according to the following manual these pinmux configuration files are should be in bootloader directory, but here we are doing kernel level modification and then full os flash.
Please note that the pinmux/gpio dtsi are loaded in early boot(MB1) rather than kernel.
Actually, you can also add them manually in kernel dtb and they would be handled by tegra pinctrl driver if you are familiar with those configurations. If you are not familiar with them, we would suggest just referring to the instruction to configure from pinmux spreadsheet and put them to the correct directory in BSP package. (i.e. pinmux dtsi in <Linux_for_Tegra>/bootloader/generic/BCT/ and gpio dtsi in <Linux_for_Tegra>/bootloader/)
I understood that pinmux.dtsi should be specified in .conf file. So gpio.dtsi should be specified in same or some other file? And after this all I have to do is flashing process. Is it ok or something else settings also needed? I am new at this that’s why I am asking in details.
gpio.dtsi is loaded by pinmux dtsi so that you have to confirm you’ve include the correct gpio.dtsi in pinmux.dtsi,
but you should put them in different path as following:
pinmux dtsi: <Linux_for_Tegra>/bootloader/generic/BCT/
gpio dtsi: <Linux_for_Tegra>/bootloader/
It should be fine if you’ve finished above.
Please check the full flash log for the line including pinmux_config
.
As office time is over now so I will check it Tommorow and let you know. Thank you.
Follow the steps, in above link, where another user was successfully able modify gpio changes using pinmux and do successfull flashing
I did some checks, if you are using “jetson-orin-nano-devkit.conf” config when flashing
open “jetson-orin-nano-devkit.conf” where you you can see:
DEFAULT_EMC_FUSE="0";
PINMUX_CONFIG="tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi";
PMC_CONFIG="tegra234-mb1-bct-padvoltage-p3767-dp-a03.dtsi";
BPFDTB_FILE="tegra234-bpmp-3767-0000-a02-3509-a02.dtb";
EMMC_CFG="flash_t234_qspi_sd.xml";
DTB_FILE=tegra234-p3768-0000+p3767-0000-nv.dtb;
TBCDTB_FILE="${DTB_FILE}";
OVERLAY_DTB_FILE+=",tegra234-p3768-0000+p3767-0000-dynamic.dtbo";
There you change PINMUX_CONFIG variable to yours.
If you are using other configurations such as “jetson-agx-orin-devkit-as-nano4gb.conf” then procedure is to follow which conf files you configuration “sources”, then once you find the one where PINMUX_CONFIG is defined, change it there.
In case of “jetson-agx-orin-devkit-as-nano4gb.conf” it is file “p3701.conf.common”.
gzip: /home/ubuntu/Linux_for_Tegra/kernel/Image: not in gzip format
_BASE_KERNEL_VERSION=5.15.148-tegra
cp: cannot stat ‘/home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/phy/tegra/phy-tegra194-p2u.ko’: No such file or directory
warning: cp -f /home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/phy/tegra/phy-tegra194-p2u.ko /home/ubuntu/Linux_for_Tegra/bootloader/ramdisk_tmp//lib/modules/5.15.148-tegra/kernel/drivers/phy/tegra/phy-tegra194-p2u.ko
cp: cannot stat ‘/home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/pci/controller/dwc/pcie-tegra194.ko’: No such file or directory
warning: cp -f /home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/pci/controller/dwc/pcie-tegra194.ko /home/ubuntu/Linux_for_Tegra/bootloader/ramdisk_tmp//lib/modules/5.15.148-tegra/kernel/drivers/pci/controller/dwc/pcie-tegra194.ko
cp: cannot stat ‘/home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme-core.ko’: No such file or directory
warning: cp -f /home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme-core.ko /home/ubuntu/Linux_for_Tegra/bootloader/ramdisk_tmp//lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme-core.ko
cp: cannot stat ‘/home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme.ko’: No such file or directory
warning: cp -f /home/ubuntu/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme.ko /home/ubuntu/Linux_for_Tegra/bootloader/ramdisk_tmp//lib/modules/5.15.148-tegra/kernel/drivers/nvme/host/nvme.ko
flash_log.txt (34.0 KB)