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
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
--- /dev/null
+# 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
# 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
--- /dev/null
+# 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)
--- /dev/null
+# 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)
--- /dev/null
+# 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)
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""(Empty) definitions for the GENERIC_LINUX_PC."""
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
--- /dev/null
+# 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
--- /dev/null
+# 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
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
--- /dev/null
+# 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
# 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
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
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
(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),
# 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
# 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
# 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
-# SPDX-FileCopyrightText: 2023 mmontol
+# SPDX-FileCopyrightText: 2023 mmontol, etrevis
#
# SPDX-License-Identifier: MIT
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))
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
# 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),
)
(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),
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"""
"""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"""
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"""
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),
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 *
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 *
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 *
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 *
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 *
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
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():
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:
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
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,
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:
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:
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:
* Author(s): ladyada
"""
-
+# pylint: disable=too-many-boolean-expressions
import sys
from adafruit_blinka.agnostic import detector
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
* Author(s): Melissa LeBlanc-Williams
"""
-
+# pylint: disable=too-many-boolean-expressions
import sys
from adafruit_blinka.agnostic import detector
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