GPIO Pin pad names

Working with poorly documented Arm boards has made me pick up patterns in GPIO pin names.
In short each gpiobus has 32 pins. Numbered 0-31. Multiple GPIO buses are commonly used.

When trying to map a pin pad name to an unknown pin I use the source dtsi file. This maps pins to names.
Running gpioctl -lv will show pin pad name.

Commonly the will have a suffix. These will correspond to the pins. Here is my decoder.
Suffix to Pin
A0=0
A1=1
A2=2
A3=3
A4=4
A5=5
A6=6
A7=7
B0=8
B1=9
B2=10
B3=11
B4=12
B5=13
B6=14
B7=15
C0=16
C1=17
C2=18
C3=19
C4=20
C5=21
C6=22
C7=23
D0=24
D1=25
D2=26
D3=27
D4=28
D5=29
D6=30
D7=31

I am not sure the pattern is significant but groups of 8 per letter.
Is this a bits&bytes thing? I have found it recurring enough to document it for mapping.
 
You need to read the documentation for the SoC (System On a Chip) your board is using. Often the gpio pins are divided up into smaller groups called "ports" (or something else). From you example, the grouping / ports would be A, B, C and D.
Sometimes the grouping indicates real difference in functionality on some level (example: only A and B ports can be used as analog inputs), other times it is not so easy to understand why the maker of the SoC has made the groupings.
 
Last edited:
Back
Top