Skip to content

Commit

Permalink
Merge pull request #633 from kennethryerson/Radxa_CM3
Browse files Browse the repository at this point in the history
Add support for Radxa CM3
  • Loading branch information
makermelissa authored Dec 1, 2022
2 parents 54c987a + d64f770 commit 6322206
Show file tree
Hide file tree
Showing 8 changed files with 201 additions and 0 deletions.
91 changes: 91 additions & 0 deletions src/adafruit_blinka/board/radxa/radxacm3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# SPDX-FileCopyrightText: 2022 Kenneth Ryerson
#
# SPDX-License-Identifier: MIT
"""Pin definitions for the Radxa CM3."""

from adafruit_blinka.microcontroller.rockchip.rk3566 import pin

# CM3 IO pins

D0_B6 = pin.GPIO0_B6 # /I2C2_SDA_M0/SPI0_MOSI_M0/PWM2_M1
D0_B5 = pin.GPIO0_B5 # /I2C2_SCL_M0/SPI0_CLK_M0/PWM1_M1
D3_D5 = pin.GPIO3_D5 # /I2S1_SDI3_M1/SDMMC2_PWREN_M0
D0_D1 = pin.GPIO0_D1 # /UART2_TX_M0
D0_D0 = pin.GPIO0_D0 # /UART2_RX_M0
D0_C7 = pin.GPIO0_C7 # /PWM0_M1/UART0_CTSn
D3_C7 = pin.GPIO3_C7 # /I2S1_SCLK_TX_M1/SDMMC2_D1_M0
D0_B7 = pin.GPIO0_B7 # /PWM0_M0
D0_C3 = pin.GPIO0_C3 # /PWM4
D3_D4 = pin.GPIO3_D4 # /I2S1_SDI2_M1/SDMMC2_DET_M0
D3_D3 = pin.GPIO3_D3 # /I2S1_SDI1_M1/SDMMC2_CLK_M0
D4_B2 = pin.GPIO4_B2 # /SPI3_MOSI_M0/I2S2_SDI_M1/I2C4_SDA_M0
D4_B0 = pin.GPIO4_B0 # /SPI3_MISO_M0/I2S1_SDO1_M1
D3_C6 = pin.GPIO3_C6 # /I2S1_MCLK_M1/SDMMC2_D0_M0
D4_B3 = pin.GPIO4_B3 # /SPI3_CLK_M0/I2S2_SDO_M1/I2C4_SCL_M0
D4_A6 = pin.GPIO4_A6 # /SPI3_CS0_M0/I2S1_SCLK_RX
D4_B4 = pin.GPIO4_B4 # /I2C2_SDA_M1
D4_B5 = pin.GPIO4_B5 # /I2C2_SCL_M1/I2S1_SDO3_M1
D4_B1 = pin.GPIO4_B1 # /I2S1_SDO2_M1/ISP_PRELIGHT_TRIG
D0_C5 = pin.GPIO0_C5 # /SPI0_MISO_M0/PWM6
D4_C0 = pin.GPIO4_C0 # /PWM11_IR_M1
D0_C6 = pin.GPIO0_C6 # /SPI0_CS0_M0/PWM7_IR
D3_D0 = pin.GPIO3_D0 # /I2S1_LRCK_TX_M1/SDMMC2_D2_M0
D4_A7 = pin.GPIO4_A7 # /I2S1_LRCK_RX_M1/SPI3_CS1_M0
D0_C2 = pin.GPIO0_C2 # /PWM3_IR
D3_D2 = pin.GPIO3_D2 # /I2S1_SDI0_M1
D3_D1 = pin.GPIO3_D1 # /I2S1_SDO0_M1/SDMMC2_D3_M0
D0_B1 = pin.GPIO0_B1 # /I2C0_SCL
D0_B2 = pin.GPIO0_B2 # /I2C0_SDA


# Aliases for Raspberry Pi compute module compatibility

D2 = D0_B6
D3 = D0_B5
D4 = D3_D5
D5 = D4_B1
D6 = D0_C5

D8 = D4_A6
D9 = D4_B0
D10 = D4_B2
D11 = D4_B3
D12 = D4_C0
D13 = D0_C6
D14 = D0_D1
D15 = D0_D0
D16 = D4_A7
D17 = D0_C7
D18 = D3_C7
D19 = D3_D0
D20 = D3_D2
D21 = D3_D1
D22 = D0_C3
D23 = D3_D4
D24 = D3_D3
D25 = D3_C6
D26 = D0_C2
D27 = D0_B7

D44 = D0_B2
D45 = D0_B1


# I2C
SDA = D0_B6
SCL = D0_B5

# SPI
CE0 = D4_A6
SCLK = D4_B3
SCK = D4_B3
MOSI = D4_B2
MISO = D4_B0

# UART aliases
UART_TX = D0_D1
UART_RX = D0_D0
TXD = D0_D1
RXD = D0_D0
TX = D0_D1
RX = D0_D0
Empty file.
99 changes: 99 additions & 0 deletions src/adafruit_blinka/microcontroller/rockchip/rk3566/pin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# SPDX-FileCopyrightText: 2022 Kenneth Ryerson
#
# SPDX-License-Identifier: MIT

"""A Pin class for use with Rockchip RK3566."""

from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin

