User Tools

Site Tools



en:bpi-r64:gpio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:bpi-r64:gpio [2019/10/28 19:17] – created franken:bpi-r64:gpio [2023/06/08 17:06] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== GPIO ======
 +[[..:bpi-r2:gpio|BPI-R2-GPIO]]
 +===== pin-define =====
  
 +{{http://wiki.banana-pi.org/images/1/1d/R64_gpio_40.jpg|}}
 +
 +
 +^ 2nd function ^ main function ^ pin# ^ xxxxxxxxxxxxxxxxxxxxx ^ pin# ^ main function  ^ 2nd function ^
 +|              |            |    | {{ :bpi-r2:gpio_farbig.png?nolink |}} |    |              |              |
 +| | +3V3 |    |  ::: |  2   | +5V |  |
 +| GPIO 56 # | I2C1_SDA |    |  ::: |  4   | +5V |  |
 +| GPIO 55 # | I2C1_SCL |    |  ::: |  6   | GND |  |
 +| GPIO101 | PWM 7 |    |  ::: |  8   | UART0-TX | GPIO 59 # |
 +| | GND |    |  ::: |  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 =====
 +
 +<code>
 +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
 +</code>
 +
 +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 [[https://github.com/frank-w/BPI-R2-4.14/commits/5.7-pwm|5.7-pwm branch]]
 +
 +<code>
 +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
 +</code>
 +==== 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 [[https://github.com/frank-w/u-boot/commits/2020-04-bpi-pwm|2020-04-bpi-pwm branch]]
 +
 +here pwm1 (0) is defined in dts