====== GPIO ====== [[bpi-r2:gpio|BPI-R2-GPIO]] ===== Pin-Belegung ===== {{http://wiki.banana-pi.org/images/1/1d/R64_gpio_40.jpg|}} ^ Nebenfunktion ^ Hauptfunktion ^ pin# ^ xxxxxxxxxxxxxxxxxxxxx ^ pin# ^ Hauptfunktion ^ Nebenfunktion ^ | | | | {{ :bpi-r2:gpio_farbig.png?nolink |}} | | | | | | +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 Die sysfs Schnittstelle (/sys/class/gpio/...) benötigt die kernel-option CONFIG_GPIO_SYSFS ==== uart ==== der debug-Uart ist in der DTS uart0. Der vorhandene uart2 ist scheinbar uart1 der gpio-Leiste...uart1 ist aktuell nicht definiert.