]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Radxa Rock Pi 4 C Plus compatibility, fixes to wrong mapping in Rock Pi 4: see https...
authorwgroeneveld <wouter@brainbaking.com>
Wed, 8 Feb 2023 13:01:49 +0000 (14:01 +0100)
committerwgroeneveld <wouter@brainbaking.com>
Wed, 8 Feb 2023 13:01:49 +0000 (14:01 +0100)
src/adafruit_blinka/board/radxa/rockpi4.py
src/adafruit_blinka/board/radxa/rockpi4cplus.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py
src/adafruit_blinka/microcontroller/rockchip/rk3399_t/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/rockchip/rk3399_t/pin.py [new file with mode: 0644]
src/board.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py

index 9c046701d7c768a60b23abc6a2ef7615304d10c9..bd3e449e4575e6e1ebde39de0dc536a7a9c3a69b 100644 (file)
@@ -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/
 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/
 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/
 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 (file)
index 0000000..870d913
--- /dev/null
@@ -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
index 3dd75e7ce236cdc6767c788aed5a153604851171..e7d994d751595565743a49acda4dabaa62fae266 100644 (file)
@@ -63,7 +63,7 @@ SPI1_SCLK = GPIO1_B1
 SPI1_MISO = GPIO1_B0
 SPI1_MOSI = GPIO1_A7
 SPI2_CS = GPIO2_B4
 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
 
 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 (file)
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 (file)
index 0000000..f0cadcd
--- /dev/null
@@ -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),)
index a1e800c2fc9f3a0800cdfd1fa2665e69990e8085..25283e99ede27c4a2ad2906f4763eedfca95c414 100644 (file)
@@ -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:
     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 *
 
 elif board_id == ap_board.ROCK_PI_5:
     from adafruit_blinka.board.radxa.rock5 import *
 
index fc75b8e6329de6aa7f7d2f03e23d17feff0ffb8b..ed31d0a60327e99face7eddc05293d1a96bef195 100644 (file)
@@ -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
     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:
 elif detector.chip.RK3588:
     from adafruit_blinka.microcontroller.rockchip.rk3588.pin import Pin
 elif detector.chip.RK3328:
index da730155ac230b0f3b13129abe07fd3422f2d8b8..0951c0ed23e7ba96cbe5ffb33af56043fd7325b4 100644 (file)
@@ -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 *
     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:
 elif chip_id == ap_chip.RK3588:
     from adafruit_blinka.microcontroller.rockchip.rk3588 import *
 elif chip_id == ap_chip.RK3328:
index f717da27ce2bfbc2706914df3272a32048a61b0b..a5b7ede3045d4e7cb83eca8de85ffaaae03074fa 100644 (file)
@@ -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 *
     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:
 elif chip_id == ap_chip.RK3588:
     from adafruit_blinka.microcontroller.rockchip.rk3588.pin import *
 elif chip_id == ap_chip.RK3328: