From: Melissa LeBlanc-Williams Date: Mon, 18 Aug 2025 16:49:52 +0000 (-0700) Subject: Merge pull request #993 from avenstewart/add-orange-pi-5-pro X-Git-Tag: 8.64.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/9ccedd66093b69e606027d8bb1ab1e33788940e0?hp=80dcbdfbfdfaf398c75faad746e36584d5879968 Merge pull request #993 from avenstewart/add-orange-pi-5-pro Add support for Orange Pi 5 Pro board --- 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/board.py b/src/board.py index 623aa62..34a54b5 100644 --- a/src/board.py +++ b/src/board.py @@ -470,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 322b142..ed9e4e0 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -153,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 30db3ac..0b76f71 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -171,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 037eb2e..9dfa15f 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -161,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