Calculating GPIO Index in Linux
The following section describes how to calculate the GPIO index:
- 
            The Orin GPIOs are grouped in banks and each bank has up to 8 pins. The bank and the pin information of a GPIO is fundamental for calculating its index. GPIO is represented as X.Y, where:- X encodes the bank and can have the following values: PA, PB, …, PY or PAA, ... PFF as listed in table below..
 For the banks with naming scheme P*, the "P" must be ignored, i.e., "PA" refers to bank A. - Y encodes the pin within a bank. For example, 00 for pin 0, 01 for pin 1, …, and 07 for pin 7.
 
- The banks are associated to a base and can also be sequentially translated into a bank_index as shown in the table below:  The base numbering may change in cases where customization is done in kernel and can be identified using the dmesg log: The base numbering may change in cases where customization is done in kernel and can be identified using the dmesg log:- nvidia@tegra-ubuntu:~$ sudo dmesg | grep gpiochip [ 9.965908] gpiochip0: registered GPIOs 348 to 511 on tegra234-gpio [ 9.970024] gpiochip1: registered GPIOs 316 to 347 on tegra234-gpio-aon- The base is 348 for tegra234-gpio and 316 for tegra234-gpio-aon from the above log. 
- 
            The GPIO index can be calculated as: GPIO_index = base + bank_start_index + pin. The following is an example of calculating the GPIO index for PS.05. - PS.05 represents bank S and pin 5.
- Bank S has bank_index 113 and base 348(tegra-gpio base)
- GPIO index is 466 (466 = 348 + 113 + 5)