]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Add Rock Pi 4c Support
authorRay Thomson <thomoray@gmail.com>
Thu, 4 Mar 2021 10:57:55 +0000 (21:57 +1100)
committerRay Thomson <thomoray@gmail.com>
Thu, 4 Mar 2021 10:57:55 +0000 (21:57 +1100)
Added Rock Pi 4c support

src/adafruit_blinka/board/radxa/rockpi4.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/rockchip/rk3399/__init__.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py [new file with mode: 0644]
src/analogio.py
src/board.py
src/busio.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py

diff --git a/src/adafruit_blinka/board/radxa/rockpi4.py b/src/adafruit_blinka/board/radxa/rockpi4.py
new file mode 100644 (file)
index 0000000..9afda30
--- /dev/null
@@ -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 (file)
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 (file)
index 0000000..0663c75
--- /dev/null
@@ -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
index 8ca58c1c71c0c323aa1c4d6913f6487e5c15be0a..45e2a18d4b6c94ecd5a9acf2a44990c72e2daae1 100644 (file)
@@ -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:
index cf2076a307e42feaf05af241cf244ec7b907158b..e4909f243c3304754d9c19b84c346e29113aa8d9 100755 (executable)
@@ -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 *
 
index af1712d2451cd5b7c4166bd0cdbe4d4d1c59a237..45d8770d2cc05dc571abf2a5c9a5dea0afbe5b77 100755 (executable)
@@ -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
index 08d154967f2a456accfdb622c7cc9b08015f71d0..328600030bdd6f60933de6d2076a526eca5777fb 100755 (executable)
@@ -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:
index 4597e94f6c279ce7c79bcb0f2027c1ed41ed4e0e..ec909316e1dbe67ce50de69f4b3595930cf25646 100755 (executable)
@@ -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:
index 4ac63dd15b9deb192ab1dcf01680c19920969805..faeaeb702999ac44f0938b9f58c17a097da91bf1 100755 (executable)
@@ -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: