--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the Banana Pi M2 Zero."""
+
+# The Banana Pi M2 Plus uses the AllWinner H3 SoC, but pins
+# are the same as the AllWinner H3 SoC, so we import those
+from adafruit_blinka.microcontroller.allwinner.h3 import pin
+
+PA12 = pin.PA12
+SDA = pin.PA12
+PA11 = pin.PA11
+SCL = pin.PA11
+PA6 = pin.PA6
+PWM1 = pin.PA6
+PA1 = pin.PA1
+UART2_RX = pin.PA1
+PA0 = pin.PA0
+UART2_TX = pin.PA0
+PA3 = pin.PA3
+UART2_CTS = pin.PA3
+PA10 = pin.PA10
+PA12 = pin.PA12
+SDA = pin.PA12
+PA11 = pin.PA11
+SCL = pin.PA11
+PA6 = pin.PA6
+PWM1 = pin.PA6
+PA1 = pin.PA1
+UART2_RX = pin.PA1
+PA0 = pin.PA0
+UART2_TX = pin.PA0
+PA3 = pin.PA3
+UART2_CTS = pin.PA3
+PA7 = pin.PA7
+PA8 = pin.PA8
+PA9 = pin.PA9
+PA10 = pin.PA10
+PA17 = pin.PA17
+PA18 = pin.PA18
+PA19 = pin.PA19
+PA20 = pin.PA20
+PA21 = pin.PA21
+PC0 = pin.PC0
+PC1 = pin.PC1
+PC2 = pin.PC2
+PC3 = pin.PC3
+PC4 = pin.PC4
+PC7 = pin.PC7
+
+PA13 = pin.PA13
+SPI1_CS = pin.PA13
+PA14 = pin.PA14
+SPI1_CLK = pin.PA14
+PA2 = pin.PA2
+UART2_RTS = pin.PA2
+PA18 = pin.PA18
+TWI1_SCK = pin.PA18
+
+PL2 = pin.PL2
+PL4 = pin.PL4
+
+SCLK = pin.PA14
+MOSI = pin.PA15
+MISO = pin.PA16
+
+PA13 = pin.PA13
+SPI1_CS = pin.PA13
+PA14 = pin.PA14
+SPI1_CLK = pin.PA14
+PA2 = pin.PA2
+UART2_RTS = pin.PA2
+PA18 = pin.PA18
+TWI1_SCK = pin.PA18
+PG6 = pin.PG6
+UART1_TX = pin.PG6
+PG7 = pin.PG7
+UART1_RX = pin.PG7
+
+SCLK = pin.PA14
+MOSI = pin.PA15
+MISO = pin.PA16
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the AML-S905X-CC-V1."""
+
+from adafruit_blinka.microcontroller.amlogic.s905x 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.SPI1_SCLK
+MOSI = pin.SPI1_MOSI
+MISO = pin.SPI1_MISO
+SPI_CS = pin.SPI1_CS
+
+# Pinout reference:
+# https://github.com/libre-computer-project/libretech-wiring-tool/blob/master/libre-computer/aml-s905x-cc/gpio.map
+
+# 40 pin Header 7J1
+P3 = pin.GPIO105
+P5 = pin.GPIO104
+P7 = pin.GPIO289
+P8 = pin.GPIO291
+P10 = pin.GPIO292
+P12 = pin.GPIO106
+P13 = pin.GPIO109
+P15 = pin.GPIO110
+P16 = pin.GPIO293
+P18 = pin.GPIO294
+P19 = pin.GPIO287
+P21 = pin.GPIO288
+P22 = pin.GPIO279
+P23 = pin.GPIO290
+P24 = pin.GPIO289
+P26 = pin.GPIO280
+P27 = pin.GPIO275
+P28 = pin.GPIO276
+P29 = pin.GPIO296
+P31 = pin.GPIO297
+P32 = pin.GPIO295
+P33 = pin.GPIO285
+P35 = pin.GPIO286
+P36 = pin.GPIO281
+P37 = pin.GPIO284
+P38 = pin.GPIO282
+P40 = pin.GPIO283
+
+# 8 Pin Header 2J3
+P2J33 = pin.GPIO225
+P2J34 = pin.GPIO224
+P2J35 = pin.GPIO223
+P2J36 = pin.GPIO222
+
+# 3 Pin Header 2J1
+P2J12 = pin.GPIO100
+P2J13 = pin.GPIO101
+
+# 3 Pin Header 9J1
+P9J12 = pin.GPIO220
--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""AmLogic s905x pin names"""
+# pylint: disable=wildcard-import,unused-wildcard-import
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+
+# Chip 0
+GPIO100 = Pin((0, 0))
+GPIO101 = Pin((0, 1))
+GPIO104 = Pin((0, 4))
+GPIO105 = Pin((0, 5))
+GPIO106 = Pin((0, 6))
+GPIO109 = Pin((0, 9))
+GPIO110 = Pin((0, 10))
+
+# Chip 1
+GPIO220 = Pin((1, 20))
+GPIO222 = Pin((1, 22))
+GPIO223 = Pin((1, 23))
+GPIO224 = Pin((1, 24))
+GPIO225 = Pin((1, 25))
+GPIO275 = Pin((1, 75))
+GPIO276 = Pin((1, 76))
+GPIO279 = Pin((1, 79))
+GPIO280 = Pin((1, 80))
+GPIO281 = Pin((1, 81))
+GPIO282 = Pin((1, 82))
+GPIO283 = Pin((1, 83))
+GPIO284 = Pin((1, 84))
+GPIO285 = Pin((1, 85))
+GPIO286 = Pin((1, 86))
+GPIO287 = Pin((1, 87))
+GPIO288 = Pin((1, 88))
+GPIO289 = Pin((1, 89))
+GPIO290 = Pin((1, 90))
+GPIO291 = Pin((1, 91))
+GPIO292 = Pin((1, 92))
+GPIO293 = Pin((1, 93))
+GPIO294 = Pin((1, 94))
+GPIO295 = Pin((1, 95))
+GPIO296 = Pin((1, 96))
+GPIO297 = Pin((1, 97))
+GPIO298 = Pin((1, 98))
+
+I2C0_SDA = GPIO105
+I2C0_SCK = GPIO104
+I2C1_SDA = GPIO275
+I2C1_SCK = GPIO276
+
+UART1_RX = GPIO288
+UART1_TX = GPIO287
+UART2_RX = GPIO292
+UART2_TX = GPIO291
+
+SPI1_SCLK = GPIO223
+SPI1_MISO = GPIO288
+SPI1_MOSI = GPIO287
+SPI1_CS = GPIO289
+
+i2cPorts = (
+ (0, I2C0_SCK, I2C0_SDA),
+ (1, I2C1_SCK, I2C1_SDA),
+)
+
+spiPorts = (0, SPI1_SCLK, SPI1_MOSI, SPI1_MISO)
+
+uartPorts = (
+ (1, UART1_TX, UART1_RX),
+ (2, UART2_TX, UART2_RX),
+)
from adafruit_blinka.microcontroller.generic_linux.sysfs_pin import Pin
+GPIO1_A1 = Pin(33)
+GPIO1_A3 = Pin(35)
GPIO1_A7 = Pin(39)
GPIO1_B0 = Pin(40)
GPIO1_B1 = Pin(41)
GPIO1_B2 = Pin(42)
+GPIO1_C2 = Pin(50)
+GPIO1_C4 = Pin(52)
+GPIO1_C5 = Pin(53)
+GPIO1_C6 = Pin(54)
+GPIO1_C7 = Pin(55)
+GPIO1_D0 = Pin(56)
GPIO2_A0 = Pin(64)
GPIO2_A1 = Pin(65)
GPIO2_A7 = Pin(71)
GPIO2_B2 = Pin(74)
GPIO2_B3 = Pin(75)
GPIO2_B4 = Pin(76)
+GPIO2_D4 = Pin(92)
GPIO3_C0 = Pin(112)
GPIO4_A3 = Pin(131)
GPIO4_A4 = Pin(132)
GPIO4_A5 = Pin(133)
GPIO4_A6 = Pin(134)
GPIO4_A7 = Pin(135)
+GPIO4_C0 = Pin(144)
+GPIO4_C1 = Pin(145)
GPIO4_C2 = Pin(146)
GPIO4_C3 = Pin(147)
GPIO4_C4 = Pin(148)
# I2C
I2C2_SDA = GPIO2_A0
I2C2_SCL = GPIO2_A1
+I2C3_SDA = GPIO4_C0
+I2C3_SCL = GPIO4_C1
I2C6_SDA = GPIO2_B1
I2C6_SCL = GPIO2_B2
I2C7_SDA = GPIO2_A7
I2C7_SCL = GPIO2_B0
+I2C8_SDA = GPIO1_C4
+I2C8_SCL = GPIO1_C5
# SPI
SPI1_CS = GPIO1_B2
elif board_id == ap_board.BANANA_PI_M2_ZERO:
from adafruit_blinka.board.bananapi.bpim2zero import *
+elif board_id == ap_board.BANANA_PI_M2_PLUS:
+ from adafruit_blinka.board.bananapi.bpim2plus import *
+
elif board_id == ap_board.BANANA_PI_M5:
from adafruit_blinka.board.bananapi.bpim5 import *
elif board_id == ap_board.SIEMENS_SIMATIC_IOT2050_ADV:
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 "sphinx" in sys.modules:
pass
from adafruit_blinka.microcontroller.tegra.t234.pin import Pin
elif detector.chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905.pin import Pin
+elif detector.board.aml_s905x_cc:
+ from adafruit_blinka.microcontroller.amlogic.s905x.pin import Pin
elif detector.chip.S905X3:
from adafruit_blinka.microcontroller.amlogic.s905x3.pin import Pin
elif detector.chip.S905Y2:
from adafruit_blinka.microcontroller.tegra.t234 import *
elif chip_id == ap_chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905 import *
+elif chip_id == ap_chip.S905X:
+ from adafruit_blinka.microcontroller.amlogic.s905x import *
elif chip_id == ap_chip.S905X3:
from adafruit_blinka.microcontroller.amlogic.s905x3 import *
elif chip_id == ap_chip.S905Y2:
from adafruit_blinka.microcontroller.tegra.t234.pin import *
elif chip_id == ap_chip.S905:
from adafruit_blinka.microcontroller.amlogic.s905.pin import *
+elif chip_id == ap_chip.S905X:
+ from adafruit_blinka.microcontroller.amlogic.s905x.pin import *
elif chip_id == ap_chip.S905X3:
from adafruit_blinka.microcontroller.amlogic.s905x3.pin import *
elif chip_id == ap_chip.S905Y2: