en:bpi-r64:gpio
Table of Contents
GPIO
pin-define
| 2nd function | main function | pin# | xxxxxxxxxxxxxxxxxxxxx | pin# | main function | 2nd function |
|---|---|---|---|---|---|---|
| ||||||
| +3V3 | 1 | 2 | +5V | |||
| GPIO 56 # | I2C1_SDA | 3 | 4 | +5V | ||
| GPIO 55 # | I2C1_SCL | 5 | 6 | GND | ||
| GPIO101 | PWM 7 | 7 | 8 | UART0-TX | GPIO 59 # | |
| GND | 9 | 10 | UART0-RX | GPIO 60 # | ||
| GPIO 51 # | PWM1 / UART1-TX | 11 | 12 | |||
| GPIO 52 # | PWM2 / UART1-RX | 13 | 14 | GND | ||
| GPIO 98 # | 15 | 16 | GPIO 61 # | |||
| +3V3 | 17 | 18 | GPIO 62 # | |||
| GPIO 68 # | PWM5 / SPI1 MOSI | 19 | 20 | GND | ||
| GPIO 69 | PWM6 / SPI1 MISO | 21 | 22 | SPI0 CLK | GPIO 63 | |
| GPIO 67 | PWM4 / SPI1 CLK | 23 | 24 | SPI1 CS | GPIO 70 | |
| GND | 25 | 26 | SPI0 CS | GPIO 66 | ||
| GPIO 58 | I2C2 SDA | 27 | 28 | I2C2 SCL | GPIO 57 | |
| GPIO 85 | 29 | 30 | GND | |||
| GPIO 82 | SPI0 MOSI | 31 | 32 | SPI0 MOSI | GPIO 64 | |
| 33 | 34 | GND | ||||
| 35 | 36 | SPI0 MISO | GPIO 65 | |||
| GPIO 86 | 37 | 38 | I2S IN | |||
| GND | 39 | 40 | I2S OUT | |||
(# verified gpio working, 101 is blocked by pwm)
- uart0 (dts) ⇒ Debug-Uart
- uart1 (dts) ⇒ undefined ⇒ mt7622_uart2_2_tx_rx_pins (59/60)
- uart2 (dts) ⇒ uart1 (gpio) ⇒ mt7622_uart2_1_tx_rx_pins (51/52)
Kernel 4.19
root@bpi-iot-ros-ai:~# cat /sys/kernel/debug/pinctrl/10211000.pinctrl-pinctrl_mt7622/gpio-ranges
GPIO ranges handled:
0: pinctrl_mt7622 GPIOS [409 - 511] PINS [0 - 102]
root@bpi-iot-ros-ai:~# GPIO_NO=$((409+56))
root@bpi-iot-ros-ai:~# echo $GPIO_NO
465
root@bpi-iot-ros-ai:~# echo $GPIO_NO > /sys/class/gpio/export
-bash: echo: write error: Invalid argument => blocked by i2c1
#if i2c1 is disabled in dts:
root@bpi-r64:~# echo $GPIO_NO > /sys/class/gpio/export
root@bpi-r64:~# echo out > /sys/class/gpio/gpio${GPIO_NO}/direction
root@bpi-r64:~# echo 1 > /sys/class/gpio/gpio${GPIO_NO}/value #led goes on
root@bpi-r64:~# echo 0 > /sys/class/gpio/gpio${GPIO_NO}/value #led goes off
The sysfs interface (/sys/class/gpio/…) needs kernel-option CONFIG_GPIO_SYSFS
uart
debug-Uart is uart0 in DTS, uart2 seems to be uart1 of gpio header…uart1 is currently not defined in dts.
on-board LEDs
needs LEDS_GPIO [=y]
there is only red and green, red seems not working
echo 1 > /sys/class/leds/bpi-r64\:pio\:green/brightness
pwm
in linux numbering begins at 0 where on bpi documentation/gpio-header pwms starting at 1…
- pwm1 pin 11 (GPIO 51)
- pwm2 pin 13 (GPIO 52)
- pwm3 fan,inverted - seems not working correctly
- pwm4 pin 23 (GPIO 67)
- pwm5 pin 19 (GPIO 68)
- pwm6 pin 21 (GPIO 69)
- pwm7 pin7 (GPIO101) - seems not working
pwm working except 3 (2) and 7 (6) in my 5.7-pwm branch
root@bpi-r64:~# cd /sys/class/pwm/pwmchip0 root@bpi-r64:/sys/class/pwm/pwmchip0# echo 0 > export root@bpi-r64:/sys/class/pwm/pwmchip0# cd pwm0 root@bpi-r64:/sys/class/pwm/pwmchip0/pwm0# echo 10000 > period root@bpi-r64:/sys/class/pwm/pwmchip0/pwm0# echo 5000 > duty_cycle root@bpi-r64:/sys/class/pwm/pwmchip0/pwm0# echo 1 > enable
pwm in uboot
pwm-patches from sam are merged in 2020-07, but to use them there is cmd_pwm needed
http://forum.banana-pi.org/t/bpi-r64-current-u-boot-support/10077/74
both Available in 2020-04-bpi-pwm branch
here pwm1 (0) is defined in dts
en/bpi-r64/gpio.txt · Last modified: by 127.0.0.1

