From: Jan Volckaert Date: Wed, 19 Apr 2023 18:33:56 +0000 (+0200) Subject: Merge branch 'main' of github.com:janvolck/Adafruit_Blinka X-Git-Tag: 8.19.0~1^2~3 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/45a0b2733f51b531f809f3093559651d0fbcda7a?hp=658584212cde9e7504394b6a05262d1fd2a2745e Merge branch 'main' of github.com:janvolck/Adafruit_Blinka --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5fe5064..ea5eab5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,20 +15,20 @@ jobs: run: echo "$GITHUB_CONTEXT" - name: Translate Repo Name For Build Tools filename_prefix id: repo-name - run: echo ::set-output name=repo-name::Adafruit-Blinka + run: echo "repo-name=Adafruit-Blinka" >> $GITHUB_OUTPUT - name: Set up Python 3.7 - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: 3.7 - name: Versions run: | python3 --version - name: Checkout Current Repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: submodules: true - name: Checkout tools repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: adafruit/actions-ci-circuitpython-libs path: actions-ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8399b7..a0eb8f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,14 +11,14 @@ jobs: upload-pypi: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Check For setup.py id: need-pypi run: | - echo ::set-output name=setup-py::$( find . -wholename './setup.py' ) + echo "setup-py=$( find . -wholename './setup.py' )" >> $GITHUB_OUTPUT - name: Set up Python if: contains(steps.need-pypi.outputs.setup-py, 'setup.py') - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install dependencies diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py new file mode 100644 index 0000000..47f038f --- /dev/null +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Beaglebone Blue.""" +from adafruit_blinka.microcontroller.am335x import pin + +# common to all beagles +LED_USR0 = pin.USR0 +LED_USR1 = pin.USR1 +LED_USR2 = pin.USR2 +LED_USR3 = pin.USR3 + +SDA = pin.I2C1_SDA +SCL = pin.I2C1_SCL diff --git a/src/adafruit_blinka/board/coral_dev_board.py b/src/adafruit_blinka/board/coral_dev_board.py index 04fcbde..943ef36 100644 --- a/src/adafruit_blinka/board/coral_dev_board.py +++ b/src/adafruit_blinka/board/coral_dev_board.py @@ -8,6 +8,9 @@ from adafruit_blinka.microcontroller.nxp_imx8m import pin # Board name = RPI name [= alias] = pin name I2C2_SDA = D2 = SDA = pin.I2C2_SDA I2C2_SCL = D3 = SCL = pin.I2C2_SCL +I2C3_SDA = SDA3 = pin.I2C3_SDA +I2C3_SCL = SCL3 = pin.I2C3_SCL + PWM1 = D12 = pin.PWM1 PWM2 = D13 = pin.PWM2 diff --git a/src/adafruit_blinka/board/feather_can_u2if.py b/src/adafruit_blinka/board/feather_can_u2if.py new file mode 100644 index 0000000..d53d290 --- /dev/null +++ b/src/adafruit_blinka/board/feather_can_u2if.py @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries +# +# SPDX-License-Identifier: MIT +""" +Pin definitions for the Feather RP2040 CAN with u2if firmware. + +Adafruit CircuitPython 6.2.0 on 2021-04-05; Adafruit Feather RP2040 CAN with rp2040 +>>> import board +>>> board. +A0 A1 A2 A3 +D0 D1 D10 D11 +D12 D13 D24 D25 +D4 D5 D6 D9 +I2C SDA SCL LED +NEOPIXEL SPI SCK MISO +MOSI RX TX UART +CAN_STANDBY CAN_TX0_RTS CAN_RESET CAN_CS +CAN_INTERRUPT CAN_RX0_BF NEOPIXEL_POWER +""" + +from adafruit_blinka.microcontroller.rp2040_u2if import pin + +D0 = RX = pin.GP1 +D1 = TX = pin.GP0 +D4 = pin.GP4 +D5 = pin.GP5 +D6 = pin.GP6 +D9 = pin.GP9 +D10 = pin.GP10 +D11 = pin.GP11 +D12 = pin.GP12 +D13 = pin.GP13 +D24 = pin.GP24 +D25 = pin.GP25 + +A0 = pin.GP26 +A1 = pin.GP27 +A2 = pin.GP28 +A3 = pin.GP29 + +LED = pin.GP13 + +BUTTON = BOOT = pin.GP7 + +NEOPIXEL = pin.GP21 +NEOPIXEL_POWER = pin.GP20 + +SDA = pin.GP2 +SCL = pin.GP3 + +SCLK = SCK = pin.GP14 +MOSI = pin.GP15 +MISO = pin.GP8 + +CAN_STANDBY = pin.GP16 +CAN_TX0_RTS = pin.GP17 +CAN_RESET = pin.GP18 +CAN_CS = pin.GP19 +CAN_INTERRUPT = pin.GP22 +CAN_RX0_BF = pin.GP23 + +# access u2if via pin instance to open for specifc VID/PID +# pylint:disable = protected-access +pin.GP0._u2if_open_hid(0x239A, 0x8130) diff --git a/src/adafruit_blinka/board/feather_epd_u2if.py b/src/adafruit_blinka/board/feather_epd_u2if.py new file mode 100644 index 0000000..f31096f --- /dev/null +++ b/src/adafruit_blinka/board/feather_epd_u2if.py @@ -0,0 +1,64 @@ +# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries +# +# SPDX-License-Identifier: MIT +""" +Pin definitions for the Feather RP2040 ThinkInk with u2if firmware. + +Adafruit CircuitPython 6.2.0 on 2021-04-05; Adafruit Feather RP2040 ThinkInk with rp2040 +>>> import board +>>> board. +A0 A1 A2 A3 +D0 D1 D10 D11 +D12 D13 D24 D25 +D4 D5 D6 D9 +I2C LED MISO MOSI +NEOPIXEL EPD_BUSY SCK SCL +SDA SPI TX UART +EPD_CS EPD_RESET EPD_DC EPD_MOSI +EPD_SCK +""" + +from adafruit_blinka.microcontroller.rp2040_u2if import pin + +D0 = pin.GP1 +D1 = pin.GP0 +D4 = pin.GP4 +D5 = pin.GP5 +D6 = pin.GP6 +D9 = pin.GP9 +D10 = pin.GP10 +D11 = pin.GP11 +D12 = pin.GP12 +D13 = pin.GP13 +D24 = pin.GP24 +D25 = pin.GP25 + +A0 = pin.GP26 +A1 = pin.GP27 +A2 = pin.GP28 +A3 = pin.GP29 + +LED = pin.GP13 + +BUTTON = BOOT = pin.GP7 + +NEOPIXEL = pin.GP21 +NEOPIXEL_POWER = pin.GP20 + +SDA = pin.GP2 +SCL = pin.GP3 + +SCLK = SCK = pin.GP14 +MOSI = pin.GP15 +MISO = pin.GP8 + +EPD_BUSY = pin.GP16 +EPD_RESET = pin.GP17 +EPD_DC = pin.GP18 +EPD_CS = pin.GP19 +EPD_SCK = pin.GP22 +EPD_MOSI = pin.GP23 + +# access u2if via pin instance to open for specifc VID/PID +# pylint:disable = protected-access +pin.GP0._u2if_open_hid(0x239A, 0x812C) diff --git a/src/adafruit_blinka/board/feather_rfm_u2if.py b/src/adafruit_blinka/board/feather_rfm_u2if.py new file mode 100644 index 0000000..13b37af --- /dev/null +++ b/src/adafruit_blinka/board/feather_rfm_u2if.py @@ -0,0 +1,65 @@ +# SPDX-FileCopyrightText: 2023 Liz Clark for Adafruit Industries +# +# SPDX-License-Identifier: MIT +""" +Pin definitions for the Feather RP2040 RFM with u2if firmware. + +Adafruit CircuitPython 6.2.0 on 2021-04-05; Adafruit Feather RP2040 RFM with rp2040 +>>> import board +>>> board. +A0 A1 A2 A3 +D0 D1 D10 D11 +D12 D13 D24 D25 +D4 D5 D6 D9 +I2C SDA SCL LED +NEOPIXEL SPI SCK MISO +MOSI RX TX UART +RFM_CS RFM_RST RFM_IO5 RFM_IO3 +RFM_IO4 RFM_IO0 RFM_IO1 RFM_IO2 +""" + +from adafruit_blinka.microcontroller.rp2040_u2if import pin + +D0 = RX = pin.GP1 +D1 = TX = pin.GP0 +D4 = pin.GP4 +D5 = pin.GP5 +D6 = pin.GP6 +D9 = pin.GP9 +D10 = pin.GP10 +D11 = pin.GP11 +D12 = pin.GP12 +D13 = pin.GP13 +D24 = pin.GP24 +D25 = pin.GP25 + +A0 = pin.GP26 +A1 = pin.GP27 +A2 = pin.GP28 +A3 = pin.GP29 + +LED = pin.GP13 + +BUTTON = BOOT = pin.GP7 + +NEOPIXEL = pin.GP4 + +SDA = pin.GP2 +SCL = pin.GP3 + +SCLK = SCK = pin.GP14 +MOSI = pin.GP15 +MISO = pin.GP8 + +RFM_CS = pin.GP16 +RFM_RST = pin.GP17 +RFM_IO5 = pin.GP18 +RFM_IO3 = pin.GP19 +RFM_IO4 = pin.GP20 +RFM_IO0 = pin.GP21 +RFM_IO1 = pin.GP22 +RFM_IO2 = pin.GP23 + +# access u2if via pin instance to open for specifc VID/PID +# pylint:disable = protected-access +pin.GP0._u2if_open_hid(0x239A, 0x812E) diff --git a/src/adafruit_blinka/board/generic_linux_pc.py b/src/adafruit_blinka/board/generic_linux_pc.py new file mode 100644 index 0000000..bb3e737 --- /dev/null +++ b/src/adafruit_blinka/board/generic_linux_pc.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""(Empty) definitions for the GENERIC_LINUX_PC.""" diff --git a/src/adafruit_blinka/board/librecomputer/aml_s905x_cc_v1.py b/src/adafruit_blinka/board/librecomputer/aml_s905x_cc_v1.py index e84812c..0ce2563 100644 --- a/src/adafruit_blinka/board/librecomputer/aml_s905x_cc_v1.py +++ b/src/adafruit_blinka/board/librecomputer/aml_s905x_cc_v1.py @@ -12,10 +12,10 @@ for it in pin.i2cPorts: SCL = pin.i2cPorts[0][1] SDA = pin.i2cPorts[0][2] -SCLK = pin.SPI1_SCLK -MOSI = pin.SPI1_MOSI -MISO = pin.SPI1_MISO -SPI_CS = pin.SPI1_CS +SCLK = pin.SPI0_SCLK +MOSI = pin.SPI0_MOSI +MISO = pin.SPI0_MISO +SPI_CS = pin.SPI0_CS # Pinout reference: # https://github.com/libre-computer-project/libretech-wiring-tool/blob/master/libre-computer/aml-s905x-cc/gpio.map diff --git a/src/adafruit_blinka/board/librecomputer/roc_rk3328_cc.py b/src/adafruit_blinka/board/librecomputer/roc_rk3328_cc.py new file mode 100644 index 0000000..4501457 --- /dev/null +++ b/src/adafruit_blinka/board/librecomputer/roc_rk3328_cc.py @@ -0,0 +1,51 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the ROC-RK3328-CC.""" + +from adafruit_blinka.microcontroller.rockchip.rk3328 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] + +SCLK = pin.SPI0_SCLK +MOSI = pin.SPI0_MOSI +MISO = pin.SPI0_MISO +SPI_CS = pin.SPI0_CS + +# Pinout reference: +# https://github.com/libre-computer-project/libretech-wiring-tool/blob/master/libre-computer/roc-rk3328-cc/gpio.map + +# 40 pin Header J1 +P3 = pin.GPIO2_D1 +P5 = pin.GPIO2_D0 +P7 = pin.GPIO1_D4 +P8 = pin.GPIO3_A4 +P10 = pin.GPIO3_A6 +P11 = pin.GPIO2_C4 +P12 = pin.GPIO2_A6 +P13 = pin.GPIO2_C5 +P15 = pin.GPIO2_C6 +P16 = pin.GPIO3_A7 +P18 = pin.GPIO3_A5 +P19 = pin.GPIO3_A1 +P21 = pin.GPIO3_A2 +P22 = pin.GPIO0_A2 +P23 = pin.GPIO3_A0 +P24 = pin.GPIO3_B0 +P26 = pin.GPIO2_B4 +P27 = pin.GPIO2_A4 +P28 = pin.GPIO2_A5 +P29 = pin.GPIO2_C3 +P31 = pin.GPIO2_C7 +P32 = pin.GPIO0_A0 +P33 = pin.GPIO2_C0 +P35 = pin.GPIO2_C2 +P36 = pin.GPIO2_A0 +P37 = pin.GPIO2_B7 +P38 = pin.GPIO2_A1 +P40 = pin.GPIO0_D3 diff --git a/src/adafruit_blinka/board/nvidia/jetson_orin_nx.py b/src/adafruit_blinka/board/nvidia/jetson_orin_nx.py new file mode 100644 index 0000000..1aa27d3 --- /dev/null +++ b/src/adafruit_blinka/board/nvidia/jetson_orin_nx.py @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: 2022 Linh Hoang for NVIDIA +# SPDX-FileCopyrightText: 2022 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Pin definitions for Jetson AGX Orin.""" + +from adafruit_blinka.microcontroller.tegra.t234 import pin + +SDA = pin.SDA +SCL = pin.SCL +SDA_1 = pin.SDA_1 +SCL_1 = pin.SCL_1 + +D4 = pin.AC06 +D5 = pin.Q05 +D6 = pin.Q06 +D7 = pin.Z07 +D8 = pin.Z06 +D9 = pin.Z04 +D10 = pin.Z05 +D11 = pin.Z03 +D12 = pin.G06 +D13 = pin.H00 +D16 = pin.R05 +D17 = pin.R04 +D18 = pin.H07 +D19 = pin.I02 +D20 = pin.I01 +D21 = pin.I00 +D22 = pin.N01 +D23 = pin.Y04 +D24 = pin.Y03 +D25 = pin.Y01 +D26 = pin.Y02 +D27 = pin.Y00 + +CE1 = D7 +CE0 = D8 +MISO = D9 +MOSI = D10 +SCLK = D11 +SCK = D11 diff --git a/src/adafruit_blinka/board/orangepi/orangepi4.py b/src/adafruit_blinka/board/orangepi/orangepi4.py index e767a74..6c772c2 100644 --- a/src/adafruit_blinka/board/orangepi/orangepi4.py +++ b/src/adafruit_blinka/board/orangepi/orangepi4.py @@ -5,61 +5,77 @@ from adafruit_blinka.microcontroller.rockchip.rk3399 import pin -D3 = pin.GPIO2_A7 # /I2C7_SDA/PIN 71/ -D5 = pin.GPIO2_B0 # /I2C7_SCL/PIN 72/ -D7 = pin.GPIO2_B3 # /SPI2_CLK/PIN 75/ -D8 = pin.GPIO4_C4 # /UART2_TXD/PIN 148/ -D10 = pin.GPIO4_C3 # /UART2_RXD/PIN 147/ -D11 = pin.GPIO4_C2 # /PWM0/PIN 146/ -D13 = pin.GPIO4_C6 # /PWM1/PIN 150/ -D15 = pin.GPIO4_C5 # /SPDIF_TX/PIN 149/ -D16 = pin.GPIO4_D2 # /PIN 154/ -D17 = pin.GPIO4_D4 # /PIN 156/ -D19 = pin.GPIO1_B0 # /UART4_TXD/SPI1_TXD/PIN 40/ -D21 = pin.GPIO1_A7 # /UART4_RXD/SPI1_RXD/PIN 39/ -D22 = pin.GPIO4_D5 # /PIN 157/ -D23 = pin.GPIO1_B1 # /SPI1_CLK/PIN 41/ -D24 = pin.GPIO1_B2 # /SPI1_CS/PIN 42/ -D27 = pin.GPIO2_A0 # /I2C2_SDA/PIN 64/ -D28 = pin.GPIO2_A1 # /I2C2_SCL/PIN 65/ -D29 = pin.GPIO2_B2 # /I2C6_SCL/SPI2_TXD/PIN 74/ -D31 = pin.GPIO2_B1 # /I2C6_SDA/SPI2_RXD/PIN 73/ -D32 = pin.GPIO3_C0 # /SPDIF_TX/UART3_CTS/PIN 112/ -D33 = pin.GPIO2_B4 # /SPI2_CS/PIN 76/ -D35 = pin.GPIO4_A5 # /I2S1_LRCK_TX/PIN 133/ -D36 = pin.GPIO4_A4 # /I2S1_LRCK_RX/PIN 132/ -D37 = pin.GPIO4_D6 # /PIN 158/ -D38 = pin.GPIO4_A6 # /I2S1_SDI/PIN 134/ -D40 = pin.GPIO4_A7 # /I2S1_SDO/PIN 135/ +# D pin number is ordered by physical pin sequence +# Reference: https://service.robots.org.nz/wiki/Wiki.jsp?page=OrangePi -SDA2 = D27 -SCL2 = D28 +# +------+-----+----------+------+---+OrangePi 4+---+---+--+----------+-----+------+ +# | GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO | +# +------+-----+----------+------+---+----++----+---+------+----------+-----+------+ +# | | | 3.3V | | | 1 || 2 | | | 5V | | | +# | 64 | 0 | I2C2_SDA | IN | 1 | 3 || 4 | | | 5V | | | +# | 65 | 1 | I2C2_SCL | IN | 1 | 5 || 6 | | | GND | | | +# | 150 | 2 | PWM1 | ALT2 | 1 | 7 || 8 | 1 | ALT2 | I2C3_SCL | 3 | 145 | +# | | | GND | | | 9 || 10 | 1 | ALT2 | I2C3_SDA | 4 | 144 | +# | 33 | 5 | GPIO1_A1 | IN | 0 | 11 || 12 | 1 | IN | GPIO1_C2 | 6 | 50 | +# | 35 | 7 | GPIO1_A3 | OUT | 1 | 13 || 14 | | | GND | | | +# | 92 | 8 | GPIO2_D4 | IN | 0 | 15 || 16 | 0 | IN | GPIO1_C6 | 9 | 54 | +# | | | 3.3V | | | 17 || 18 | 0 | IN | GPIO1_C7 | 10 | 55 | +# | 40 | 11 | SPI1_TXD | ALT3 | 0 | 19 || 20 | | | GND | | | +# | 39 | 12 | SPI1_RXD | ALT3 | 1 | 21 || 22 | 0 | IN | GPIO1_D0 | 13 | 56 | +# | 41 | 14 | SPI1_CLK | ALT3 | 1 | 23 || 24 | 1 | ALT3 | SPI1_CS | 15 | 42 | +# | | | GND | | | 25 || 26 | 0 | IN | GPIO4_C5 | 16 | 149 | +# | 64 | 17 | I2C2_SDA | IN | 1 | 27 || 28 | 1 | IN | I2C2_SCL | 18 | 65 | +# | | | I2S0_RX | | | 29 || 30 | | | GND | | | +# | | | I2S0_TX | | | 31 || 32 | | | I2S_CLK | | | +# | | | I2S0_SCK | | | 33 || 34 | | | GND | | | +# | | | I2S0_SI0 | | | 35 || 36 | | | I2S0_SO0 | | | +# | | | I2S0_SI1 | | | 37 || 38 | | | I2S0_SI2 | | | +# | | | GND | | | 39 || 40 | | | I2S0_SI3 | | | +# +------+-----+----------+------+---+----++----+---+------+----------+-----+------+ +# | GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO | +# +------+-----+----------+------+---+OrangePi 4+---+---+--+----------+-----+------+ -SDA6 = D31 -SCL6 = D29 +# D1 = VCC3V3_SYS +# D2 = VCC5V0_SYS +D3 = pin.I2C2_SDA # I2C2_SDA_3V0 +# D4 = VCC5V0_SYS +D5 = pin.I2C2_SCL # I2C2_SCL_3V0 +# D6 = GND +D7 = pin.GPIO4_C6 # GPIO4_C6/PWM1 +D8 = pin.I2C3_SCL # I2C3_SCL +# D9 = GND +D10 = pin.I2C3_SDA # I2C3_SDA +D11 = pin.GPIO1_A1 # GPIO1_A1 +D12 = pin.GPIO1_C2 # GPIO1_C2 +D13 = pin.GPIO1_A3 # GPIO1_A3 +# D14 = GND +D15 = pin.GPIO2_D4 # GPIO2_D4 +D16 = pin.GPIO1_C6 # GPIO1_C6 +# D17 = GND +D18 = pin.GPIO1_C7 # GPIO1_C7 +D19 = pin.GPIO1_B0 # UART4_TX / SPI1_TXD +# D20 = GND +D21 = pin.GPIO1_A7 # UART4_RX / SPI1_RXD +D22 = pin.GPIO1_D0 # GPIO1_D0 +D23 = pin.GPIO1_B1 # SPI1_CLK +D24 = pin.GPIO1_B2 # SPI1_CSn0 +# D25 = GND +D26 = pin.GPIO4_C5 # GPIO4_C5 +D27 = pin.I2C2_SDA # I2C2_SDA +D28 = pin.I2C2_SCL # I2C2_SCL +# D29 = pin.I2S0_LRCK_RX +# D30 = GND +# D31 = pin.I2S0_LRCK_TX +# D32 = pin.I2S_CLK +# D33 = pin.I2S0_SCLK +# D34 = GND +# D35 = pin.I2S0_SDI0 +# D36 = pin.I2S0_SDO0 +# D37 = pin.I2S0_SDI1SDO_3 +# D38 = pin.I2S0_SDI2SDO2 +# D39 = GND +# D40 = pin.I2S0_SDI3SDO1 -SDA7 = D3 -SCL7 = D5 - -SDA = SDA2 -SCL = SCL2 - -SCLK = D7 -MOSI = D29 -MISO = D31 -CS = D33 -SCK = SCLK - -UART2_TX = D8 -UART2_RX = D10 - -UART4_TX = D19 -UART4_RX = D21 - -UART_TX = UART2_TX -UART_RX = UART2_RX - -PWM0 = pin.PWM0 -PWM1 = pin.PWM1 - -ADC_IN0 = pin.ADC_IN0 +# UART +UART4_TX = pin.GPIO1_B0 +UART4_RX = pin.GPIO1_A7 diff --git a/src/adafruit_blinka/board/radxa/rockpi3a.py b/src/adafruit_blinka/board/radxa/rockpi3a.py new file mode 100644 index 0000000..ee6bbba --- /dev/null +++ b/src/adafruit_blinka/board/radxa/rockpi3a.py @@ -0,0 +1,54 @@ +# SPDX-FileCopyrightText: 2023 Enrico Trevisanello +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Radxa Rock Pi 3A.""" + +from adafruit_blinka.microcontroller.rockchip.rk3568 import pin + +# 3A IO pins + +D1_A0 = pin.GPIO1_A0 # /I2C3_SDA_M0/PIN 32 +D1_A1 = pin.GPIO1_A1 # /I2C3_SCL_M0/PIN 33 +D0_B5 = pin.GPIO0_B5 # /I2C2_SCL_M0/PIN 13 +D0_D1 = pin.GPIO0_D1 # /UART2_TX_M0/PIN 25 +D0_D0 = pin.GPIO0_D0 # /UART2_RX_M0/PIN 24 +D3_C4 = pin.GPIO3_C4 # /PWM14_M0/PIN 116 +D3_A3 = pin.GPIO3_A3 # /PIN 99 +D3_C5 = pin.GPIO3_C5 # /PWM14_M0/PIN 117 +D3_C0 = pin.GPIO3_C0 # /PWM14_M0/PIN 16 +D0_B2 = pin.GPIO0_B2 # /UART4_TX_M1/PIN 106 +D4_C3 = pin.GPIO4_C3 # /PWM15_IR_M1/PIN 147 +D4_C5 = pin.GPIO4_C5 # /PWM12_M1/PIN 149 +D0_C1 = pin.GPIO0_C1 # /PWM2_M0/ PIN 17 +D4_C2 = pin.GPIO4_C2 # /PWM14_M1/PIN 146 +D4_C6 = pin.GPIO4_C6 # /PWM13_M1/PIN 150 +D4_D1 = pin.GPIO4_D1 # /SPI3_CS1_M1/PIN 153 +D0_B6 = pin.GPIO0_B6 # /I2C2_SDA_M0/PIN 14 +D0_B5 = pin.GPIO0_B5 # /I2C2_SCL_M0/PIN 13 +D2_D7 = pin.GPIO2_D7 # /UART8_TX_M1/PIN 95 +D3_A0 = pin.GPIO3_A0 # /SPI2_CLK_M1/PIN 96 +D3_C2 = pin.GPIO3_C2 # /UART5_TX_M1/PIN 114 +D3_C3 = pin.GPIO3_C3 # /UART5_RX_M1/PIN 115 +D3_A4 = pin.GPIO3_A4 # /PIN 100 +D3_A2 = pin.GPIO3_A2 # /PIN 98 +D3_C0 = pin.GPIO3_C0 # /PWM13_M0/PIN 112 +D3_A6 = pin.GPIO3_A6 # /PIN 102 +D3_A5 = pin.GPIO3_A5 # /PIN 101 + +# I2C +SDA = D1_A0 +SCL = D1_A1 + +# SPI +CE0 = D4_C6 +SCLK = D4_C2 +MOSI = D4_C3 +MISO = D4_C5 + +# 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/board/radxa/rockpi4.py b/src/adafruit_blinka/board/radxa/rockpi4.py index 9c04670..c8070ed 100644 --- a/src/adafruit_blinka/board/radxa/rockpi4.py +++ b/src/adafruit_blinka/board/radxa/rockpi4.py @@ -1,36 +1,38 @@ # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# See https://wiki.radxa.com/Rock4/hardware/gpio for pinout # # SPDX-License-Identifier: MIT -"""Pin definitions for the Rock Pi 4.""" +"""Pin definitions for the Rock Pi 4 Family.""" from adafruit_blinka.microcontroller.rockchip.rk3399 import pin -D3 = pin.GPIO2_A7 # /I2C7_SDA/PIN 71/ -D5 = pin.GPIO2_B0 # /I2C7_SCL/PIN 72/ -D7 = pin.GPIO2_B3 # /SPI2_CLK/PIN 75/ -D8 = pin.GPIO4_C4 # /UART2_TXD/PIN 148/ -D10 = pin.GPIO4_C3 # /UART2_RXD/PIN 147/ -D11 = pin.GPIO4_C2 # /PWM0/PIN 146/ -D13 = pin.GPIO4_C6 # /PWM1/PIN 150/ -D15 = pin.GPIO4_C5 # /SPDIF_TX/PIN 149/ -D16 = pin.GPIO4_D2 # /PIN 154/ -D17 = pin.GPIO4_D4 # /PIN 156/ -D19 = pin.GPIO1_B0 # /UART4_TXD/SPI1_TXD/PIN 40/ -D21 = pin.GPIO1_A7 # /UART4_RXD/SPI1_RXD/PIN 39/ -D22 = pin.GPIO4_D5 # /PIN 157/ -D23 = pin.GPIO1_B1 # /SPI1_CLK/PIN 41/ -D24 = pin.GPIO1_B2 # /SPI1_CS/PIN 42/ -D27 = pin.GPIO2_A0 # /I2C2_SDA/PIN 64/ -D28 = pin.GPIO2_A1 # /I2C2_SCL/PIN 65/ -D29 = pin.GPIO2_B2 # /I2C6_SCL/SPI2_TXD/PIN 74/ -D31 = pin.GPIO2_B1 # /I2C6_SDA/SPI2_RXD/PIN 73/ -D32 = pin.GPIO3_C0 # /SPDIF_TX/UART3_CTS/PIN 112/ -D33 = pin.GPIO2_B4 # /SPI2_CS/PIN 76/ -D35 = pin.GPIO4_A5 # /I2S1_LRCK_TX/PIN 133/ -D36 = pin.GPIO4_A4 # /I2S1_LRCK_RX/PIN 132/ -D37 = pin.GPIO4_D6 # /PIN 158/ -D38 = pin.GPIO4_A6 # /I2S1_SDI/PIN 134/ -D40 = pin.GPIO4_A7 # /I2S1_SDO/PIN 135/ +D3 = pin.GPIO2_A7 +D5 = pin.GPIO2_B0 +D7 = pin.GPIO2_B3 +D8 = pin.GPIO4_C4 +D10 = pin.GPIO4_C3 +D11 = pin.GPIO4_C2 +D12 = pin.GPIO4_A3 +D13 = pin.GPIO4_C6 +D15 = pin.GPIO4_C5 +D16 = pin.GPIO4_D2 +D18 = pin.GPIO4_D4 +D19 = pin.GPIO1_B0 +D21 = pin.GPIO1_A7 +D22 = pin.GPIO4_D5 +D23 = pin.GPIO1_B1 +D24 = pin.GPIO1_B2 +D27 = pin.GPIO2_A0 +D28 = pin.GPIO2_A1 +D29 = pin.GPIO2_B2 +D31 = pin.GPIO2_B1 +D32 = pin.GPIO3_C0 +D33 = pin.GPIO2_B4 +D35 = pin.GPIO4_A5 +D36 = pin.GPIO4_A4 +D37 = pin.GPIO4_D6 +D38 = pin.GPIO4_A6 +D40 = pin.GPIO4_A7 SDA2 = D27 SCL2 = D28 @@ -44,10 +46,10 @@ SCL7 = D5 SDA = SDA2 SCL = SCL2 -SCLK = D7 -MOSI = D29 -MISO = D31 -CS = D33 +SCLK = D23 +MOSI = D19 +MISO = D21 +CS = D24 SCK = SCLK UART2_TX = D8 diff --git a/src/adafruit_blinka/microcontroller/amlogic/s905x/pin.py b/src/adafruit_blinka/microcontroller/amlogic/s905x/pin.py index a2ff194..ea6b51e 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/s905x/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/s905x/pin.py @@ -53,6 +53,10 @@ UART1_TX = GPIO287 UART2_RX = GPIO292 UART2_TX = GPIO291 +SPI0_SCLK = GPIO290 +SPI0_MISO = GPIO288 +SPI0_MOSI = GPIO287 +SPI0_CS = GPIO289 SPI1_SCLK = GPIO223 SPI1_MISO = GPIO288 SPI1_MOSI = GPIO287 @@ -63,7 +67,7 @@ i2cPorts = ( (1, I2C1_SCK, I2C1_SDA), ) -spiPorts = (0, SPI1_SCLK, SPI1_MOSI, SPI1_MISO) +spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO)) uartPorts = ( (1, UART1_TX, UART1_RX), diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py index 3dd75e7..f9912ae 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3399/pin.py @@ -1,7 +1,8 @@ # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# See https://wiki.radxa.com/Rock4/hardware/gpio # # SPDX-License-Identifier: MIT -"""A Pin class for use with Rockchip RK3399.""" +"""A Pin class for use with Rockchip RK3399 and RK3399_T.""" from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin @@ -60,16 +61,18 @@ I2C8_SCL = GPIO1_C5 # SPI SPI1_CS = GPIO1_B2 SPI1_SCLK = GPIO1_B1 -SPI1_MISO = GPIO1_B0 -SPI1_MOSI = GPIO1_A7 +SPI1_MISO = GPIO1_A7 +SPI1_MOSI = GPIO1_B0 SPI2_CS = GPIO2_B4 -SPI2_SCLK = GPIO2_A1 +SPI2_SCLK = GPIO2_B3 SPI2_MISO = GPIO2_B1 SPI2_MOSI = GPIO2_B2 # UART -UART0_TX = GPIO4_C4 -UART0_RX = GPIO4_C3 +UART2_TX = GPIO4_C4 +UART2_RX = GPIO4_C3 +UART4_TX = GPIO1_B0 +UART4_RX = GPIO1_A7 # PWM PWM0 = GPIO4_C2 @@ -77,18 +80,21 @@ PWM1 = GPIO4_C6 # ordered as i2cId, SCL, SDA i2cPorts = ( - (0, I2C2_SCL, I2C2_SDA), - (1, I2C6_SCL, I2C6_SDA), + (2, I2C2_SCL, I2C2_SDA), + (6, I2C6_SCL, I2C6_SDA), (7, I2C7_SCL, I2C7_SDA), ) # ordered as spiId, sckId, mosiId, misoId -spiPorts = ((1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),) +spiPorts = ( + (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO), + (2, SPI2_SCLK, SPI2_MOSI, SPI2_MISO), +) # SysFS pwm outputs, pwm channel and pin in first tuple pwmOuts = ( ((0, 0), PWM0), - ((1, 0), PWM1), + ((0, 0), PWM1), ) # SysFS analog inputs, Ordered as analog analogInId, device, and channel diff --git a/src/adafruit_blinka/microcontroller/rockchip/rk3568/pin.py b/src/adafruit_blinka/microcontroller/rockchip/rk3568/pin.py index e458b15..0aa3a55 100644 --- a/src/adafruit_blinka/microcontroller/rockchip/rk3568/pin.py +++ b/src/adafruit_blinka/microcontroller/rockchip/rk3568/pin.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023 mmontol +# SPDX-FileCopyrightText: 2023 mmontol, etrevis # # SPDX-License-Identifier: MIT @@ -6,25 +6,122 @@ from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# GPIOx_yz = x * 32 + y * 8 + z +# y: A -> 0, B -> 1, C -> 2, D -> 3 + # GPIO0 +GPIO0_A0 = Pin((0, 0)) +GPIO0_A1 = Pin((0, 1)) +GPIO0_A2 = Pin((0, 2)) +GPIO0_A3 = Pin((0, 3)) +GPIO0_A4 = Pin((0, 4)) +GPIO0_A5 = Pin((0, 5)) +GPIO0_A6 = Pin((0, 6)) +GPIO0_A7 = Pin((0, 7)) GPIO0_B0 = Pin((0, 8)) +GPIO0_B1 = Pin((0, 9)) +GPIO0_B2 = Pin((0, 10)) +GPIO0_B3 = Pin((0, 11)) +GPIO0_B4 = Pin((0, 12)) +GPIO0_B5 = Pin((0, 13)) +GPIO0_B6 = Pin((0, 14)) +GPIO0_B7 = Pin((0, 15)) +GPIO0_C0 = Pin((0, 16)) +GPIO0_C1 = Pin((0, 17)) GPIO0_C2 = Pin((0, 18)) +GPIO0_C3 = Pin((0, 19)) +GPIO0_C4 = Pin((0, 20)) +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)) +GPIO0_D2 = Pin((0, 26)) +GPIO0_D3 = Pin((0, 27)) +GPIO0_D4 = Pin((0, 28)) +GPIO0_D5 = Pin((0, 29)) +GPIO0_D6 = Pin((0, 30)) +GPIO0_D7 = Pin((0, 31)) # GPIO1 GPIO1_A0 = Pin((1, 0)) GPIO1_A1 = Pin((1, 1)) +GPIO1_A2 = Pin((1, 2)) +GPIO1_A3 = Pin((1, 3)) +GPIO1_A4 = Pin((1, 4)) +GPIO1_A5 = Pin((1, 5)) +GPIO1_A6 = Pin((1, 6)) +GPIO1_A7 = Pin((1, 7)) GPIO1_B0 = Pin((1, 8)) GPIO1_B1 = Pin((1, 9)) GPIO1_B2 = Pin((1, 10)) +GPIO1_B3 = Pin((1, 11)) +GPIO1_B4 = Pin((1, 12)) +GPIO1_B5 = Pin((1, 13)) +GPIO1_B6 = Pin((1, 14)) +GPIO1_B7 = Pin((1, 15)) +GPIO1_C0 = Pin((1, 16)) +GPIO1_C1 = Pin((1, 17)) +GPIO1_C2 = Pin((1, 18)) +GPIO1_C3 = Pin((1, 19)) +GPIO1_C4 = Pin((1, 20)) +GPIO1_C5 = Pin((1, 21)) +GPIO1_C6 = Pin((1, 22)) +GPIO1_C7 = Pin((1, 23)) +GPIO1_D0 = Pin((1, 24)) +GPIO1_D1 = Pin((1, 25)) +GPIO1_D2 = Pin((1, 26)) +GPIO1_D3 = Pin((1, 27)) +GPIO1_D4 = Pin((1, 28)) +GPIO1_D5 = Pin((1, 29)) +GPIO1_D6 = Pin((1, 30)) +GPIO1_D7 = Pin((1, 31)) # GPIO2 +GPIO2_A0 = Pin((2, 0)) +GPIO2_A1 = Pin((2, 1)) +GPIO2_A2 = Pin((2, 2)) +GPIO2_A3 = Pin((2, 3)) +GPIO2_A4 = Pin((2, 4)) +GPIO2_A5 = Pin((2, 5)) +GPIO2_A6 = Pin((2, 6)) +GPIO2_A7 = Pin((2, 7)) +GPIO2_B0 = Pin((2, 8)) +GPIO2_B1 = Pin((2, 9)) +GPIO2_B2 = Pin((2, 10)) +GPIO2_B3 = Pin((2, 11)) +GPIO2_B4 = Pin((2, 12)) +GPIO2_B5 = Pin((2, 13)) +GPIO2_B6 = Pin((2, 14)) +GPIO2_B7 = Pin((2, 15)) +GPIO2_C0 = Pin((2, 16)) +GPIO2_C1 = Pin((2, 17)) +GPIO2_C2 = Pin((2, 18)) +GPIO2_C3 = Pin((2, 19)) +GPIO2_C4 = Pin((2, 20)) +GPIO2_C5 = Pin((2, 21)) +GPIO2_C6 = Pin((2, 22)) +GPIO2_C7 = Pin((2, 23)) +GPIO2_D0 = Pin((2, 24)) +GPIO2_D1 = Pin((2, 25)) +GPIO2_D2 = Pin((2, 26)) +GPIO2_D3 = Pin((2, 27)) +GPIO2_D4 = Pin((2, 28)) +GPIO2_D5 = Pin((2, 29)) +GPIO2_D6 = Pin((2, 30)) GPIO2_D7 = Pin((2, 31)) # GPIO3 GPIO3_A0 = Pin((3, 0)) +GPIO3_A1 = Pin((3, 1)) +GPIO3_A2 = Pin((3, 2)) +GPIO3_A3 = Pin((3, 3)) +GPIO3_A4 = Pin((3, 4)) GPIO3_A5 = Pin((3, 5)) GPIO3_A6 = Pin((3, 6)) GPIO3_A7 = Pin((3, 7)) +GPIO3_B0 = Pin((3, 8)) GPIO3_B1 = Pin((3, 9)) GPIO3_B2 = Pin((3, 10)) GPIO3_B3 = Pin((3, 11)) @@ -33,43 +130,105 @@ GPIO3_B5 = Pin((3, 13)) GPIO3_B6 = Pin((3, 14)) GPIO3_B7 = Pin((3, 15)) GPIO3_C0 = Pin((3, 16)) +GPIO3_C1 = Pin((3, 17)) +GPIO3_C2 = Pin((3, 18)) +GPIO3_C3 = Pin((3, 19)) GPIO3_C4 = Pin((3, 20)) GPIO3_C5 = Pin((3, 21)) +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)) +GPIO3_D6 = Pin((3, 30)) +GPIO3_D7 = Pin((3, 31)) # GPIO4 +GPIO4_A0 = Pin((4, 0)) +GPIO4_A1 = Pin((4, 1)) +GPIO4_A2 = Pin((4, 2)) +GPIO4_A3 = Pin((4, 3)) +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)) GPIO4_C2 = Pin((4, 18)) GPIO4_C3 = Pin((4, 19)) GPIO4_C4 = Pin((4, 20)) GPIO4_C5 = Pin((4, 21)) GPIO4_C6 = Pin((4, 22)) +GPIO4_C7 = Pin((4, 23)) +GPIO4_D0 = Pin((4, 24)) +GPIO4_D1 = Pin((4, 25)) GPIO4_D2 = Pin((4, 26)) +GPIO4_D3 = Pin((4, 27)) +GPIO4_D4 = Pin((4, 28)) +GPIO4_D5 = Pin((4, 29)) +GPIO4_D6 = Pin((4, 30)) +GPIO4_D7 = Pin((4, 31)) # I2C I2C3_SCL_M0 = GPIO1_A1 I2C3_SDA_M0 = GPIO1_A0 I2C5_SCL_M0 = GPIO3_B3 I2C5_SDA_M0 = GPIO3_B4 +I2C2_SCL_M0 = GPIO0_B5 +I2C2_SDA_M0 = GPIO0_B6 +I2C1_SCL = GPIO0_B3 +I2C1_SDA = GPIO0_B4 # SPI SPI3_CS0_M1 = GPIO4_C6 +SPI3_CS1_M1 = GPIO4_D1 SPI3_CLK_M1 = GPIO4_C2 SPI3_MISO_M1 = GPIO4_C5 SPI3_MOSI_M1 = GPIO4_C3 # UART +UART0_RX = GPIO0_C0 +UART0_TX = GPIO0_C1 +UART2_TX_M0 = GPIO0_D1 +UART2_RX_M0 = GPIO0_D0 +UART3_TX_M0 = GPIO1_A1 +UART3_RX_M0 = GPIO1_A0 UART3_TX_M1 = GPIO3_B7 UART3_RX_M1 = GPIO3_C0 +UART7_TX_M1 = GPIO3_C4 +UART7_RX_M1 = GPIO3_C5 # PWM +PWM1_M0 = GPIO0_C0 +PWM1_M1 = GPIO0_B5 +PWM2_M0 = GPIO0_C1 +PWM2_M1 = GPIO0_B6 PWM8_M0 = GPIO3_B1 PWM9_M0 = GPIO3_B2 +PWM12_M1 = GPIO4_C5 +PWM13_M1 = GPIO4_C6 PWM10_M0 = GPIO3_B5 PWM14_M0 = GPIO3_C4 +PWM14_M1 = GPIO4_C2 +PWM15_IR_M1 = GPIO3_C5 # ordered as i2cId, SCL, SDA i2cPorts = ( (3, I2C3_SCL_M0, I2C3_SDA_M0), (5, I2C5_SCL_M0, I2C5_SDA_M0), + (2, I2C2_SCL_M0, I2C2_SDA_M0), + (1, I2C1_SCL, I2C1_SDA), ) # ordered as spiId, sckId, mosiId, misoId @@ -77,9 +236,13 @@ spiPorts = ((3, SPI3_CLK_M1, SPI3_MOSI_M1, SPI3_MISO_M1),) # SysFS pwm outputs, pwm channel and pin in first tuple pwmOuts = ( + ((1, 0), PWM1_M0), + ((1, 0), PWM2_M0), ((1, 0), PWM8_M0), ((1, 0), PWM9_M0), ((1, 0), PWM10_M0), + ((1, 0), PWM12_M1), + ((1, 0), PWM13_M1), ((1, 0), PWM14_M0), ) diff --git a/src/adafruit_blinka/microcontroller/rp2040/pin.py b/src/adafruit_blinka/microcontroller/rp2040/pin.py index 7d29960..68fe5d1 100755 --- a/src/adafruit_blinka/microcontroller/rp2040/pin.py +++ b/src/adafruit_blinka/microcontroller/rp2040/pin.py @@ -41,30 +41,39 @@ spiPorts = ( (0, GP2, GP3, GP0), (0, GP2, GP3, GP4), (0, GP2, GP3, GP16), + (0, GP2, GP3, GP20), (0, GP2, GP7, GP0), (0, GP2, GP7, GP4), (0, GP2, GP7, GP16), + (0, GP2, GP7, GP20), (0, GP2, GP19, GP0), (0, GP2, GP19, GP4), (0, GP2, GP19, GP16), + (0, GP2, GP19, GP20), (0, GP6, GP3, GP0), (0, GP6, GP3, GP4), (0, GP6, GP3, GP16), + (0, GP6, GP3, GP20), (0, GP6, GP7, GP0), (0, GP6, GP7, GP4), (0, GP6, GP7, GP16), + (0, GP6, GP7, GP20), (0, GP6, GP19, GP0), (0, GP6, GP19, GP4), (0, GP6, GP19, GP16), + (0, GP6, GP19, GP20), (0, GP18, GP3, GP0), (0, GP18, GP3, GP4), (0, GP18, GP3, GP16), + (0, GP18, GP3, GP20), (0, GP18, GP7, GP0), (0, GP18, GP7, GP4), (0, GP18, GP7, GP16), + (0, GP18, GP7, GP20), (0, GP18, GP19, GP0), (0, GP18, GP19, GP4), (0, GP18, GP19, GP16), + (0, GP18, GP19, GP20), (1, GP10, GP11, GP8), (1, GP10, GP11, GP12), (1, GP10, GP15, GP8), diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py index f4a1a61..1715b4a 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/i2c.py @@ -88,6 +88,48 @@ class I2C_Feather(I2C): super().__init__(index, frequency=frequency) +class I2C_Feather_CAN(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + +class I2C_Feather_EPD(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + +class I2C_Feather_RFM(I2C): + """I2C Class for Feather EPD u2if""" + + def __init__(self, scl, sda, *, frequency=100000): + index = None + if scl.id == 3 and sda.id == 2: + index = 1 + if index is None: + raise ValueError("I2C not found on specified pins.") + self._index = index + + super().__init__(index, frequency=frequency) + + class I2C_QTPY(I2C): """I2C Class for QT Py 2if""" diff --git a/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py b/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py index 435baba..7491c03 100644 --- a/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py +++ b/src/adafruit_blinka/microcontroller/rp2040_u2if/spi.py @@ -4,6 +4,7 @@ """SPI Classes for RP2040s with u2if firmware""" from .rp2040_u2if import rp2040_u2if + # pylint: disable=protected-access, no-self-use class SPI: """SPI Base Class for RP2040 u2if""" @@ -93,6 +94,44 @@ class SPI_Feather(SPI): super().__init__(index, baudrate=baudrate) +class SPI_Feather_CAN(SPI): + """SPI Class for Feather EPD u2if""" + + def __init__(self, clock, *, baudrate=100000): + index = None + if clock.id == 14: + index = 1 + if index is None: + raise ValueError("No SPI port on specified pin.") + super().__init__(index, baudrate=baudrate) + + +class SPI_Feather_EPD(SPI): + """SPI Class for Feather EPD u2if""" + + def __init__(self, clock, *, baudrate=100000): + index = None + if clock.id == 22: + index = 0 + if clock.id == 14: + index = 1 + if index is None: + raise ValueError("No SPI port on specified pin.") + super().__init__(index, baudrate=baudrate) + + +class SPI_Feather_RFM(SPI): + """SPI Class for Feather EPD u2if""" + + def __init__(self, clock, *, baudrate=100000): + index = None + if clock.id == 14: + index = 1 + if index is None: + raise ValueError("No SPI port on specified pin.") + super().__init__(index, baudrate=baudrate) + + class SPI_QTPY(SPI): """SPI Class for QT Py u2if""" diff --git a/src/adafruit_blinka/microcontroller/tegra/t234/pin.py b/src/adafruit_blinka/microcontroller/tegra/t234/pin.py index f2f3332..26a8072 100644 --- a/src/adafruit_blinka/microcontroller/tegra/t234/pin.py +++ b/src/adafruit_blinka/microcontroller/tegra/t234/pin.py @@ -110,6 +110,18 @@ AA03 = Pin("GP20_CAN1_DIN") I01 = Pin("GP124") I00 = Pin("GP123") + +AC06 = Pin("GP167") +Y00 = Pin("SPI1_SCK") +N01 = Pin("GP88_PWM1") +Y04 = Pin("GP40_SPI3_CS1_N") +Y03 = Pin("GP39_SPI3_CS0_N") +Y01 = Pin("GP37_SPI3_MISO") +Q05 = Pin("GP65") +G06 = Pin("GP113_PWM7") +Y02 = Pin("GP38_SPI3_MOSI") + + i2cPorts = ( (7, SCL, SDA), (1, SCL_1, SDA_1), diff --git a/src/board.py b/src/board.py index aabef89..89a2a73 100644 --- a/src/board.py +++ b/src/board.py @@ -61,6 +61,9 @@ elif board_id == ap_board.BEAGLEBONE: elif board_id == ap_board.BEAGLEBONE_BLACK: from adafruit_blinka.board.beagleboard.beaglebone_black import * +elif board_id == ap_board.BEAGLEBONE_BLUE: + from adafruit_blinka.board.beagleboard.beaglebone_blue import * + elif board_id == ap_board.BEAGLEBONE_GREEN: from adafruit_blinka.board.beagleboard.beaglebone_black import * @@ -163,6 +166,9 @@ elif board_id == ap_board.JETSON_NX: elif board_id == ap_board.JETSON_AGX_ORIN: from adafruit_blinka.board.nvidia.jetson_orin import * +elif board_id in (ap_board.JETSON_ORIN_NX, ap_board.JETSON_ORIN_NANO): + from adafruit_blinka.board.nvidia.jetson_orin_nx import * + elif board_id == ap_board.CLARA_AGX_XAVIER: from adafruit_blinka.board.nvidia.clara_agx_xavier import * @@ -229,6 +235,9 @@ elif board_id == ap_board.ONION_OMEGA2: elif board_id == ap_board.RADXA_CM3: from adafruit_blinka.board.radxa.radxacm3 import * +elif board_id == ap_board.ROCK_PI_3A: + from adafruit_blinka.board.radxa.rockpi3a import * + elif board_id == ap_board.RADXA_ZERO: from adafruit_blinka.board.radxa.radxazero import * @@ -238,6 +247,9 @@ elif board_id == ap_board.ROCK_PI_S: elif board_id == ap_board.ROCK_PI_4: from adafruit_blinka.board.radxa.rockpi4 import * +elif board_id == ap_board.ROCK_PI_4_C_PLUS: + from adafruit_blinka.board.radxa.rockpi4 import * + elif board_id == ap_board.ROCK_PI_5: from adafruit_blinka.board.radxa.rock5 import * @@ -289,6 +301,15 @@ elif board_id == ap_board.PICO_U2IF: elif board_id == ap_board.FEATHER_U2IF: from adafruit_blinka.board.feather_u2if import * +elif board_id == ap_board.FEATHER_CAN_U2IF: + from adafruit_blinka.board.feather_can_u2if import * + +elif board_id == ap_board.FEATHER_EPD_U2IF: + from adafruit_blinka.board.feather_epd_u2if import * + +elif board_id == ap_board.FEATHER_RFM_U2IF: + from adafruit_blinka.board.feather_rfm_u2if import * + elif board_id == ap_board.QTPY_U2IF: from adafruit_blinka.board.qtpy_u2if import * @@ -307,9 +328,18 @@ elif board_id == ap_board.LICHEE_RV: elif board_id == ap_board.SIEMENS_SIMATIC_IOT2050_ADV: from adafruit_blinka.board.siemens.siemens_iot2050 import * +elif board_id == ap_board.SIEMENS_SIMATIC_IOT2050_BASIC: + from adafruit_blinka.board.siemens.siemens_iot2050 import * + elif board_id == ap_board.AML_S905X_CC: from adafruit_blinka.board.librecomputer.aml_s905x_cc_v1 import * +elif board_id == ap_board.ROC_RK3328_CC: + from adafruit_blinka.board.librecomputer.roc_rk3328_cc import * + +elif board_id == ap_board.GENERIC_LINUX_PC: + from adafruit_blinka.board.generic_linux_pc import * + elif "sphinx" in sys.modules: pass @@ -319,15 +349,16 @@ elif board_id is None: package = str(pkg_resources.get_distribution("adafruit_platformdetect")).split() raise NotImplementedError( - "{1} version {2} was unable to identify the board and/or microcontroller running " - "the {0} platform. Please be sure you have the latest packages running: 'pip3 install " - "--upgrade adafruit-blinka adafruit-platformdetect'".format( - platform.system(), package[0], package[1] - ) + f""" + {package[0]} version {package[1]} was unable to identify the board and/or + microcontroller running the {platform.system()} platform. Please be sure you + have the latest packages running: + 'pip3 install --upgrade adafruit-blinka adafruit-platformdetect' + """ ) else: - raise NotImplementedError("Board not supported {}".format(board_id)) + raise NotImplementedError(f"Board not supported {board_id}.") if "SCL" in locals() and "SDA" in locals(): diff --git a/src/busio.py b/src/busio.py index 75b08cb..ed5c88c 100644 --- a/src/busio.py +++ b/src/busio.py @@ -67,6 +67,27 @@ class I2C(Lockable): I2C_Feather as _I2C, ) + self._i2c = _I2C(scl, sda, frequency=frequency) + return + if detector.board.feather_can_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.i2c import ( + I2C_Feather_CAN as _I2C, + ) + + self._i2c = _I2C(scl, sda, frequency=frequency) + return + if detector.board.feather_epd_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.i2c import ( + I2C_Feather_EPD as _I2C, + ) + + self._i2c = _I2C(scl, sda, frequency=frequency) + return + if detector.board.feather_rfm_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.i2c import ( + I2C_Feather_RFM as _I2C, + ) + self._i2c = _I2C(scl, sda, frequency=frequency) return if detector.board.qtpy_u2if: @@ -245,6 +266,30 @@ class SPI(Lockable): SPI_Feather as _SPI, ) + self._spi = _SPI(clock) # this is really all that's needed + self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock + return + if detector.board.feather_can_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_CAN as _SPI, + ) + + self._spi = _SPI(clock) # this is really all that's needed + self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock + return + if detector.board.feather_epd_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_EPD as _SPI, + ) + + self._spi = _SPI(clock) # this is really all that's needed + self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock + return + if detector.board.feather_rfm_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_RFM as _SPI, + ) + self._spi = _SPI(clock) # this is really all that's needed self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock return @@ -332,6 +377,18 @@ class SPI(Lockable): from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( SPI_Feather as _SPI, ) + elif detector.board.feather_can_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_CAN as _SPI, + ) + elif detector.board.feather_epd_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_EPD as _SPI, + ) + elif detector.board.feather_rfm_u2if: + from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( + SPI_Feather_RFM as _SPI, + ) elif detector.board.itsybitsy_u2if: from adafruit_blinka.microcontroller.rp2040_u2if.spi import ( SPI_ItsyBitsy as _SPI, diff --git a/src/digitalio.py b/src/digitalio.py index fc75b8e..7ce3240 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -69,6 +69,8 @@ elif detector.chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308.pin import Pin elif detector.chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import Pin +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.RK3328: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index da73015..715c080 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -90,6 +90,8 @@ elif chip_id == ap_chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308 import * elif chip_id == ap_chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399 import * +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.RK3328: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index f717da2..ebdac6b 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -93,6 +93,8 @@ elif chip_id == ap_chip.RK3308: from adafruit_blinka.microcontroller.rockchip.rk3308.pin import * elif chip_id == ap_chip.RK3399: from adafruit_blinka.microcontroller.rockchip.rk3399.pin import * +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.RK3328: diff --git a/src/neopixel_write.py b/src/neopixel_write.py index 2bc5f81..997dd0d 100644 --- a/src/neopixel_write.py +++ b/src/neopixel_write.py @@ -10,7 +10,7 @@ Currently supported on Raspberry Pi only. * Author(s): ladyada """ - +# pylint: disable=too-many-boolean-expressions import sys from adafruit_blinka.agnostic import detector @@ -21,6 +21,9 @@ elif detector.board.pico_u2if: from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel elif ( detector.board.feather_u2if + or detector.board.feather_can_u2if + or detector.board.feather_epd_u2if + or detector.board.feather_rfm_u2if or detector.board.qtpy_u2if or detector.board.itsybitsy_u2if or detector.board.macropad_u2if diff --git a/src/pwmio.py b/src/pwmio.py index ccf4420..57854df 100644 --- a/src/pwmio.py +++ b/src/pwmio.py @@ -9,7 +9,7 @@ Not supported by all boards. * Author(s): Melissa LeBlanc-Williams """ - +# pylint: disable=too-many-boolean-expressions import sys from adafruit_blinka.agnostic import detector @@ -38,6 +38,9 @@ elif detector.board.pico_u2if: from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut elif ( detector.board.feather_u2if + or detector.board.feather_can_u2if + or detector.board.feather_epd_u2if + or detector.board.feather_rfm_u2if or detector.board.qtpy_u2if or detector.board.itsybitsy_u2if or detector.board.macropad_u2if