From: Melissa LeBlanc-Williams Date: Thu, 20 Jun 2024 17:18:22 +0000 (-0700) Subject: Merge branch 'main' of https://github.com/adafruit/Adafruit_Blinka into vivid-unit2 X-Git-Tag: 8.46.0^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/9a2109697689b2b0926318e8fbb7e8662d4ee0c0?hp=c15604e7974fd051295e21085b7d1dff6d30c602 Merge branch 'main' of https://github.com/adafruit/Adafruit_Blinka into vivid-unit2 --- diff --git a/requirements.txt b/requirements.txt index 1ea7a34..aec7911 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,9 @@ -Adafruit-PlatformDetect>=3.62.0 -Adafruit-PureIO>=1.1.7 -Jetson.GPIO; platform_machine=='aarch64' -RPi.GPIO; platform_machine=='armv7l' or platform_machine=='armv6l' or platform_machine=='aarch64' -rpi_ws281x>=4.0.0; platform_machine=='armv7l' or platform_machine=='armv6l' or platform_machine=='aarch64' -sysv_ipc>=1.1.0; sys_platform == 'linux' and platform_machine!='mips' -pyftdi>=0.40.0 -binho-host-adapter>=0.1.6 -numpy>=1.21.5 -adafruit-circuitpython-typing + # requirements.txt + # + # installs dependencies from ./setup.py, and the package itself, + # in editable mode + # -e . + + # (the -e above is optional). you could also just install the package + # normally with just the line below (after uncommenting) + . diff --git a/setup.py b/setup.py index 28a8fc3..edf1be7 100755 --- a/setup.py +++ b/setup.py @@ -10,6 +10,8 @@ import io import os +import sys +import platform from setuptools import setup, find_packages @@ -21,6 +23,7 @@ with io.open(os.path.join(here, "README.rst"), encoding="utf-8") as f: long_description = "\n" + f.read() board_reqs = [] +platform_reqs = [] if os.path.exists("/proc/device-tree/compatible"): with open("/proc/device-tree/compatible", "rb") as f: compat = f.read() @@ -34,15 +37,18 @@ if os.path.exists("/proc/device-tree/compatible"): or b"brcm,bcm2838" in compat or b"brcm,bcm2711" in compat ): - board_reqs = ["RPi.GPIO", "rpi_ws281x>=4.0.0", "sysv_ipc>=1.1.0"] + board_reqs = ["RPi.GPIO", "rpi_ws281x>=4.0.0"] # Pi 5 if b"brcm,bcm2712" in compat: - board_reqs = ["rpi_ws281x>=4.0.0", "sysv_ipc>=1.1.0", "rpi-lgpio"] + board_reqs = ["rpi_ws281x>=4.0.0", "rpi-lgpio"] if ( b"ti,am335x" in compat ): # BeagleBone Black, Green, PocketBeagle, BeagleBone AI, etc. board_reqs = ["Adafruit_BBIO"] +if sys.platform == "linux" and platform.machine != "mips": + platform_reqs = ["sysv_ipc>=1.1.0"] + setup( name="Adafruit-Blinka", use_scm_version={ @@ -89,12 +95,15 @@ setup( }, include_package_data=True, install_requires=[ - "Adafruit-PlatformDetect>=3.62.0", + "Adafruit-PlatformDetect>=3.70.1", "Adafruit-PureIO>=1.1.7", + "binho-host-adapter>=0.1.6", "pyftdi>=0.40.0", + "numpy>=1.21.5", "adafruit-circuitpython-typing", ] - + board_reqs, + + board_reqs + + platform_reqs, license="MIT", classifiers=[ # Trove classifiers diff --git a/src/adafruit_blinka/board/lubancat/lubancat5.py b/src/adafruit_blinka/board/lubancat/lubancat5.py new file mode 100644 index 0000000..afd2e1a --- /dev/null +++ b/src/adafruit_blinka/board/lubancat/lubancat5.py @@ -0,0 +1,77 @@ +# SPDX-FileCopyrightText: 2024 mmontol +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the LubanCat-5.""" + +from adafruit_blinka.microcontroller.rockchip.rk3588 import pin +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# GPIO1 = +3.3V +# GPIO2 = +5V +GPIO3 = pin.GPIO1_C0 +# GPIO4 = +5V +GPIO5 = pin.GPIO1_C1 +# GPIO6 = GND +GPIO7 = Pin((6, 0)) +GPIO8 = pin.GPIO1_B6 +# GPIO9 = GND +GPIO10 = pin.GPIO1_B7 +GPIO11 = Pin((6, 1)) +GPIO12 = Pin((6, 4)) +GPIO13 = Pin((6, 2)) +# GPIO14 = GND +GPIO15 = Pin((6, 3)) +GPIO16 = Pin((6, 5)) +# GPIO17 = +3.3V +GPIO18 = Pin((6, 6)) +GPIO19 = pin.GPIO4_A1 +# GPIO20 = GND +GPIO21 = pin.GPIO4_A0 +GPIO22 = Pin((6, 7)) +GPIO23 = pin.GPIO4_A2 +GPIO24 = pin.GPIO4_B2 +# GPIO25 = GND +GPIO26 = Pin((7, 5)) +GPIO27 = pin.GPIO1_A2 +GPIO28 = pin.GPIO1_A3 +GPIO29 = pin.GPIO2_C3 +# GPIO30 = GND +GPIO31 = Pin((7, 0)) +GPIO32 = pin.GPIO4_B6 +GPIO33 = pin.GPIO1_D6 +# GPIO34 = GND +GPIO35 = pin.GPIO1_D7 +GPIO36 = Pin((7, 4)) +GPIO37 = Pin((7, 1)) +GPIO38 = Pin((7, 3)) +# GPIO39 = GND +GPIO40 = Pin((7, 2)) + +# I2C +I2C3_SCL = pin.I2C3_SCL_M0 +I2C3_SDA = pin.I2C3_SDA_M0 +I2C4_SCL = pin.I2C4_SCL_M3 +I2C4_SDA = pin.I2C4_SDA_M3 +I2C8_SCL = pin.I2C8_SCL_M2 +I2C8_SDA = pin.I2C8_SDA_M2 + +# UART +UART1_TX = pin.UART1_TX_M1 +UART1_RX = pin.UART1_RX_M1 +UART3_TX = pin.UART3_TX_M0 +UART3_RX = pin.UART3_RX_M0 + +# Default SPI +MOSI = pin.SPI0_MOSI_M1 +MISO = pin.SPI0_MISO_M1 +SCLK = pin.SPI0_SCLK_M1 +CS0 = pin.SPI0_CS0_M1 + +# PWM +PWM0 = pin.PWM0_M2 +PWM1 = pin.PWM1_M2 +PWM13_M1 = pin.PWM13_M1 +PWM13_M2 = pin.PWM13_M2 +PWM14_M1 = pin.PWM14_M1 +PWM14_M2 = pin.PWM14_M2 +PWM15 = pin.PWM15_IR_M3 diff --git a/src/adafruit_blinka/board/raspberrypi/raspi_5b.py b/src/adafruit_blinka/board/raspberrypi/raspi_5b.py deleted file mode 100644 index 9ecda91..0000000 --- a/src/adafruit_blinka/board/raspberrypi/raspi_5b.py +++ /dev/null @@ -1,58 +0,0 @@ -# SPDX-FileCopyrightText: 2023 Melissa LeBlanc-Williams for Adafruit Industries -# -# SPDX-License-Identifier: MIT -"""Pin definitions for Raspberry Pi 5 models using the BCM2712.""" - -from adafruit_blinka.microcontroller.bcm2712 import pin - -D0 = pin.D0 -D1 = pin.D1 - -D2 = pin.D2 -SDA = pin.SDA -D3 = pin.D3 -SCL = pin.SCL - -D4 = pin.D4 -D5 = pin.D5 -D6 = pin.D6 - -D7 = pin.D7 -CE1 = pin.D7 -D8 = pin.D8 -CE0 = pin.D8 -D9 = pin.D9 -MISO = pin.D9 -D10 = pin.D10 -MOSI = pin.D10 -D11 = pin.D11 -SCLK = pin.D11 -SCK = pin.D11 - -D12 = pin.D12 -D13 = pin.D13 - -D14 = pin.D14 -TXD = pin.D14 -D15 = pin.D15 -RXD = pin.D15 -# create alias for most of the examples -TX = pin.D14 -RX = pin.D15 - -D16 = pin.D16 -D17 = pin.D17 -D18 = pin.D18 -D19 = pin.D19 -MISO_1 = pin.D19 -D20 = pin.D20 -MOSI_1 = pin.D20 -D21 = pin.D21 -SCLK_1 = pin.D21 -SCK_1 = pin.D21 -D22 = pin.D22 -D23 = pin.D23 -D24 = pin.D24 -D25 = pin.D25 -D26 = pin.D26 -D27 = pin.D27 diff --git a/src/adafruit_blinka/microcontroller/bcm2712/__init__.py b/src/adafruit_blinka/microcontroller/bcm2712/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/adafruit_blinka/microcontroller/bcm2712/pin.py b/src/adafruit_blinka/microcontroller/bcm2712/pin.py deleted file mode 100644 index 19c8854..0000000 --- a/src/adafruit_blinka/microcontroller/bcm2712/pin.py +++ /dev/null @@ -1,95 +0,0 @@ -# SPDX-FileCopyrightText: 2023 Melissa LeBlanc-Williams for Adafruit Industries -# -# SPDX-License-Identifier: MIT -"""Broadcom BCM2712 pin names""" -from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin - -# Pi 1B rev1 only? -D0 = Pin((4, 0)) -D1 = Pin((4, 1)) - -D2 = Pin((4, 2)) -SDA = Pin((4, 2)) -D3 = Pin((4, 3)) -SCL = Pin((4, 3)) - -D4 = Pin((4, 4)) -D5 = Pin((4, 5)) -D6 = Pin((4, 6)) - -D7 = Pin((4, 7)) -CE1 = Pin((4, 7)) -D8 = Pin((4, 8)) -CE0 = Pin((4, 8)) -D9 = Pin((4, 9)) -MISO = Pin((4, 9)) -D10 = Pin((4, 10)) -MOSI = Pin((4, 10)) -D11 = Pin((4, 11)) -SCLK = Pin((4, 11)) # Raspberry Pi naming -SCK = Pin((4, 11)) # CircuitPython naming - -D12 = Pin((4, 12)) -D13 = Pin((4, 13)) - -D14 = Pin((4, 14)) -TXD = Pin((4, 14)) -D15 = Pin((4, 15)) -RXD = Pin((4, 15)) - -D16 = Pin((4, 16)) -D17 = Pin((4, 17)) -D18 = Pin((4, 18)) -D19 = Pin((4, 19)) -MISO_1 = Pin((4, 19)) -D20 = Pin((4, 20)) -MOSI_1 = Pin((4, 20)) -D21 = Pin((4, 21)) -SCLK_1 = Pin((4, 21)) -SCK_1 = Pin((4, 21)) -D22 = Pin((4, 22)) -D23 = Pin((4, 23)) -D24 = Pin((4, 24)) -D25 = Pin((4, 25)) -D26 = Pin((4, 26)) -D27 = Pin((4, 27)) -D28 = Pin((4, 28)) -D29 = Pin((4, 29)) -D30 = Pin((4, 30)) -D31 = Pin((4, 31)) -D32 = Pin((4, 32)) -D33 = Pin((4, 33)) -D34 = Pin((4, 34)) -D35 = Pin((4, 35)) -D36 = Pin((4, 36)) -D37 = Pin((4, 37)) -D38 = Pin((4, 38)) -D39 = Pin((4, 39)) -D40 = Pin((4, 40)) -MISO_2 = Pin((4, 40)) -D41 = Pin((4, 41)) -MOSI_2 = Pin((4, 41)) -D42 = Pin((4, 42)) -SCLK_2 = Pin((4, 42)) -SCK_2 = Pin((4, 43)) -D43 = Pin((4, 43)) -D44 = Pin((4, 44)) -D45 = Pin((4, 45)) - -# ordered as spiId, sckId, mosiId, misoId -spiPorts = ( - (0, SCLK, MOSI, MISO), - (1, SCLK_1, MOSI_1, MISO_1), - (2, SCLK_2, MOSI_2, MISO_2), -) - -# ordered as uartId, txId, rxId -uartPorts = ((1, TXD, RXD),) - -# These are the known hardware I2C ports / pins. -# For software I2C ports created with the i2c-gpio overlay, see: -# https://github.com/adafruit/Adafruit_Python_Extended_Bus -i2cPorts = ( - (1, SCL, SDA), - (0, D1, D0), # both pi 1 and pi 2 i2c ports! -) diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3588/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3588/pin.py index 5a5a189..81c9b16 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3588/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3588/pin.py @@ -177,10 +177,14 @@ GPIO4_D7 = Pin((4, 31)) # UART UART0_TX_M2 = GPIO4_A3 UART0_RX_M2 = GPIO4_A4 +UART1_TX_M1 = GPIO1_B6 +UART1_RX_M1 = GPIO1_B7 UART2_TX_M0 = GPIO0_B5 UART2_RX_M0 = GPIO0_B6 UART2_TX_M2 = GPIO3_B1 UART2_RX_M2 = GPIO3_B2 +UART3_TX_M0 = GPIO1_C1 +UART3_RX_M0 = GPIO1_C0 UART3_TX_M1 = GPIO3_B5 UART3_RX_M1 = GPIO3_B6 UART4_TX_M2 = GPIO1_B3 @@ -193,8 +197,10 @@ UART7_RX_M2 = GPIO1_B4 # ordered as uartId, txId, rxId uartPorts = ( (0, UART0_TX_M2, UART0_RX_M2), + (1, UART1_TX_M1, UART1_RX_M1), (2, UART2_TX_M0, UART2_RX_M0), (2, UART2_TX_M2, UART2_RX_M2), + (3, UART3_TX_M0, UART3_RX_M0), (3, UART3_TX_M1, UART3_RX_M1), (4, UART4_TX_M2, UART4_RX_M2), (7, UART7_TX_M1, UART7_RX_M1), @@ -209,12 +215,18 @@ I2C1_SCL_M0 = GPIO0_B5 I2C1_SDA_M0 = GPIO0_B6 I2C1_SCL_M4 = GPIO1_B1 I2C1_SDA_M4 = GPIO1_B2 +I2C3_SCL_M0 = GPIO1_C1 +I2C3_SDA_M0 = GPIO1_C0 I2C3_SCL_M1 = GPIO3_B7 I2C3_SDA_M1 = GPIO3_C0 +I2C4_SCL_M3 = GPIO1_A3 +I2C4_SDA_M3 = GPIO1_A2 I2C6_SCL_M3 = GPIO4_B1 I2C6_SDA_M3 = GPIO4_B0 I2C7_SCL_M3 = GPIO4_B2 I2C7_SDA_M3 = GPIO4_B3 +I2C8_SCL_M2 = GPIO1_D6 +I2C8_SDA_M2 = GPIO1_D7 I2C8_SCL_M4 = GPIO3_C2 I2C8_SDA_M4 = GPIO3_C3 I2C5_SDA_M3 = GPIO1_B7 @@ -225,9 +237,12 @@ i2cPorts = ( (0, I2C0_SCL_M1, I2C0_SDA_M1), (1, I2C1_SCL_M0, I2C1_SDA_M0), (1, I2C1_SCL_M4, I2C1_SDA_M4), + (3, I2C3_SCL_M0, I2C3_SDA_M0), (3, I2C3_SCL_M1, I2C3_SDA_M1), + (4, I2C4_SCL_M3, I2C4_SDA_M3), (5, I2C5_SCL_M3, I2C5_SDA_M3), (7, I2C7_SCL_M3, I2C7_SDA_M3), + (8, I2C8_SCL_M2, I2C8_SDA_M2), (8, I2C8_SCL_M4, I2C8_SDA_M4), ) @@ -239,6 +254,11 @@ SPI0_SCLK_M2 = SPI0_CLK_M2 SPI0_CS0_M2 = GPIO1_B4 SPI0_CS1_M2 = GPIO1_B5 +SPI0_MOSI_M1 = GPIO4_A1 +SPI0_MISO_M1 = GPIO4_A0 +SPI0_SCLK_M1 = GPIO4_A2 +SPI0_CS0_M1 = GPIO4_B2 + SPI1_MOSI_M1 = GPIO3_B7 SPI1_MISO_M1 = GPIO3_C0 SPI1_CLK_M1 = GPIO3_C1 @@ -259,12 +279,15 @@ SPI4_SCLK_M0 = SPI4_SCK_M0 # ordered as spiId, sckId, mosiId, misoId spiPorts = ( (0, SPI0_SCLK_M2, SPI0_MOSI_M2, SPI0_MISO_M2), + (0, SPI0_SCLK_M1, SPI0_MOSI_M1, SPI0_MISO_M1), (1, SPI1_SCLK_M1, SPI1_MOSI_M1, SPI1_MISO_M1), (3, SPI3_SCLK_M0, SPI3_MOSI_M0, SPI3_MISO_M0), (4, SPI4_SCLK_M0, SPI4_MOSI_M0, SPI4_MISO_M0), ) # PWM +PWM0_M2 = GPIO1_A2 +PWM1_M2 = GPIO1_A3 PWM2_M1 = GPIO3_B1 PWM3_IR_M1 = GPIO3_B2 PWM5_M2 = GPIO4_C4 @@ -274,6 +297,7 @@ PWM8_M0 = GPIO3_A7 PWM10_M2 = GPIO3_D3 PWM11_IR_M3 = GPIO3_D5 PWM12_M0 = GPIO3_B5 +PWM13_M1 = GPIO4_B6 PWM13_M0 = GPIO3_B6 PWM13_M2 = GPIO1_B7 PWM14_M0 = GPIO3_C2 @@ -286,6 +310,8 @@ PWM15_IR_M3 = GPIO1_D7 # SysFS pwm outputs, pwm channel and pin in first tuple pwmOuts = ( + ((0, 0), PWM0_M2), + ((0, 1), PWM1_M2), ((0, 2), PWM2_M1), ((0, 3), PWM3_IR_M1), ((0, 5), PWM5_M2), @@ -296,6 +322,7 @@ pwmOuts = ( ((0, 11), PWM11_IR_M3), ((0, 12), PWM12_M0), ((0, 13), PWM13_M0), + ((0, 13), PWM13_M1), ((0, 13), PWM13_M2), ((0, 14), PWM14_M0), ((0, 14), PWM14_M1), diff --git a/src/board.py b/src/board.py index 1a5ec92..8bc94e8 100644 --- a/src/board.py +++ b/src/board.py @@ -43,10 +43,9 @@ elif ( or detector.board.RASPBERRY_PI_CM4 or detector.board.RASPBERRY_PI_CM4S or detector.board.RASPBERRY_PI_400 + or detector.board.RASPBERRY_PI_5 ): from adafruit_blinka.board.raspberrypi.raspi_4b import * -elif detector.board.RASPBERRY_PI_5: - from adafruit_blinka.board.raspberrypi.raspi_5b import * elif detector.board.any_raspberry_pi_40_pin: from adafruit_blinka.board.raspberrypi.raspi_40pin import * @@ -327,6 +326,9 @@ elif board_id == ap_board.LUBANCAT2: elif board_id == ap_board.LUBANCAT4: from adafruit_blinka.board.lubancat.lubancat4 import * +elif board_id == ap_board.LUBANCAT5: + from adafruit_blinka.board.lubancat.lubancat5 import * + elif board_id == ap_board.NANOPI_NEO_AIR: from adafruit_blinka.board.nanopi.neoair import * diff --git a/src/digitalio.py b/src/digitalio.py index 525605d..e215047 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -20,10 +20,9 @@ if detector.chip.BCM2XXX: "RASPBERRY_PI_400", "RASPBERRY_PI_CM4", "RASPBERRY_PI_CM4S", + "RASPBERRY_PI_5", ): from adafruit_blinka.microcontroller.bcm2711.pin import * - elif board_id in ("RASPBERRY_PI_5",): - from adafruit_blinka.microcontroller.bcm2712.pin import * else: from adafruit_blinka.microcontroller.bcm283x.pin import Pin elif detector.chip.AM33XX: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 287f77b..0baf43d 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -36,6 +36,7 @@ elif chip_id == ap_chip.BCM2XXX: "RASPBERRY_PI_4B", "RASPBERRY_PI_400", "RASPBERRY_PI_CM4", + "RASPBERRY_PI_5", ]: from adafruit_blinka.microcontroller.bcm2711 import * else: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 3ae84c5..adf92db 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -21,10 +21,9 @@ elif chip_id == ap_chip.BCM2XXX: "RASPBERRY_PI_400", "RASPBERRY_PI_CM4", "RASPBERRY_PI_CM4S", + "RASPBERRY_PI_5", ): from adafruit_blinka.microcontroller.bcm2711.pin import * - elif board_id in ("RASPBERRY_PI_5",): - from adafruit_blinka.microcontroller.bcm2712.pin import * else: from adafruit_blinka.microcontroller.bcm283x.pin import * elif chip_id == ap_chip.DRA74X: