TS-7180 DIO: Difference between revisions

From embeddedTS Manuals
No edit summary
(Add link to gpiod documentation)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The TS-7180 provides seven IO ports that can sink up to 500mA, or withstand up to 30V at the input. These are available on the [[TS-7180#Terminal_Blocks|P3]] connector. DIO_1 through DIO_7 appear as GPIO #37 through #43 (when used as inputs), and as GPIO #22 through #28 (when used as outputs). For example, to read the state of DIO_1, enter the following command:
The i.MX6UL CPU and FPGA GPIO are exposed using a kernel character device. This interface provides a set of files and directories for interacting with GPIO which can be used from any language that interact with special files in linux using ioctl() or similar. For our platforms, we pre-install the "libgpiod" library and binaries package. Documentation on this package can be found [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/README here]. This section only covers using these userspace tools and does not provide guidance on using the libgpiod library in end applications. Please see the [https://libgpiod.readthedocs.io/en/latest/modules.html libgpiod documentation] for this purpose.
 
A user with suitable permissions to read and write /dev/gpiochip* files can immediately interact with GPIO pins. For example, to read the push_sw:
<source lang=bash>
<source lang=bash>
tshwctl -a 37 -r
gpioget 2 18 # Returns 0 when pressed, 1 when not
</source>
</source>
Bit #2 will reflect the state of the pin.
Multiple pins in the same chip can be read simultaneously by passing multiple pin numbers separated by spaces.


To drive DIO_1 low, enter the following command:
This GPIO interface also provides labels for all the I/O. To get a reference from the board of all GPIO run:
<source lang=bash>
<source lang=bash>
tshwctl -a 22 -w 3
gpioinfo
</source>
</source>


{|
The TS-7180 provides seven IO ports that can sink up to 500mA, or withstand up to 30V at the input.  These are available on the [[TS-7180#Terminal_Blocks|P3]] connector.  DIO_1 through DIO_7 appear as GPIO bank 5 io 37 through 43 (when used as inputs), and as GPIO bank 5 io 22 through 28 (when used as outputs).  For example, to read the state of DIO_1, enter the following command:
| colspan=3 |
<source lang=bash>
|-
gpioget 5 37
|
</source>
{| class="wikitable"
|+ DIO
|-
! DIO #
! INPUT GPIO #
! OUTPUT GPIO #
|-
| DIO_1
| 37
| 22
|-
| DIO_2
| 38
| 23
|-
| DIO_3
| 39
| 24
|-
| DIO_4
| 40
| 25
|-
| DIO_5
| 41
| 26
|-
| DIO_6
| 42
| 27
|-
| DIO_7
| 43
| 28
|}
|}
 
Additionally, there are four input-only pins, DIG_IN_1 through DIG_IN_4, available on [[TS-7180#Terminal_Blocks|P3]] connector.  To read from these pins, run:


To drive enable the 500mA sink, enter the following command:
<source lang=bash>
<source lang=bash>
tshwctl -a N -r
gpioset 5 22=1
</source>
</source>


...where N is 32 through 35.
<pre>
gpiochip0 - 32 lines:
line  0: "BOOT_MODE_0" unused input active-high
line  1:      unnamed      unused  input  active-high
line  2:  "I2C_1_CLK"      unused  input  active-high
line  3:  "I2C_1_DAT"      unused  input  active-high
line  4:      "ADC_1"      unused  input  active-high
line  5:      "ADC_2"      unused  input  active-high
line  6:  "ETH_MDIO"      unused  input  active-high
line  7:    "ETH_MDC"      unused  input  active-high
line  8:      "ADC_3"      unused  input  active-high
line  9:      "ADC_4"      unused  input  active-high
line  10:      unnamed      unused  input  active-high
line  11:      unnamed      unused  input  active-high
line  12:      unnamed      unused  input  active-high
line  13:      unnamed      unused  input  active-high
line  14:      unnamed      unused  input  active-high
line  15:      unnamed      unused  input  active-high
line  16: "CONSOLE_TXD" unused input active-high
line  17: "CONSOLE_RXD" unused input active-high
line  18:    "SPARE_1"      unused  input  active-high
line  19:    "EN_485"      unused  input  active-high
line  20:  "UART2_TXD"      unused  input  active-high
line  21:  "UART2_RXD"      unused  input  active-high
line  22:  "CAN_2_TXD"      unused  input  active-high
line  23: "CAN2_RXD_3V" unused input active-high
line  24:  "UART3_TXD"      unused  input  active-high
line  25:  "UART3_RXD"      unused  input  active-high
line  26: "UART3_CTS#"      unused  input  active-high
line  27: "UART3_RTS#"      unused  input  active-high
line  28:  "UART4_TXD"      unused  input  active-high
line  29:  "UART4_RXD"      unused  input  active-high
line  30:  "UART5_TXD"      unused  input  active-high
line  31:  "UART5_RXD"      unused  input  active-high
gpiochip1 - 32 lines:
line  0: "ENET1_RX_DATA0" unused input active-high
line  1: "ENET1_RX_DATA1" unused input active-high
line  2: "ENET1_RX_EN" unused input active-high
line  3: "ENET1_TX_DATA0" unused input active-high
line  4: "ENET1_TX_DATA1" unused input active-high
line  5: "ENET1_TX_EN" unused input active-high
line  6: "ENET1_TX_CLK" unused input active-high
line  7: "ENET1_RX_ER" unused input active-high
line  8: "ENET2_RX_DATA0" unused input active-high
line  9: "ENET2_RX_DATA1" unused input active-high
line  10: "ENET2_RX_EN" unused input active-high
line  11: "ENET2_TX_DATA0" unused input active-high
line  12: "ENET2_TX_DATA1" unused input active-high
line  13: "ENET2_TX_EN" unused input active-high
line  14: "ENET2_TX_CLK" unused input active-high
line  15: "ENET2_RX_ER" unused input active-high
line  16:    "SD_CMD"      unused  input  active-high
line  17:    "SD_CLK"      unused  input  active-high
line  18:      "SD_D0"      unused  input  active-high
line  19:      "SD_D1"      unused  input  active-high
line  20:      "SD_D2"      unused  input  active-high
line  21:      "SD_D3"      unused  input  active-high
line  22:      unnamed      unused  input  active-high
line  23:      unnamed      unused  input  active-high
line  24:      unnamed      unused  input  active-high
line  25:      unnamed      unused  input  active-high
line  26:      unnamed      unused  input  active-high
line  27:      unnamed      unused  input  active-high
line  28:      unnamed      unused  input  active-high
line  29:      unnamed      unused  input  active-high
line  30:      unnamed      unused  input  active-high
line  31:      unnamed      unused  input  active-high
gpiochip2 - 32 lines:
line  0: "HD1_SPI_CS"    "spi_imx"  output  active-high [used]
line  1: "JTAG_FPGA_TCK" unused input active-high
line  2: "JTAG_FPGA_TMS" unused input active-high
line  3: "JTAG_FPGA_TDI" unused input active-high
line  4:      "WDOG#"      unused  input  active-high
line  5:  "I2C_3_DAT"      unused  input  active-high
line  6:  "I2C_3_CLK"      unused  input  active-high
line  7:      unnamed      unused  input  active-high
line  8: "HD1_I2C_CLK" "scl" output active-high [used]
line  9: "HD1_I2C_DAT" "sda" output active-high [used]
line  10: "HD1_DIG_INPUT" unused input active-high
line  11: "NO_CHRG_JMP#" unused input active-high
line  12: "EN_NIM_USB#" unused input active-high
line  13:  "CAN_1_TXD"      unused  input  active-high
line  14: "CAN1_RXD_3V" unused input active-high
line  15:  "XBEE_CTS#"      unused  input  active-high
line  16: "U_BOOT_JMP#" unused input active-high
line  17:      unnamed      unused  input  active-high
line  18: "PUSH_SW_CPU#" unused input active-high
line  19: "NIMBEL_PWR_ON" unused input active-high
line  20:      unnamed      unused  input  active-high
line  21:  "UART7_TXD"      unused  input  active-high
line  22:  "UART7_RXD"      unused  input  active-high
line  23:        "ID4"      unused  input  active-high
line  24: "JTAG_FPGA_TDO" unused input active-high
line  25:  "UART8_TXD"      unused  input  active-high
line  26:  "UART8_RXD"      unused  input  active-high
line  27:        "ID1"      unused  input  active-high
line  28: "ETH_PHY_RESET#" unused input active-high
line  29:      unnamed      unused  input  active-high
line  30:      unnamed      unused  input  active-high
line  31:      unnamed      unused  input  active-high
gpiochip3 - 32 lines:
line  0:  "EMMC_CLK"      unused  input  active-high
line  1:  "EMMC_CMD"      unused  input  active-high
line  2:    "EMMC_D0"      unused  input  active-high
line  3:    "EMMC_D1"      unused  input  active-high
line  4:    "EMMC_D2"      unused  input  active-high
line  5:    "EMMC_D3"      unused  input  active-high
line  6:  "SPI_4_CLK"      unused  input  active-high
line  7: "SPI_4_MOSI"      unused  input  active-high
line  8: "SPI_4_MISO"      unused  input  active-high
line  9:  "SPI_4_CS#"    "spi_imx"  output  active-high [used]
line  10:  "MAG_N_IRQ"      unused  input  active-high
line  11: "FPGA_RESET#" unused input active-high
line  12: "SPI_3_FPGA_CS#" "spi_imx" output active-high [used]
line  13:  "SPI_3_CLK"      unused  input  active-high
line  14: "SPI_3_MOSI"      unused  input  active-high
line  15: "SPI_3_MISO"      unused  input  active-high
line  16:      "PWM_5"      unused  input  active-high
line  17:  "UART6_TXD"      unused  input  active-high
line  18:  "UART6_RXD"      unused  input  active-high
line  19:        "ID5"      unused  input  active-high
line  20:  "GYRO_INT"      unused  input  active-high
line  21: "6UL_FORCE_5V_ON" unused input active-high
line  22: "EN_EMMC_3.3V#" "?" output active-low [used]
line  23: "EN_YEL_LED#" "?" output active-low [used]
line  24: "EN_RED_LED#" "?" output active-low [used]
line  25: "EN_GRN_LED#" "?" output active-low [used]
line  26: "EN_BLU_LED"          "?"  output  active-high [used]
line  27: "FRAM_SPI_CS#" "spi_imx" output active-high [used]
line  28: "SD_VSEL_1.8V" unused input active-high
line  29:      unnamed      unused  input  active-high
line  30:      unnamed      unused  input  active-high
line  31:      unnamed      unused  input  active-high
gpiochip4 - 32 lines:
line  0: "POWER_FAIL"      unused  input  active-high
line  1:  "FPGA_IRQ"      unused  input  active-high
line  2:      unnamed      unused  input  active-high
line  3:  "GPIO_DVFS"          "?"  output  active-high [used]
line  4:      unnamed      unused  input  active-high
line  5: "SILAB_C2_CLK" unused input active-high
line  6: "SILAB_C2_DATA" unused input active-high
line  7: "SILAB_C2_RESET" unused input active-high
line  8:    "SPARE_4"      unused  input  active-high
line  9:      unnamed      unused  input  active-high
line  10:      unnamed      unused  input  active-high
line  11:      unnamed      unused  input  active-high
line  12:      unnamed      unused  input  active-high
line  13:      unnamed      unused  input  active-high
line  14:      unnamed      unused  input  active-high
line  15:      unnamed      unused  input  active-high
line  16:      unnamed      unused  input  active-high
line  17:      unnamed      unused  input  active-high
line  18:      unnamed      unused  input  active-high
line  19:      unnamed      unused  input  active-high
line  20:      unnamed      unused  input  active-high
line  21:      unnamed      unused  input  active-high
line  22:      unnamed      unused  input  active-high
line  23:      unnamed      unused  input  active-high
line  24:      unnamed      unused  input  active-high
line  25:      unnamed      unused  input  active-high
line  26:      unnamed      unused  input  active-high
line  27:      unnamed      unused  input  active-high
line  28:      unnamed      unused  input  active-high
line  29:      unnamed      unused  input  active-high
line  30:      unnamed      unused  input  active-high
line  31:      unnamed      unused  input  active-high
gpiochip5 - 64 lines:
line  0: "WIFI_RESET#" unused output active-high
line  1: "EN_WIFI_PWR" unused output active-high
line  2:      unnamed      unused  input  active-high
line  3:      unnamed      unused  input  active-high
line  4:      unnamed      unused  input  active-high
line  5:  "FRAM_WP#"      unused  input  active-high
line  6:    "EN_CL_1"      unused  input  active-high
line  7:    "EN_CL_2"      unused  input  active-high
line  8:    "EN_CL_3"      unused  input  active-high
line  9:    "EN_CL_4"      unused  input  active-high
line  10: "EN_ADC1_10V" unused input active-high
line  11: "EN_ADC2_10V" unused input active-high
line  12: "EN_ADC3_10V" unused input active-high
line  13: "EN_ADC4_10V" unused input active-high
line  14: "EN_SD_POWER" "?" output active-high [used]
line  15: "EN_USB_HOST_5V" unused input active-high
line  16: "EN_OFF_BD_5V" unused input active-high
line  17: "EN_AUX_PWR"      unused  input  active-high
line  18: "EN_NIMBEL_3.3V" unused input active-high
line  19: "EN_GPS_PWR#" unused input active-high
line  20: "EN_CAN_XVR#" "en-can" output active-high [used]
line  21: "EN_232_XVR"      unused  input  active-high
line  22: "EN_LS_OUT_1" unused input active-high
line  23: "EN_LS_OUT_2" unused input active-high
line  24: "EN_LS_OUT_3" unused input active-high
line  25: "EN_LS_OUT_4" unused input active-high
line  26: "EN_LS_OUT_5" unused input active-high
line  27: "EN_LS_OUT_6" unused input active-high
line  28: "EN_LS_OUT_7" unused input active-high
line  29:      unnamed      unused  input  active-high
line  30:      unnamed      unused  input  active-high
line  31:      unnamed      unused  input  active-high
line  32:  "DIG_IN_1"      unused  input  active-high
line  33:  "DIG_IN_2"      unused  input  active-high
line  34:  "DIG_IN_3"      unused  input  active-high
line  35:  "DIG_IN_4"      unused  input  active-high
line  36: "SD_BOOT_JMP#" unused input active-high
line  37:  "DIO_1_IN"      unused  input  active-high
line  38:  "DIO_2_IN"      unused  input  active-high
line  39:  "DIO_3_IN"      unused  input  active-high
line  40:  "DIO_4_IN"      unused  input  active-high
line  41:  "DIO_5_IN"      unused  input  active-high
line  42:  "DIO_6_IN"      unused  input  active-high
line  43:  "DIO_7_IN"      unused  input  active-high
line  44:      unnamed      unused  input  active-high
line  45:      unnamed      unused  input  active-high
line  46:      unnamed      unused  input  active-high
line  47:        "N7"      unused  input  active-high
line  48:        "P7"      unused  input  active-high
line  49:      unnamed      unused  input  active-high
line  50:      unnamed      unused  input  active-high
line  51:      unnamed      unused  input  active-high
line  52:      unnamed      unused  input  active-high
line  53:      unnamed      unused  input  active-high
line  54:      unnamed      unused  input  active-high
line  55:      unnamed      unused  input  active-high
line  56:      unnamed      unused  input  active-high
line  57:      unnamed      unused  input  active-high
line  58:      unnamed      unused  input  active-high
line  59:      unnamed      unused  input  active-high
line  60:      unnamed      unused  input  active-high
line  61:      unnamed      unused  input  active-high
line  62:      unnamed      unused  input  active-high
line  63:      unnamed      unused  input  active-high
</pre>
 
GPIOs into the CPU, such as those on the push switch near the row of LEDs (<code>PUSH_SW_CPU#</code>) and internal headers can generate interrupts and be used with <code>gpiomon(1)</code>:
 
<console>
root@tsimx6:~# gpiomon 2 18
event: FALLING EDGE offset: 18 timestamp: [1643650592.848516846]
event:  RISING EDGE offset: 18 timestamp: [1643650593.225238304]
^Croot@tsimx6:~#
</console>
 
One way of turning that into something useful would be by running it in a shell script:
 
<source>
while true ; do
      event=$(gpiomon --num-events=1 --falling-edge 2 18)
      echo "received $event"
      # do something
done
</source>


{|
{{Note|DIO lines on the FPGA (<code>gpiochip5</code>) don't have their own interrupts, thus the <code>gpiomon(1)</code> command does not normally work for them. }}
| colspan=2 |
|-
|
{| class="wikitable"
|+ DIG_IN
|-
! DIG_IN #
! INPUT GPIO #
|-
| DIG_IN_1
| 32
|-
| DIG_IN_2
| 33
|-
| DIG_IN_3
| 34
|-
| DIG_IN_4
| 35
|}
|}

Latest revision as of 17:50, 18 October 2023

The i.MX6UL CPU and FPGA GPIO are exposed using a kernel character device. This interface provides a set of files and directories for interacting with GPIO which can be used from any language that interact with special files in linux using ioctl() or similar. For our platforms, we pre-install the "libgpiod" library and binaries package. Documentation on this package can be found here. This section only covers using these userspace tools and does not provide guidance on using the libgpiod library in end applications. Please see the libgpiod documentation for this purpose.

A user with suitable permissions to read and write /dev/gpiochip* files can immediately interact with GPIO pins. For example, to read the push_sw:

gpioget 2 18 # Returns 0 when pressed, 1 when not

Multiple pins in the same chip can be read simultaneously by passing multiple pin numbers separated by spaces.

This GPIO interface also provides labels for all the I/O. To get a reference from the board of all GPIO run:

gpioinfo

The TS-7180 provides seven IO ports that can sink up to 500mA, or withstand up to 30V at the input. These are available on the P3 connector. DIO_1 through DIO_7 appear as GPIO bank 5 io 37 through 43 (when used as inputs), and as GPIO bank 5 io 22 through 28 (when used as outputs). For example, to read the state of DIO_1, enter the following command:

gpioget 5 37

To drive enable the 500mA sink, enter the following command:

gpioset 5 22=1
gpiochip0 - 32 lines:
	line   0: "BOOT_MODE_0" unused input active-high 
	line   1:      unnamed       unused   input  active-high 
	line   2:  "I2C_1_CLK"       unused   input  active-high 
	line   3:  "I2C_1_DAT"       unused   input  active-high 
	line   4:      "ADC_1"       unused   input  active-high 
	line   5:      "ADC_2"       unused   input  active-high 
	line   6:   "ETH_MDIO"       unused   input  active-high 
	line   7:    "ETH_MDC"       unused   input  active-high 
	line   8:      "ADC_3"       unused   input  active-high 
	line   9:      "ADC_4"       unused   input  active-high 
	line  10:      unnamed       unused   input  active-high 
	line  11:      unnamed       unused   input  active-high 
	line  12:      unnamed       unused   input  active-high 
	line  13:      unnamed       unused   input  active-high 
	line  14:      unnamed       unused   input  active-high 
	line  15:      unnamed       unused   input  active-high 
	line  16: "CONSOLE_TXD" unused input active-high 
	line  17: "CONSOLE_RXD" unused input active-high 
	line  18:    "SPARE_1"       unused   input  active-high 
	line  19:     "EN_485"       unused   input  active-high 
	line  20:  "UART2_TXD"       unused   input  active-high 
	line  21:  "UART2_RXD"       unused   input  active-high 
	line  22:  "CAN_2_TXD"       unused   input  active-high 
	line  23: "CAN2_RXD_3V" unused input active-high 
	line  24:  "UART3_TXD"       unused   input  active-high 
	line  25:  "UART3_RXD"       unused   input  active-high 
	line  26: "UART3_CTS#"       unused   input  active-high 
	line  27: "UART3_RTS#"       unused   input  active-high 
	line  28:  "UART4_TXD"       unused   input  active-high 
	line  29:  "UART4_RXD"       unused   input  active-high 
	line  30:  "UART5_TXD"       unused   input  active-high 
	line  31:  "UART5_RXD"       unused   input  active-high 
gpiochip1 - 32 lines:
	line   0: "ENET1_RX_DATA0" unused input active-high 
	line   1: "ENET1_RX_DATA1" unused input active-high 
	line   2: "ENET1_RX_EN" unused input active-high 
	line   3: "ENET1_TX_DATA0" unused input active-high 
	line   4: "ENET1_TX_DATA1" unused input active-high 
	line   5: "ENET1_TX_EN" unused input active-high 
	line   6: "ENET1_TX_CLK" unused input active-high 
	line   7: "ENET1_RX_ER" unused input active-high 
	line   8: "ENET2_RX_DATA0" unused input active-high 
	line   9: "ENET2_RX_DATA1" unused input active-high 
	line  10: "ENET2_RX_EN" unused input active-high 
	line  11: "ENET2_TX_DATA0" unused input active-high 
	line  12: "ENET2_TX_DATA1" unused input active-high 
	line  13: "ENET2_TX_EN" unused input active-high 
	line  14: "ENET2_TX_CLK" unused input active-high 
	line  15: "ENET2_RX_ER" unused input active-high 
	line  16:     "SD_CMD"       unused   input  active-high 
	line  17:     "SD_CLK"       unused   input  active-high 
	line  18:      "SD_D0"       unused   input  active-high 
	line  19:      "SD_D1"       unused   input  active-high 
	line  20:      "SD_D2"       unused   input  active-high 
	line  21:      "SD_D3"       unused   input  active-high 
	line  22:      unnamed       unused   input  active-high 
	line  23:      unnamed       unused   input  active-high 
	line  24:      unnamed       unused   input  active-high 
	line  25:      unnamed       unused   input  active-high 
	line  26:      unnamed       unused   input  active-high 
	line  27:      unnamed       unused   input  active-high 
	line  28:      unnamed       unused   input  active-high 
	line  29:      unnamed       unused   input  active-high 
	line  30:      unnamed       unused   input  active-high 
	line  31:      unnamed       unused   input  active-high 
gpiochip2 - 32 lines:
	line   0: "HD1_SPI_CS"    "spi_imx"  output  active-high [used]
	line   1: "JTAG_FPGA_TCK" unused input active-high 
	line   2: "JTAG_FPGA_TMS" unused input active-high 
	line   3: "JTAG_FPGA_TDI" unused input active-high 
	line   4:      "WDOG#"       unused   input  active-high 
	line   5:  "I2C_3_DAT"       unused   input  active-high 
	line   6:  "I2C_3_CLK"       unused   input  active-high 
	line   7:      unnamed       unused   input  active-high 
	line   8: "HD1_I2C_CLK" "scl" output active-high [used]
	line   9: "HD1_I2C_DAT" "sda" output active-high [used]
	line  10: "HD1_DIG_INPUT" unused input active-high 
	line  11: "NO_CHRG_JMP#" unused input active-high 
	line  12: "EN_NIM_USB#" unused input active-high 
	line  13:  "CAN_1_TXD"       unused   input  active-high 
	line  14: "CAN1_RXD_3V" unused input active-high 
	line  15:  "XBEE_CTS#"       unused   input  active-high 
	line  16: "U_BOOT_JMP#" unused input active-high 
	line  17:      unnamed       unused   input  active-high 
	line  18: "PUSH_SW_CPU#" unused input active-high 
	line  19: "NIMBEL_PWR_ON" unused input active-high 
	line  20:      unnamed       unused   input  active-high 
	line  21:  "UART7_TXD"       unused   input  active-high 
	line  22:  "UART7_RXD"       unused   input  active-high 
	line  23:        "ID4"       unused   input  active-high 
	line  24: "JTAG_FPGA_TDO" unused input active-high 
	line  25:  "UART8_TXD"       unused   input  active-high 
	line  26:  "UART8_RXD"       unused   input  active-high 
	line  27:        "ID1"       unused   input  active-high 
	line  28: "ETH_PHY_RESET#" unused input active-high 
	line  29:      unnamed       unused   input  active-high 
	line  30:      unnamed       unused   input  active-high 
	line  31:      unnamed       unused   input  active-high 
gpiochip3 - 32 lines:
	line   0:   "EMMC_CLK"       unused   input  active-high 
	line   1:   "EMMC_CMD"       unused   input  active-high 
	line   2:    "EMMC_D0"       unused   input  active-high 
	line   3:    "EMMC_D1"       unused   input  active-high 
	line   4:    "EMMC_D2"       unused   input  active-high 
	line   5:    "EMMC_D3"       unused   input  active-high 
	line   6:  "SPI_4_CLK"       unused   input  active-high 
	line   7: "SPI_4_MOSI"       unused   input  active-high 
	line   8: "SPI_4_MISO"       unused   input  active-high 
	line   9:  "SPI_4_CS#"    "spi_imx"  output  active-high [used]
	line  10:  "MAG_N_IRQ"       unused   input  active-high 
	line  11: "FPGA_RESET#" unused input active-high 
	line  12: "SPI_3_FPGA_CS#" "spi_imx" output active-high [used]
	line  13:  "SPI_3_CLK"       unused   input  active-high 
	line  14: "SPI_3_MOSI"       unused   input  active-high 
	line  15: "SPI_3_MISO"       unused   input  active-high 
	line  16:      "PWM_5"       unused   input  active-high 
	line  17:  "UART6_TXD"       unused   input  active-high 
	line  18:  "UART6_RXD"       unused   input  active-high 
	line  19:        "ID5"       unused   input  active-high 
	line  20:   "GYRO_INT"       unused   input  active-high 
	line  21: "6UL_FORCE_5V_ON" unused input active-high 
	line  22: "EN_EMMC_3.3V#" "?" output active-low [used]
	line  23: "EN_YEL_LED#" "?" output active-low [used]
	line  24: "EN_RED_LED#" "?" output active-low [used]
	line  25: "EN_GRN_LED#" "?" output active-low [used]
	line  26: "EN_BLU_LED"          "?"  output  active-high [used]
	line  27: "FRAM_SPI_CS#" "spi_imx" output active-high [used]
	line  28: "SD_VSEL_1.8V" unused input active-high 
	line  29:      unnamed       unused   input  active-high 
	line  30:      unnamed       unused   input  active-high 
	line  31:      unnamed       unused   input  active-high 
gpiochip4 - 32 lines:
	line   0: "POWER_FAIL"       unused   input  active-high 
	line   1:   "FPGA_IRQ"       unused   input  active-high 
	line   2:      unnamed       unused   input  active-high 
	line   3:  "GPIO_DVFS"          "?"  output  active-high [used]
	line   4:      unnamed       unused   input  active-high 
	line   5: "SILAB_C2_CLK" unused input active-high 
	line   6: "SILAB_C2_DATA" unused input active-high 
	line   7: "SILAB_C2_RESET" unused input active-high 
	line   8:    "SPARE_4"       unused   input  active-high 
	line   9:      unnamed       unused   input  active-high 
	line  10:      unnamed       unused   input  active-high 
	line  11:      unnamed       unused   input  active-high 
	line  12:      unnamed       unused   input  active-high 
	line  13:      unnamed       unused   input  active-high 
	line  14:      unnamed       unused   input  active-high 
	line  15:      unnamed       unused   input  active-high 
	line  16:      unnamed       unused   input  active-high 
	line  17:      unnamed       unused   input  active-high 
	line  18:      unnamed       unused   input  active-high 
	line  19:      unnamed       unused   input  active-high 
	line  20:      unnamed       unused   input  active-high 
	line  21:      unnamed       unused   input  active-high 
	line  22:      unnamed       unused   input  active-high 
	line  23:      unnamed       unused   input  active-high 
	line  24:      unnamed       unused   input  active-high 
	line  25:      unnamed       unused   input  active-high 
	line  26:      unnamed       unused   input  active-high 
	line  27:      unnamed       unused   input  active-high 
	line  28:      unnamed       unused   input  active-high 
	line  29:      unnamed       unused   input  active-high 
	line  30:      unnamed       unused   input  active-high 
	line  31:      unnamed       unused   input  active-high 
gpiochip5 - 64 lines:
	line   0: "WIFI_RESET#" unused output active-high 
	line   1: "EN_WIFI_PWR" unused output active-high 
	line   2:      unnamed       unused   input  active-high 
	line   3:      unnamed       unused   input  active-high 
	line   4:      unnamed       unused   input  active-high 
	line   5:   "FRAM_WP#"       unused   input  active-high 
	line   6:    "EN_CL_1"       unused   input  active-high 
	line   7:    "EN_CL_2"       unused   input  active-high 
	line   8:    "EN_CL_3"       unused   input  active-high 
	line   9:    "EN_CL_4"       unused   input  active-high 
	line  10: "EN_ADC1_10V" unused input active-high 
	line  11: "EN_ADC2_10V" unused input active-high 
	line  12: "EN_ADC3_10V" unused input active-high 
	line  13: "EN_ADC4_10V" unused input active-high 
	line  14: "EN_SD_POWER" "?" output active-high [used]
	line  15: "EN_USB_HOST_5V" unused input active-high 
	line  16: "EN_OFF_BD_5V" unused input active-high 
	line  17: "EN_AUX_PWR"       unused   input  active-high 
	line  18: "EN_NIMBEL_3.3V" unused input active-high 
	line  19: "EN_GPS_PWR#" unused input active-high 
	line  20: "EN_CAN_XVR#" "en-can" output active-high [used]
	line  21: "EN_232_XVR"       unused   input  active-high 
	line  22: "EN_LS_OUT_1" unused input active-high 
	line  23: "EN_LS_OUT_2" unused input active-high 
	line  24: "EN_LS_OUT_3" unused input active-high 
	line  25: "EN_LS_OUT_4" unused input active-high 
	line  26: "EN_LS_OUT_5" unused input active-high 
	line  27: "EN_LS_OUT_6" unused input active-high 
	line  28: "EN_LS_OUT_7" unused input active-high 
	line  29:      unnamed       unused   input  active-high 
	line  30:      unnamed       unused   input  active-high 
	line  31:      unnamed       unused   input  active-high 
	line  32:   "DIG_IN_1"       unused   input  active-high 
	line  33:   "DIG_IN_2"       unused   input  active-high 
	line  34:   "DIG_IN_3"       unused   input  active-high 
	line  35:   "DIG_IN_4"       unused   input  active-high 
	line  36: "SD_BOOT_JMP#" unused input active-high 
	line  37:   "DIO_1_IN"       unused   input  active-high 
	line  38:   "DIO_2_IN"       unused   input  active-high 
	line  39:   "DIO_3_IN"       unused   input  active-high 
	line  40:   "DIO_4_IN"       unused   input  active-high 
	line  41:   "DIO_5_IN"       unused   input  active-high 
	line  42:   "DIO_6_IN"       unused   input  active-high 
	line  43:   "DIO_7_IN"       unused   input  active-high 
	line  44:      unnamed       unused   input  active-high 
	line  45:      unnamed       unused   input  active-high 
	line  46:      unnamed       unused   input  active-high 
	line  47:         "N7"       unused   input  active-high 
	line  48:         "P7"       unused   input  active-high 
	line  49:      unnamed       unused   input  active-high 
	line  50:      unnamed       unused   input  active-high 
	line  51:      unnamed       unused   input  active-high 
	line  52:      unnamed       unused   input  active-high 
	line  53:      unnamed       unused   input  active-high 
	line  54:      unnamed       unused   input  active-high 
	line  55:      unnamed       unused   input  active-high 
	line  56:      unnamed       unused   input  active-high 
	line  57:      unnamed       unused   input  active-high 
	line  58:      unnamed       unused   input  active-high 
	line  59:      unnamed       unused   input  active-high 
	line  60:      unnamed       unused   input  active-high 
	line  61:      unnamed       unused   input  active-high 
	line  62:      unnamed       unused   input  active-high 
	line  63:      unnamed       unused   input  active-high 

GPIOs into the CPU, such as those on the push switch near the row of LEDs (PUSH_SW_CPU#) and internal headers can generate interrupts and be used with gpiomon(1):

root@tsimx6:~# gpiomon 2 18
event: FALLING EDGE offset: 18 timestamp: [1643650592.848516846]
event:  RISING EDGE offset: 18 timestamp: [1643650593.225238304]
^Croot@tsimx6:~# 

One way of turning that into something useful would be by running it in a shell script:

while true ; do
      event=$(gpiomon --num-events=1 --falling-edge 2 18)
      echo "received $event"
      # do something
done
Note: DIO lines on the FPGA (gpiochip5) don't have their own interrupts, thus the gpiomon(1) command does not normally work for them.