From: Ray Thomson Date: Thu, 4 Mar 2021 10:57:55 +0000 (+1100) Subject: Add Rock Pi 4c Support X-Git-Tag: 6.4.0^2~7 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/143b68aecedbeca3ed6b73f224203ac737efb8fe Add Rock Pi 4c Support Added Rock Pi 4c support --- diff --git a/src/adafruit_blinka/board/radxa/rockpi4.py b/src/adafruit_blinka/board/radxa/rockpi4.py new file mode 100644 index 0000000..9afda30 --- /dev/null +++ b/src/adafruit_blinka/board/radxa/rockpi4.py @@ -0,0 +1,62 @@ +"""Pin definitions for the Rock Pi 4.""" + +from adafruit_blinka.microcontroller.rockchip.rk3399 import pin + +D3 = pin.GPIO2_A7 #/I2C7_SDA/PIN 71/ +D5 = pin.GPIO2_B0 #/I2C7_SCL/PIN 72/ +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/ +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/ +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/ +D23 = pin.GPIO1_B1 #/SPI1_CLK/PIN 41/ +D24 = pin.GPIO1_B2 #/SPI1_CS/PIN 42/ +D27 = pin.GPIO2_A0 #/I2C2_SDA/PIN 64/ +D28 = pin.GPIO2_A1 #/I2C2_SCL/PIN 65/ +D29 = pin.GPIO2_B2 #/I2C6_SCL/SPI2_TXD/PIN 74/ +D31 = pin.GPIO2_B1 #/I2C6_SDA/SPI2_RXD/PIN 73/ +D32 = pin.GPIO3_C0 #/SPDIF_TX/UART3_CTS/PIN 112/ +D33 = pin.GPIO2_B4 #/SPI2_CS/PIN 76/ +D35 = pin.GPIO4_A5 #/I2S1_LRCK_TX/PIN 133/ +D36 = pin.GPIO4_A4 #/I2S1_LRCK_RX/PIN 132/ +D37 = pin.GPIO4_D6 #/PIN 158/ +D38 = pin.GPIO4_A6 #/I2S1_SDI/PIN 134/ +D40 = pin.GPIO4_A7 #/I2S1_SDO/PIN 135/ + +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/__init__.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py new file mode 100644 index 0000000..0663c75 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py @@ -0,0 +1,77 @@ +"""A Pin class for use with Rockchip RK3399.""" + +from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin + +GPIO1_A7 = Pin(39) +GPIO1_B0 = Pin(40) +GPIO1_B1 = Pin(41) +GPIO1_B2 = Pin(42) +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) +GPIO3_C0 = Pin(112) +GPIO4_A3 = Pin(131) +GPIO4_A4 = Pin(132) +GPIO4_A5 = Pin(133) +GPIO4_A6 = Pin(134) +GPIO4_A7 = Pin(135) +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_A1 +SPI2_MISO = GPIO2_B1 +SPI2_MOSI = GPIO2_B2 + +# UART +UART0_TX = GPIO4_C4 +UART0_RX = GPIO4_C3 + +# PWM +PWM0 = GPIO4_C2 +PWM1 = GPIO4_C6 + +# 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),) \ No newline at end of file diff --git a/src/analogio.py b/src/analogio.py index 8ca58c1..45e2a18 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -21,6 +21,8 @@ elif detector.board.greatfet_one: from adafruit_blinka.microcontroller.nxp_lpc4330.analogio import AnalogOut elif detector.chip.RK3308: from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn +elif detector.chip.RK3399: + from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn elif detector.chip.IMX6ULL: from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn elif "sphinx" in sys.modules: diff --git a/src/board.py b/src/board.py index cf2076a..e4909f2 100755 --- a/src/board.py +++ b/src/board.py @@ -191,6 +191,9 @@ elif board_id == ap_board.ONION_OMEGA2: elif board_id == ap_board.ROCK_PI_S: from adafruit_blinka.board.radxa.rockpis import * +elif board_id == ap_board.ROCK_PI_4: + from adafruit_blinka.board.radxa.rockpi4 import * + elif board_id == ap_board.UDOO_X86: from adafruit_blinka.board.udoo_x86ultra import * diff --git a/src/busio.py b/src/busio.py index af1712d..45d8770 100755 --- a/src/busio.py +++ b/src/busio.py @@ -249,6 +249,9 @@ class SPI(Lockable): elif detector.board.ROCK_PI_S: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin + elif detector.board.ROCK_PI_4: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin elif detector.board.SIFIVE_UNLEASHED: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.hfu540.pin import Pin diff --git a/src/digitalio.py b/src/digitalio.py index 08d1549..3286000 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -51,6 +51,8 @@ elif detector.chip.MIPS24KEC: from adafruit_blinka.microcontroller.mips24kec.pin import Pin 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.board.ftdi_ft232h: from adafruit_blinka.microcontroller.ft232h.pin import Pin elif detector.board.binho_nova: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 4597e94..ec90931 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -68,6 +68,8 @@ elif chip_id == ap_chip.A33: from adafruit_blinka.microcontroller.allwinner.a33.pin import * 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.H5: from adafruit_blinka.microcontroller.allwinner.h5.pin import * elif chip_id == ap_chip.IMX8MX: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 4ac63dd..faeaeb7 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -56,6 +56,8 @@ elif chip_id == ap_chip.A33: from adafruit_blinka.microcontroller.allwinner.a33.pin import * 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.MIPS24KC: from adafruit_blinka.microcontroller.atheros.ar9331.pin import * elif chip_id == ap_chip.MIPS24KEC: