Calculation:
GPIO PIN number calculation method: Number = Range Base + Pin Index
Range Base
refers to the base value of GPIO rangesPin Index
refers to the sorting of the GPIO pins you need to calculate in the corresponding rangesExample:
1. Get Range Base
:
# cat /sys/kernel/debug/pinctrl/fe000000.apb4\:pinctrl\@4000-pinctrl-meson/gpio-ranges GPIO ranges handled: 0: periphs-banks GPIOS [430 - 511] PINS [0 - 81]
2. Get Pin Index
:
# cat /sys/kernel/debug/pinctrl/fe000000.apb4\:pinctrl\@4000-pinctrl-meson/pins registered pins: 82 pin 22 (GPIOE_0) fe000000.apb4:pinctrl@4000 pin 23 (GPIOE_1) fe000000.apb4:pinctrl@4000 pin 0 (GPIOB_0) fe000000.apb4:pinctrl@4000 pin 1 (GPIOB_1) fe000000.apb4:pinctrl@4000 pin 2 (GPIOB_2) fe000000.apb4:pinctrl@4000 pin 3 (GPIOB_3) fe000000.apb4:pinctrl@4000 pin 4 (GPIOB_4) fe000000.apb4:pinctrl@4000 ... pin 76 (GPIOZ_8) fe000000.apb4:pinctrl@4000 pin 77 (GPIOZ_9) fe000000.apb4:pinctrl@4000 pin 78 (GPIOZ_10) fe000000.apb4:pinctrl@4000 ...
3. Calculate Number
:
Here is an example for GPIOZ_10
:
GPIOZ_10 = Range Base + Pin Index = 430 + 78 = 508