From: Kenneth Ryerson Date: Mon, 28 Nov 2022 21:58:11 +0000 (-0600) Subject: Add support for Radxa CM3 X-Git-Tag: 8.9.0^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/d64f770868498718ab27c6a1af2197114db044f5 Add support for Radxa CM3 --- diff --git a/src/adafruit_blinka/board/radxa/radxacm3.py b/src/adafruit_blinka/board/radxa/radxacm3.py new file mode 100644 index 0000000..261e275 --- /dev/null +++ b/src/adafruit_blinka/board/radxa/radxacm3.py @@ -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 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3566/__init__.py b/src/adafruit_blinka/microcontroller/rockchip/rk3566/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3566/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3566/pin.py new file mode 100644 index 0000000..cf7f6d6 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3566/pin.py @@ -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),) diff --git a/src/analogio.py b/src/analogio.py index 4b7f9b0..8102f84 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -29,6 +29,8 @@ 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.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: diff --git a/src/board.py b/src/board.py index fce4a51..19bfe95 100644 --- a/src/board.py +++ b/src/board.py @@ -223,6 +223,9 @@ elif board_id == ap_board.CLOCKWORK_CPI3: 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 * diff --git a/src/digitalio.py b/src/digitalio.py index cbd0ae2..c6a7746 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -71,6 +71,8 @@ elif detector.chip.RK3399: 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: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 6015cd9..3801451 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -92,6 +92,8 @@ elif chip_id == ap_chip.RK3399: 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: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index e7f7765..4835ad2 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -95,6 +95,8 @@ elif chip_id == ap_chip.RK3399: 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: