====== VIM3/3L GPIO mainline Linux ====== WIP: collect information We can control any GPIO from this table by **NUM** via /sys/class/gpio/gpio**NUM** ===== Header PinOut ===== ^ GPIO num ^ Name ^ Pin ^ Pin ^ Name ^ GPIO num ^ | | 5V | 1 | 21 | **GND** | | | | 5V | 2 | 22 | A_15 | 491 | | | USB_DM | 3 | 23 | A_14 | 490 | | | USB_DP | 4 | 24 | **GND** | | | | **GND** | 5 | 25 | AO_2 | 414 | | | MCU3V3 | 6 | 26 | AO_3 | 415 | | | MCUNRST | 7 | 27 | 3v3 | | | | MCUSWIM | 8 | 28 | **GND** | | | | **GND** | 9 | 29 | A_1 | 477 | | | ADC0 | 10 | 30 | A_0 | 476 | | | 1v8 | 11 | 31 | A_3 | 479 | | | ADC1 | 12 | 32 | A_2 | 478 | | 422 | AO_10 | 13 | 33 | A_4 | 480 | | | **GND** | 14 | 34 | **GND** | | | 449 | H_6 | 15 | 35 | PWM-F | 448 | | 450 | H_7 | 16 | 36 | RTC | | | | **GND** | 17 | 37 | H_4 | 447 | | 413 | UART AO_1 | 18 | 38 | MCU-FA1 | | | 412 | UART AO_0 | 19 | 39 | Z_15 | XXX | | | 3v3 | 20 | 40 | **GND** | | ```shell gpio-banks ~# grep "" /sys/class/gpio/gpiochip*/* /sys/class/gpio/gpiochip404/base:404 /sys/class/gpio/gpiochip404/label:0-0020 /sys/class/gpio/gpiochip404/ngpio:8 /sys/class/gpio/gpiochip412/base:412 /sys/class/gpio/gpiochip412/label:aobus-banks /sys/class/gpio/gpiochip412/ngpio:15 /sys/class/gpio/gpiochip427/base:427 /sys/class/gpio/gpiochip427/label:periphs-banks /sys/class/gpio/gpiochip427/ngpio:85 ``` ```c meson-g12a-gpio.h /* First GPIO chip */ #define GPIOAO_0 0 #define GPIOAO_1 1 #define GPIOAO_2 2 #define GPIOAO_3 3 #define GPIOAO_4 4 #define GPIOAO_5 5 #define GPIOAO_6 6 #define GPIOAO_7 7 #define GPIOAO_8 8 #define GPIOAO_9 9 #define GPIOAO_10 10 #define GPIOAO_11 11 #define GPIOE_0 12 #define GPIOE_1 13 #define GPIOE_2 14 /* Second GPIO chip */ #define GPIOZ_0 0 #define GPIOZ_1 1 #define GPIOZ_2 2 #define GPIOZ_3 3 #define GPIOZ_4 4 #define GPIOZ_5 5 #define GPIOZ_6 6 #define GPIOZ_7 7 #define GPIOZ_8 8 #define GPIOZ_9 9 #define GPIOZ_10 10 #define GPIOZ_11 11 #define GPIOZ_12 12 #define GPIOZ_13 13 #define GPIOZ_14 14 #define GPIOZ_15 15 #define GPIOH_0 16 #define GPIOH_1 17 #define GPIOH_2 18 #define GPIOH_3 19 #define GPIOH_4 20 #define GPIOH_5 21 #define GPIOH_6 22 #define GPIOH_7 23 #define GPIOH_8 24 #define BOOT_0 25 #define BOOT_1 26 #define BOOT_2 27 #define BOOT_3 28 #define BOOT_4 29 #define BOOT_5 30 #define BOOT_6 31 #define BOOT_7 32 #define BOOT_8 33 #define BOOT_9 34 #define BOOT_10 35 #define BOOT_11 36 #define BOOT_12 37 #define BOOT_13 38 #define BOOT_14 39 #define BOOT_15 40 #define GPIOC_0 41 #define GPIOC_1 42 #define GPIOC_2 43 #define GPIOC_3 44 #define GPIOC_4 45 #define GPIOC_5 46 #define GPIOC_6 47 #define GPIOC_7 48 #define GPIOA_0 49 #define GPIOA_1 50 #define GPIOA_2 51 #define GPIOA_3 52 #define GPIOA_4 53 #define GPIOA_5 54 #define GPIOA_6 55 #define GPIOA_7 56 #define GPIOA_8 57 #define GPIOA_9 58 #define GPIOA_10 59 #define GPIOA_11 60 #define GPIOA_12 61 #define GPIOA_13 62 #define GPIOA_14 63 #define GPIOA_15 64 #define GPIOX_0 65 #define GPIOX_1 66 #define GPIOX_2 67 #define GPIOX_3 68 #define GPIOX_4 69 #define GPIOX_5 70 #define GPIOX_6 71 #define GPIOX_7 72 #define GPIOX_8 73 #define GPIOX_9 74 #define GPIOX_10 75 #define GPIOX_11 76 #define GPIOX_12 77 #define GPIOX_13 78 #define GPIOX_14 79 #define GPIOX_15 80 #define GPIOX_16 81 #define GPIOX_17 82 #define GPIOX_18 83 #define GPIOX_19 84 ```