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/
--- /dev/null
+# 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
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
--- /dev/null
+# 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),)
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 *
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:
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:
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: