From: Scott Shawcroft Date: Mon, 18 Aug 2025 17:14:52 +0000 (-0700) Subject: Merge pull request #1002 from makermelissa/main X-Git-Tag: 8.65.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/d8228db722a3109ad7aa9b4cce841aa0514d14a7?hp=e2577ef9d827e600ef7999097c41c5f770858034 Merge pull request #1002 from makermelissa/main Update Raspberry Pi Dependencies --- diff --git a/src/adafruit_blinka/board/orangepi/orangepi5pro.py b/src/adafruit_blinka/board/orangepi/orangepi5pro.py new file mode 100644 index 0000000..976a713 --- /dev/null +++ b/src/adafruit_blinka/board/orangepi/orangepi5pro.py @@ -0,0 +1,96 @@ +# SPDX-FileCopyrightText: 2022 Corebb +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Orange Pi 5 Pro""" + +from adafruit_blinka.microcontroller.rockchip.rk3588 import pin + +# D pin number is ordered by physical pin sequence + +# D1 = +3.3V +# D2 = +5V +D3 = pin.GPIO1_D3 +# D4 = +5V +D5 = pin.GPIO1_D2 +# D6 = GND +D7 = pin.GPIO1_B7 +D8 = pin.GPIO0_B5 +# D9 = GND +D10 = pin.GPIO0_B6 +D11 = pin.GPIO4_B2 +D12 = pin.GPIO1_A7 +D13 = pin.GPIO4_B3 +# D14 = GND +D15 = pin.GPIO1_B6 +D16 = pin.GPIO1_A1 +# D17 = +3.3V +D18 = pin.GPIO1_A0 +D19 = pin.GPIO1_B2 +# D20 = GND +D21 = pin.GPIO1_B1 +D22 = pin.GPIO1_B0 +D23 = pin.GPIO1_B3 +D24 = pin.GPIO1_B4 +# D25 = GND +D26 = pin.GPIO1_B5 +D27 = pin.GPIO1_A2 +D28 = pin.GPIO1_A3 +D29 = pin.GPIO1_A4 +# D30 = GND +D31 = pin.GPIO1_A6 +D32 = pin.GPIO1_D6 +D33 = pin.GPIO1_D7 +# D34 = GND +D35 = pin.GPIO4_A7 +D36 = pin.GPIO4_A3 +D37 = pin.GPIO4_A6 +D38 = pin.GPIO4_A4 +# D39 = GND +D40 = pin.GPIO4_A5 + +# UART +UART0_TX = pin.GPIO4_A3 +UART0_RX = pin.GPIO4_A4 +UART1_TX = pin.GPIO1_B6 +UART1_RX = pin.GPIO1_B7 +UART3_TX = pin.GPIO4_A5 +UART3_RX = pin.GPIO4_A6 +UART4_TX = pin.GPIO1_D2 +UART4_RX = pin.GPIO1_D3 + +# Default UART +TX = UART0_TX +RX = UART0_RX +TXD = UART0_TX +RXD = UART0_RX + +# I2C +I2C1_SCL = pin.GPIO1_D2 +I2C1_SDA = pin.GPIO1_D3 +I2C4_SCL = pin.GPIO1_A3 +I2C4_SDA = pin.GPIO1_A2 +I2C5_SCL = pin.GPIO1_B6 +I2C5_SDA = pin.GPIO1_B7 +I2C8_SCL = pin.GPIO1_D6 +I2C8_SDA = pin.GPIO1_D7 + +# Default I2C +SCL = I2C1_SCL +SDA = I2C1_SDA + +# SPI +SPI0_MISO = pin.GPIO1_B1 +SPI0_MOSI = pin.GPIO1_B2 +SPI0_CLK = pin.GPIO1_B3 +SPI0_CS0 = pin.GPIO1_B4 +SPI0_CS1 = pin.GPIO1_B5 +SPI4_MISO = pin.GPIO1_A0 +SPI4_MOSI = pin.GPIO1_A1 +SPI4_CLK = pin.GPIO1_A2 +SPI4_CS0 = pin.GPIO1_A3 + +# Default SPI +MOSI = SPI0_MOSI +MISO = SPI0_MISO +SCLK = SPI0_CLK +CS = SPI0_CS1 diff --git a/src/adafruit_blinka/board/particle/__init__.py b/src/adafruit_blinka/board/particle/__init__.py new file mode 100644 index 0000000..306b834 --- /dev/null +++ b/src/adafruit_blinka/board/particle/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2025 Brett Walach for Particle +# +# SPDX-License-Identifier: MIT +"""Board definitions from Particle""" diff --git a/src/adafruit_blinka/board/particle/tachyon.py b/src/adafruit_blinka/board/particle/tachyon.py new file mode 100644 index 0000000..c428636 --- /dev/null +++ b/src/adafruit_blinka/board/particle/tachyon.py @@ -0,0 +1,53 @@ +# SPDX-FileCopyrightText: 2025 Brett Walach for Particle +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Tachyon.""" + +from adafruit_blinka.microcontroller.quectel.qcm6490 import pin + +for it in pin.i2cPorts: + globals()["SCL" + str(it[0])] = it[1] + globals()["SDA" + str(it[0])] = it[2] + +SCL = pin.i2cPorts[0][1] +SDA = pin.i2cPorts[0][2] + +D0 = pin.GPIO_36 +D1 = pin.GPIO_37 +D2 = pin.GPIO_8 +D3 = pin.GPIO_9 +D4 = pin.GPIO_61 +D5 = pin.GPIO_18 +D6 = pin.GPIO_19 +D7 = pin.GPIO_62 +D8 = pin.GPIO_59 +D9 = pin.GPIO_56 +D10 = pin.GPIO_57 +D11 = pin.GPIO_58 +D12 = pin.GPIO_78 +D13 = pin.GPIO_106 +D14 = pin.GPIO_34 +D15 = pin.GPIO_35 +D16 = pin.GPIO_32 +D17 = pin.GPIO_33 +D18 = pin.GPIO_144 +D19 = pin.GPIO_145 +D20 = pin.GPIO_146 +D21 = pin.GPIO_147 +D22 = pin.GPIO_158 +D23 = pin.GPIO_165 +D24 = pin.GPIO_166 +D25 = pin.GPIO_24 +D26 = pin.GPIO_6 +D27 = pin.GPIO_44 + +CS = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = SCLK + +UART_TX = D14 +UART_RX = D15 + +PWM1 = D13 diff --git a/src/adafruit_blinka/microcontroller/quectel/__init__.py b/src/adafruit_blinka/microcontroller/quectel/__init__.py new file mode 100644 index 0000000..0bbe8c1 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/quectel/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2025 Brett Walach for Particle +# +# SPDX-License-Identifier: MIT +"""Definition of all Quectel chips""" diff --git a/src/adafruit_blinka/microcontroller/quectel/qcm6490/__init__.py b/src/adafruit_blinka/microcontroller/quectel/qcm6490/__init__.py new file mode 100644 index 0000000..8fba2cf --- /dev/null +++ b/src/adafruit_blinka/microcontroller/quectel/qcm6490/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2025 Brett Walach for Particle +# +# SPDX-License-Identifier: MIT +"""Definition for the Quectel QCM6490 chip""" diff --git a/src/adafruit_blinka/microcontroller/quectel/qcm6490/pin.py b/src/adafruit_blinka/microcontroller/quectel/qcm6490/pin.py new file mode 100644 index 0000000..d14d237 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/quectel/qcm6490/pin.py @@ -0,0 +1,140 @@ +# SPDX-FileCopyrightText: 2025 Brett Walach for Particle +# +# SPDX-License-Identifier: MIT +"""Quectel QCM6490 pin names""" + +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# Use with libgpiod_pin +GPIO_BASE = 0 + +GPIO_6 = Pin(GPIO_BASE + 6) +UART01_TXD = GPIO_6 +PWM1 = GPIO_6 + +GPIO_8 = Pin(GPIO_BASE + 8) +I2C02_SDA = GPIO_8 +SDA = GPIO_8 + +GPIO_9 = Pin(GPIO_BASE + 9) +I2C02_SCL = GPIO_9 +SCL = GPIO_9 + +GPIO_18 = Pin(GPIO_BASE + 18) +UART04_TXD = GPIO_18 +SPI04_CLK = GPIO_18 + +GPIO_19 = Pin(GPIO_BASE + 19) +UART04_RXD = GPIO_19 +SPI04_CS0 = GPIO_19 + +GPIO_24 = Pin(GPIO_BASE + 24) + +GPIO_32 = Pin(GPIO_BASE + 32) +UART10_CTS = GPIO_32 +CTS = GPIO_32 + +GPIO_33 = Pin(GPIO_BASE + 33) +UART10_RTS = GPIO_33 +RTS = GPIO_33 + +GPIO_34 = Pin(GPIO_BASE + 34) +UART10_TXD = GPIO_34 + +GPIO_35 = Pin(GPIO_BASE + 35) +UART10_RXD = GPIO_35 + +GPIO_36 = Pin(GPIO_BASE + 36) +UART11_CTS = GPIO_36 +SPI11_MISO = GPIO_36 +I2C11_SDA = GPIO_36 +EEPROM_SDA = GPIO_36 + +GPIO_37 = Pin(GPIO_BASE + 37) +UART11_RTS = GPIO_37 +SPI11_MOSI = GPIO_37 +I2C11_SCL = GPIO_37 +EEPROM_SCL = GPIO_37 + +GPIO_40 = Pin(GPIO_BASE + 40) +QWIIC_I2C12_SDA = GPIO_40 + +GPIO_41 = Pin(GPIO_BASE + 41) +QWIIC_I2C12_SCL = GPIO_41 + +GPIO_44 = Pin(GPIO_BASE + 44) + +GPIO_56 = Pin(GPIO_BASE + 56) +SPI16_MISO = GPIO_56 +I2C16_SDA = GPIO_56 +UART16_CTS = GPIO_56 +MISO = GPIO_56 + +GPIO_57 = Pin(GPIO_BASE + 57) +SPI16_MOSI = GPIO_57 +I2C16_SCL = GPIO_57 +UART16_RTS = GPIO_57 +MOSI = GPIO_57 + +GPIO_58 = Pin(GPIO_BASE + 58) +SPI16_CLK = GPIO_58 +UART16_TXD = GPIO_58 +SCK = GPIO_58 + +GPIO_59 = Pin(GPIO_BASE + 59) +SPI16_CS0 = GPIO_59 +UART16_RXD = GPIO_59 +CE0 = GPIO_59 + +GPIO_61 = Pin(GPIO_BASE + 61) + +GPIO_62 = Pin(GPIO_BASE + 62) +SPI16_CS1 = GPIO_62 +CE1 = GPIO_62 + +GPIO_78 = Pin(GPIO_BASE + 78) +PWM0 = GPIO_78 + +GPIO_106 = Pin(GPIO_BASE + 106) +MI2S1_SCLK = GPIO_106 +PWM = GPIO_106 +PWM1 = GPIO_106 + +GPIO_144 = Pin(GPIO_BASE + 144) +LPI_MI2S_SCLK = GPIO_144 + +GPIO_145 = Pin(GPIO_BASE + 145) +LPI_MI2S_WS = GPIO_145 +MISO1 = GPIO_145 + +GPIO_146 = Pin(GPIO_BASE + 146) +LPI_MI2S_DATA0 = GPIO_146 +MOSI1 = GPIO_146 + +GPIO_147 = Pin(GPIO_BASE + 147) +LPI_MI2S_DATA1 = GPIO_147 +SCK1 = GPIO_147 + +GPIO_158 = Pin(GPIO_BASE + 158) + +GPIO_165 = Pin(GPIO_BASE + 165) + +GPIO_166 = Pin(GPIO_BASE + 166) + +# ordered as i2cId, i2cSclId, i2cSdaId +i2cPorts = ( + (1, I2C02_SCL, I2C02_SDA), + (2, QWIIC_I2C12_SCL, QWIIC_I2C12_SDA), +) + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ( + (0, SPI16_CLK, SPI16_MOSI, SPI16_MISO), + (1, SPI16_CLK, SPI16_MOSI, SPI16_MISO), +) + +# ordered as uartId, txId, rxId +uartPorts = ((10, UART10_TXD, UART10_RXD),) + +# ordered as pwmChipId, pwmChannelId, pwmId +pwmOuts = (((0, 0), PWM1),) diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3588s/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3588s/pin.py index 91483d3..b2a690e 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3588s/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3588s/pin.py @@ -209,8 +209,8 @@ uartPorts = ( # I2C0_SDA_M1 = GPIO4_C6 I2C1_SCL_M0 = GPIO0_B5 I2C1_SDA_M0 = GPIO0_B6 -# I2C1_SCL_M4 = GPIO1_B1 -# I2C1_SDA_M4 = GPIO1_B2 +I2C1_SCL_M4 = GPIO1_D2 +I2C1_SDA_M4 = GPIO1_D3 I2C2_SCL_M4 = GPIO1_A1 I2C2_SDA_M4 = GPIO1_A0 # I2C3_SCL_M1 = GPIO3_B7 @@ -228,7 +228,7 @@ I2C8_SDA_M2 = GPIO1_D7 # ordered as i2cId, sclId, sdaId i2cPorts = ( - (1, I2C1_SCL_M0, I2C1_SDA_M0), + (1, I2C1_SCL_M4, I2C1_SDA_M4), (2, I2C2_SCL_M4, I2C2_SDA_M4), (4, I2C4_SCL_M3, I2C4_SDA_M3), (6, I2C6_SCL_M3, I2C6_SDA_M3), diff --git a/src/analogio.py b/src/analogio.py index 02a41b2..89c82be 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -32,6 +32,8 @@ elif detector.chip.RK3399: from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn elif detector.chip.RK3588: from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn +elif detector.chip.RK3588S: + from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn elif detector.chip.RK3568: from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn elif detector.chip.RK3566: diff --git a/src/board.py b/src/board.py index f926dd0..34a54b5 100644 --- a/src/board.py +++ b/src/board.py @@ -146,6 +146,9 @@ elif board_id == ap_board.ORANGE_PI_4_LTS: elif board_id in (ap_board.ORANGE_PI_5, ap_board.ORANGE_PI_5_MAX): from adafruit_blinka.board.orangepi.orangepi5 import * +elif board_id == ap_board.ORANGE_PI_5_PRO: + from adafruit_blinka.board.orangepi.orangepi5pro import * + elif board_id == ap_board.ORANGE_PI_5_PLUS: from adafruit_blinka.board.orangepi.orangepi5plus import * @@ -467,6 +470,9 @@ elif board_id == ap_board.INDIEDROID_NOVA: elif board_id == ap_board.RDK_X3: from adafruit_blinka.board.horizon.rdkx3 import * +elif board_id == ap_board.PARTICLE_TACHYON: + from adafruit_blinka.board.particle.tachyon import * + elif "sphinx" in sys.modules: pass diff --git a/src/digitalio.py b/src/digitalio.py index 31c650c..ed9e4e0 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -87,6 +87,8 @@ elif detector.chip.RK3399_T: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin elif detector.chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588.pin import Pin +elif detector.chip.RK3588S: + from adafruit_blinka.microcontroller.rockchip.rk3588s.pin import Pin elif detector.chip.RK3328: from adafruit_blinka.microcontroller.rockchip.rk3328.pin import Pin elif detector.chip.RK3566: @@ -151,6 +153,8 @@ elif detector.chip.RV1103: from adafruit_blinka.microcontroller.rockchip.rv1103.pin import Pin elif detector.chip.RV1106: from adafruit_blinka.microcontroller.rockchip.rv1106.pin import Pin +elif detector.chip.QCM6490: + from adafruit_blinka.microcontroller.quectel.qcm6490.pin import Pin elif detector.chip.OS_AGNOSTIC: from adafruit_blinka.microcontroller.generic_agnostic_board.pin import Pin diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index cedd126..0b76f71 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -109,6 +109,8 @@ elif chip_id == ap_chip.RK3399_T: from adafruit_blinka.microcontroller.rockchip.rk3399 import * elif chip_id == ap_chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588 import * +elif chip_id == ap_chip.RK3588S: + from adafruit_blinka.microcontroller.rockchip.rk3588s import * elif chip_id == ap_chip.RK3328: from adafruit_blinka.microcontroller.rockchip.rk3328 import * elif chip_id == ap_chip.RK3566: @@ -169,6 +171,8 @@ elif chip_id == ap_chip.RZV2H: from adafruit_blinka.microcontroller.renesas.rzv2h import * elif chip_id == ap_chip.SUNRISE_X3: from adafruit_blinka.microcontroller.horizon.sunrise_x3 import * +elif chip_id == ap_chip.QCM6490: + from adafruit_blinka.microcontroller.quectel.qcm6490 import * elif chip_id == ap_chip.GENERIC_X86: print("WARNING: GENERIC_X86 is not fully supported. Some features may not work.") elif chip_id == ap_chip.OS_AGNOSTIC: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 4016f95..9dfa15f 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -118,6 +118,8 @@ elif chip_id == ap_chip.RK3399_T: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import * elif chip_id == ap_chip.RK3588: from adafruit_blinka.microcontroller.rockchip.rk3588.pin import * +elif chip_id == ap_chip.RK3588S: + from adafruit_blinka.microcontroller.rockchip.rk3588s.pin import * elif chip_id == ap_chip.RK3328: from adafruit_blinka.microcontroller.rockchip.rk3328.pin import * elif chip_id == ap_chip.RK3566: @@ -159,6 +161,8 @@ elif chip_id == ap_chip.RV1106: from adafruit_blinka.microcontroller.rockchip.rv1106.pin import * elif chip_id == ap_chip.SUNRISE_X3: from adafruit_blinka.microcontroller.horizon.sunrise_x3.pin import * +elif chip_id == ap_chip.QCM6490: + from adafruit_blinka.microcontroller.quectel.qcm6490.pin import * elif "sphinx" in sys.modules: # pylint: disable=unused-import from adafruit_blinka.microcontroller.generic_micropython import Pin