From: wgroeneveld Date: Wed, 8 Feb 2023 13:01:49 +0000 (+0100) Subject: Radxa Rock Pi 4 C Plus compatibility, fixes to wrong mapping in Rock Pi 4: see https... X-Git-Tag: 8.15.0^2~4 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/8c2d8730fa84bd3a821f431e23d750627654ade3?ds=inline Radxa Rock Pi 4 C Plus compatibility, fixes to wrong mapping in Rock Pi 4: see https://wiki.radxa.com/Rock4/hardware/gpio --- diff --git a/src/adafruit_blinka/board/radxa/rockpi4.py b/src/adafruit_blinka/board/radxa/rockpi4.py index 9c04670..bd3e449 100644 --- a/src/adafruit_blinka/board/radxa/rockpi4.py +++ b/src/adafruit_blinka/board/radxa/rockpi4.py @@ -11,10 +11,11 @@ D7 = pin.GPIO2_B3 # /SPI2_CLK/PIN 75/ D8 = pin.GPIO4_C4 # /UART2_TXD/PIN 148/ D10 = pin.GPIO4_C3 # /UART2_RXD/PIN 147/ D11 = pin.GPIO4_C2 # /PWM0/PIN 146/ +D12 = pin.GPIO4_A3 D13 = pin.GPIO4_C6 # /PWM1/PIN 150/ D15 = pin.GPIO4_C5 # /SPDIF_TX/PIN 149/ D16 = pin.GPIO4_D2 # /PIN 154/ -D17 = pin.GPIO4_D4 # /PIN 156/ +D18 = pin.GPIO4_D4 # /PIN 156/ D19 = pin.GPIO1_B0 # /UART4_TXD/SPI1_TXD/PIN 40/ D21 = pin.GPIO1_A7 # /UART4_RXD/SPI1_RXD/PIN 39/ D22 = pin.GPIO4_D5 # /PIN 157/ diff --git a/src/adafruit_blinka/board/radxa/rockpi4cplus.py b/src/adafruit_blinka/board/radxa/rockpi4cplus.py new file mode 100644 index 0000000..870d913 --- /dev/null +++ b/src/adafruit_blinka/board/radxa/rockpi4cplus.py @@ -0,0 +1,67 @@ +# SPDX-FileCopyrightText: 2023 Wouter Groeneveld +# See https://wiki.radxa.com/Rock4/hardware/gpio for pinout +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Rock Pi 4 C+.""" + +from adafruit_blinka.microcontroller.rockchip.rk3399_t import pin + +D3 = pin.GPIO2_A7 +D5 = pin.GPIO2_B0 +D7 = pin.GPIO2_B3 +D8 = pin.GPIO4_C4 +D10 = pin.GPIO4_C3 +D11 = pin.GPIO4_C2 +D12 = pin.GPIO2_D3 +D13 = pin.GPIO1_A1 +D15 = pin.GPIO4_C5 +D16 = pin.GPIO4_D2 +D18 = pin.GPIO4_D4 +D19 = pin.GPIO1_B0 +D21 = pin.GPIO1_A7 +D22 = pin.GPIO4_D5 +D23 = pin.GPIO1_B1 +D24 = pin.GPIO1_B2 +D27 = pin.GPIO2_A0 +D28 = pin.GPIO2_A1 +D29 = pin.GPIO2_B2 +D31 = pin.GPIO2_B1 +D32 = pin.GPIO3_C0 +D33 = pin.GPIO2_B4 +D35 = pin.GPIO4_A5 +D36 = pin.GPIO2_D4 +D37 = pin.GPIO4_D6 +D38 = pin.GPIO1_A4 +D40 = pin.GPIO1_C4 + +SDA2 = D27 +SCL2 = D28 + +SDA6 = D31 +SCL6 = D29 + +SDA7 = D3 +SCL7 = D5 + +SDA = SDA2 +SCL = SCL2 + +SCLK = D7 +MOSI = D29 +MISO = D31 +CS = D33 +SCK = SCLK + +UART2_TX = D8 +UART2_RX = D10 + +UART4_TX = D19 +UART4_RX = D21 + +UART_TX = UART2_TX +UART_RX = UART2_RX + +PWM0 = pin.PWM0 +PWM1 = pin.PWM1 + +ADC_IN0 = pin.ADC_IN0 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py index 3dd75e7..e7d994d 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py @@ -63,7 +63,7 @@ SPI1_SCLK = GPIO1_B1 SPI1_MISO = GPIO1_B0 SPI1_MOSI = GPIO1_A7 SPI2_CS = GPIO2_B4 -SPI2_SCLK = GPIO2_A1 +SPI2_SCLK = GPIO2_B3 SPI2_MISO = GPIO2_B1 SPI2_MOSI = GPIO2_B2 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399_t/__init__.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399_t/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399_t/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399_t/pin.py new file mode 100644 index 0000000..f0cadcd --- /dev/null +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3399_t/pin.py @@ -0,0 +1,81 @@ +# SPDX-FileCopyrightText: 2023 Wouter Groeneveld +# See https://wiki.radxa.com/Rock4/hardware/gpio (click EXPAND for the Pi 4C, chip RK3399_T) +# +# SPDX-License-Identifier: MIT +"""A Pin class for use with Rockchip RK3399_T.""" + +from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin + +GPIO1_A1 = Pin(33) +GPIO1_A4 = Pin(36) +GPIO1_A7 = Pin(39) +GPIO1_B0 = Pin(40) +GPIO1_B1 = Pin(41) +GPIO1_B2 = Pin(42) +GPIO1_C4 = Pin(52) +GPIO2_A0 = Pin(64) +GPIO2_A1 = Pin(65) +GPIO2_A7 = Pin(71) +GPIO2_B0 = Pin(72) +GPIO2_B1 = Pin(73) +GPIO2_B2 = Pin(74) +GPIO2_B3 = Pin(75) +GPIO2_B4 = Pin(76) +GPIO2_D3 = Pin(91) +GPIO2_D4 = Pin(92) +GPIO3_C0 = Pin(112) +GPIO4_A5 = Pin(133) +GPIO4_C2 = Pin(146) +GPIO4_C3 = Pin(147) +GPIO4_C4 = Pin(148) +GPIO4_C5 = Pin(149) +GPIO4_C6 = Pin(150) +GPIO4_D2 = Pin(154) +GPIO4_D4 = Pin(156) +GPIO4_D5 = Pin(157) +GPIO4_D6 = Pin(158) +ADC_IN0 = 1 + +# I2C +I2C2_SDA = GPIO2_A0 +I2C2_SCL = GPIO2_A1 +I2C6_SDA = GPIO2_B1 +I2C6_SCL = GPIO2_B2 +I2C7_SDA = GPIO2_A7 +I2C7_SCL = GPIO2_B0 + +# SPI +SPI1_CS = GPIO1_B2 +SPI1_SCLK = GPIO1_B1 +SPI1_MISO = GPIO1_B0 +SPI1_MOSI = GPIO1_A7 +SPI2_CS = GPIO2_B4 +SPI2_SCLK = GPIO2_B3 +SPI2_MISO = GPIO2_B1 +SPI2_MOSI = GPIO2_B2 + +# UART +UART0_TX = GPIO4_C4 +UART0_RX = GPIO4_C3 + +# PWM +PWM0 = GPIO4_C2 + +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (0, I2C2_SCL, I2C2_SDA), + (1, I2C6_SCL, I2C6_SDA), + (7, I2C7_SCL, I2C7_SDA), +) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ((1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),) + +# SysFS pwm outputs, pwm channel and pin in first tuple +pwmOuts = ( + ((0, 0), PWM0), + ((1, 0), PWM1), +) + +# SysFS analog inputs, Ordered as analog analogInId, device, and channel +analogIns = ((ADC_IN0, 0, 0),) diff --git a/src/board.py b/src/board.py index a1e800c..25283e9 100644 --- a/src/board.py +++ b/src/board.py @@ -241,6 +241,9 @@ elif board_id == ap_board.ROCK_PI_S: elif board_id == ap_board.ROCK_PI_4: from adafruit_blinka.board.radxa.rockpi4 import * +elif board_id == ap_board.ROCK_PI_4_C_PLUS: + from adafruit_blinka.board.radxa.rockpi4cplus import * + elif board_id == ap_board.ROCK_PI_5: from adafruit_blinka.board.radxa.rock5 import * diff --git a/src/digitalio.py b/src/digitalio.py index fc75b8e..ed31d0a 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -69,6 +69,8 @@ elif detector.chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin elif detector.chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin +elif detector.chip.RK3399_T: + from adafruit_blinka.microcontroller.rockchip.rk3399_t.pin import Pin elif detector.chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588.pin import Pin elif detector.chip.RK3328: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index da73015..0951c0e 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -90,6 +90,8 @@ elif chip_id == ap_chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308 import * elif chip_id == ap_chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399 import * +elif chip_id == ap_chip.RK3399_T: + from adafruit_blinka.microcontroller.rockchip.rk3399_t import * elif chip_id == ap_chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588 import * elif chip_id == ap_chip.RK3328: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index f717da2..a5b7ede 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -93,6 +93,8 @@ elif chip_id == ap_chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308.pin import * elif chip_id == ap_chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import * +elif chip_id == ap_chip.RK3399_T: + from adafruit_blinka.microcontroller.rockchip.rk3399_t.pin import * elif chip_id == ap_chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588.pin import * elif chip_id == ap_chip.RK3328: