Can any GPIO be used as an interrupt for the Jetson T5000 SoM?

Are all GPIO capable of being an interrupt?

Does the CPU have to poll or is there a way for them to be an event to reduce CPU overhead?

-JS

hello joe_schmo,

I would not say “every” GPIO-capable pad can be used as an interrupt, a pin must be available and configured as GPIO input rather than SFIO in the pinmux.
so.. may I double check your use-case, which GPIO pin you’re going to configure as an interrupt?

I’m trying to interrupt on an over temperature event from an external sensor for the Jetson to respond to. Are only certain GPIO pins interrupt capable?

hello joe_schmo,

just an FYI,
Jetson AGX Thor developer kit has no standard 40-pin GPIO header anymore.

you may refer to Thor carrier board design files,
see-also [P4071_A02_Concept_schematics.pdf] for test point TP234, it’s connected to GPIO38/CAM_FRSYNC3.
please share the sensor model and the carrier-board pin you intend to use; you may also confirm this test point against your carrier-board schematic and configure the pad as GPIO input with input enabled.

once configured, you may test with libgpiod to wait for edge events.
see-also Command-line tools — libgpiod 2.4+devel documentation

Are any of the SOC_GPIO* pins in the Pin Mux Template in the “Verilog Ball Name” column capable of being an interrupt?

hello joe_schmo,

please refer to Identify and Use GPIO Pins. you may test with SOC_GPIO170/GPIO3_PU.00.
you should review the pin settings in the pinmux spreadsheet and re-flash the board with the updated pinmux file.

This doc

https://docs.nvidia.com/jetson/archives/r39.2.1/DeveloperGuide/SD/Bootloader/GpioInterruptMapConfig.html#

# Mentions tegra234 `gpio-intmap` so let's grep tegra264

Linux_for_Tegra$ grep "gpio-intmap" bootloader/generic/BCT/tegra264*
bootloader/generic/BCT/tegra264-mb1-bct-gpioint-p3834-xxxx-p3971-0000.dts:        gpio-intmap@0 {
bootloader/generic/BCT/tegra264-mb1-bct-gpioint-p3834-xxxx-p4071-0000.dts:        gpio-intmap@0 {

grep include bootloader/generic/BCT/tegra264-mb1-bct-gpioint-p3834-xxxx-p4071-0000.dts
            #include "tegra264-mb1-bct-gpioint-common-l4t.dtsi"


# So if you aren't already starting from them, they may be relevant.

bootloader/tegra264-mb1-bct-gpioint-common-l4t.dtsi
bootloader/generic/BCT/tegra264-mb1-bct-gpioint-p3834-xxxx-p4071-0000.dts

The seems correct.

sudo gpioinfo |grep PDD.03
        line  21:       "PDD.03"                input

sudo gpiodetect gpiochip0
gpiochip0 [tegra264-gpio-aon] (30 lines)

sudo gpioget -c 0 21
"21"=inactive

gpiochip0 = tegra264-gpio-aon which is the AON controller
Line 21 on gpiochip0 = "PDD.03"  that's SOC_GPIO21 / connector pin B62 / wake7.
direction=input, value=inactive → kernel already has the pad configured as GPIO input, and nothing is pulling it low right now.

DT label hint. Reference this line as:

interrupt-parent = <&gpio_aon>;
interrupts = <TEGRA264_AON_GPIO(DD, 3) IRQ_TYPE_LEVEL_LOW>;
/* or: gpios = <&gpio_aon TEGRA264_AON_GPIO(DD, 3) GPIO_ACTIVE_LOW>; */
wakeup-source;

&gpio_aon is the DT phandle that resolves to tegra264-gpio-aon — the same chip libgpiod reports as gpiochip0.

nvidia,tegra264-pinmux-aon.yaml. I don’t see this file in jp721 kernel-noble/Documentation