Skip to content

Commit

Permalink
Merge pull request #651 from wgroeneveld/main
Browse files Browse the repository at this point in the history
Add compatibility with Radxa's Rock Pi 4 C Plus
  • Loading branch information
makermelissa authored Feb 9, 2023
2 parents e925c25 + f442d7f commit 501da12
Show file tree
Hide file tree
Showing 9 changed files with 156 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/adafruit_blinka/board/radxa/rockpi4.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@
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/
Expand Down
66 changes: 66 additions & 0 deletions src/adafruit_blinka/board/radxa/rockpi4cplus.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 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

ADC_IN0 = pin.ADC_IN0
2 changes: 1 addition & 1 deletion src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
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

Expand Down
Empty file.
78 changes: 78 additions & 0 deletions src/adafruit_blinka/microcontroller/rockchip/rk3399_t/pin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# 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),)

# SysFS analog inputs, Ordered as analog analogInId, device, and channel
analogIns = ((ADC_IN0, 0, 0),)
3 changes: 3 additions & 0 deletions src/board.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,9 @@
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 *

Expand Down
2 changes: 2 additions & 0 deletions src/digitalio.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
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:
Expand Down
2 changes: 2 additions & 0 deletions src/microcontroller/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ def delay_us(delay):
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:
Expand Down
2 changes: 2 additions & 0 deletions src/microcontroller/pin.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@
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:
Expand Down

0 comments on commit 501da12

Please sign in to comment.