GPIO0_A2 = Pin((0, 2))
GPIO0_A4 = Pin((0, 4))
GPIO0_A5 = Pin((0, 5))
GPIO0_B1 = Pin((0, 9))
GPIO0_B2 = Pin((0, 10))
GPIO0_B5 = Pin((0, 13))
GPIO0_B6 = Pin((0, 14))
GPIO0_B7 = Pin((0, 15))
GPIO0_C2 = Pin((0, 18))
GPIO0_C3 = Pin((0, 19))
GPIO0_C5 = Pin((0, 21))
GPIO0_C6 = Pin((0, 22))
GPIO0_C7 = Pin((0, 23))
GPIO0_D0 = Pin((0, 24))
GPIO0_D1 = Pin((0, 25))
GPIO1_D5 = Pin((1, 29))
GPIO1_D6 = Pin((1, 30))
GPIO1_D7 = Pin((1, 31))
GPIO2_A0 = Pin((2, 0))
GPIO2_A1 = Pin((2, 1))
GPIO2_A2 = Pin((2, 2))
GPIO3_C6 = Pin((3, 22))
GPIO3_C7 = Pin((3, 23))
GPIO3_D0 = Pin((3, 24))
GPIO3_D1 = Pin((3, 25))
GPIO3_D2 = Pin((3, 26))
GPIO3_D3 = Pin((3, 27))
GPIO3_D4 = Pin((3, 28))
GPIO3_D5 = Pin((3, 29))
GPIO4_A4 = Pin((4, 4))
GPIO4_A5 = Pin((4, 5))
GPIO4_A6 = Pin((4, 6))
GPIO4_A7 = Pin((4, 7))
GPIO4_B0 = Pin((4, 8))
GPIO4_B1 = Pin((4, 9))
GPIO4_B2 = Pin((4, 10))
GPIO4_B3 = Pin((4, 11))
GPIO4_B4 = Pin((4, 12))
GPIO4_B5 = Pin((4, 13))
GPIO4_B6 = Pin((4, 14))
GPIO4_B7 = Pin((4, 15))
GPIO4_C0 = Pin((4, 16))
GPIO4_C1 = Pin((4, 17))

ADC_AIN3 = 37

# I2C
I2C0_SCL = GPIO0_B1
I2C0_SDA = GPIO0_B2
I2C2_SCL_M0 = GPIO0_B5
I2C2_SDA_M0 = GPIO0_B6
I2C2_SCL_M1 = GPIO4_B5
I2C2_SDA_M1 = GPIO4_B4
I2C4_SCL_M0 = GPIO4_B3
I2C4_SDA_M0 = GPIO4_B2


# SPI
SPI0_CS0_M0 = GPIO0_C6
SPI0_CLK_M0 = GPIO0_B5
SPI0_MISO_M0 = GPIO0_C5
SPI0_MOSI_M0 = GPIO0_B6
SPI3_CS0_M0 = GPIO4_A6
SPI3_CLK_M0 = GPIO4_B3
SPI3_MISO_M0 = GPIO4_B0
SPI3_MOSI_M0 = GPIO4_B2


# UART
UART2_TX = GPIO0_D1
UART2_RX = GPIO0_D0


# PWM
PWM0 = GPIO0_B7
PWM1 = GPIO0_C7

# ordered as i2cId, SCL, SDA
i2cPorts = ((2, I2C2_SCL_M0, I2C2_SDA_M0),)

# ordered as spiId, sckId, mosiId, misoId
spiPorts = ((3, SPI3_CLK_M0, SPI3_MOSI_M0, SPI3_MISO_M0),)

# SysFS pwm outputs, pwm channel and pin in first tuple
pwmOuts = (
((0, 0), PWM0),
((0, 0), PWM1),
)

# SysFS analog inputs, Ordered as analog analogInId, device, and channel
analogIns = ((ADC_AIN3, 0, 3),)
2 changes: 2 additions & 0 deletions src/analogio.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
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.RK3566:
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 detector.chip.STM32MP157:
Expand Down
3 changes: 3 additions & 0 deletions src/board.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,9 @@
elif board_id == ap_board.ONION_OMEGA2:
from adafruit_blinka.board.onion.omega2 import *

elif board_id == ap_board.RADXA_CM3:
from adafruit_blinka.board.radxa.radxacm3 import *

elif board_id == ap_board.RADXA_ZERO:
from adafruit_blinka.board.radxa.radxazero import *

Expand Down
2 changes: 2 additions & 0 deletions src/digitalio.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@
from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin
elif detector.chip.RK3328:
from adafruit_blinka.microcontroller.rockchip.rk3328.pin import Pin
elif detector.chip.RK3566:
from adafruit_blinka.microcontroller.rockchip.rk3566.pin import Pin
elif detector.chip.PENTIUM_N3710:
from adafruit_blinka.microcontroller.pentium.n3710.pin import Pin
elif detector.chip.ATOM_J4105:
Expand Down
2 changes: 2 additions & 0 deletions src/microcontroller/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ def delay_us(delay):
from adafruit_blinka.microcontroller.rockchip.rk3399 import *
elif chip_id == ap_chip.RK3328:
from adafruit_blinka.microcontroller.rockchip.rk3328 import *
elif chip_id == ap_chip.RK3566:
from adafruit_blinka.microcontroller.rockchip.rk3566 import *
elif chip_id == ap_chip.H3:
from adafruit_blinka.microcontroller.allwinner.h3 import *
elif chip_id == ap_chip.H5:
Expand Down
2 changes: 2 additions & 0 deletions src/microcontroller/pin.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@
from adafruit_blinka.microcontroller.rockchip.rk3399.pin import *
elif chip_id == ap_chip.RK3328:
from adafruit_blinka.microcontroller.rockchip.rk3328.pin import *
elif chip_id == ap_chip.RK3566:
from adafruit_blinka.microcontroller.rockchip.rk3566.pin import *
elif chip_id == ap_chip.RK3568B2:
from adafruit_blinka.microcontroller.rockchip.rk3568b2.pin import *
elif chip_id == ap_chip.MIPS24KC:
Expand Down

0 comments on commit 6322206

Please sign in to comment.