--- /dev/null
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Boards definition from Linksprite Pcduino based boards"""
--- /dev/null
+# SPDX-FileCopyrightText: 2023 Ryzer58
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the Pcduino2."""
+from adafruit_blinka.microcontroller.allwinner.a20 import pin
+
+# The Pcduino 2 uses the Allwinner A10 which is a pin compatible predecessor to
+# the A20. Unlike most boards it follows an Arduino form factor.
+
+# J11 Header
+D0 = pin.PI19
+D1 = pin.PI18
+D2 = pin.PH7
+D3 = pin.PH6
+D4 = pin.PH8
+D5 = pin.PB2
+D6 = pin.PI3
+D7 = pin.PH9
+
+# J8 Header
+D8 = pin.PH10
+D9 = pin.PH5
+D10 = pin.PI10
+D11 = pin.PI12
+D12 = pin.PI13
+D13 = pin.PI11
+SDA = pin.PB21
+SCL = pin.PB20
+
+# J9 Header
+# LRADC pins only have a resolution of 6 bits so not really worth using
+# A0 = LRADC0
+# A1 = LRADC1
+A2 = pin.XP_TP
+A3 = pin.XN_TP
+A4 = pin.YP_TP
+A5 = pin.YN_TP
+
+# P7 Header
+SCLK = D13
+SCK = SCLK
+MOSI = D11
+MISO = D12
+CS = D10
+
+# P6 Header
+D22 = pin.PC20
+SCLK2 = D22
+SCK2 = SCLK2
+D23 = pin.PC21
+MOSI2 = D23
+D20 = pin.PC22
+MISO2 = D20
+D21 = pin.PC19
+CS2 = D21
+
+# P10 Header
+D14 = pin.PH11
+D15 = pin.PH12
+D16 = pin.PH13
+D17 = pin.PH14
+
+UART2_TX = D1
+UART2_RX = D0
+UART5_TX = D3
+UART5_RX = D2
+UART6_TX = D11
+UART6_RX = D12
+
+PWM0 = D5
+PWM1 = D6
+
+# On board buttons
+BACK_SW = pin.PH17
+HOME_SW = pin.PH18
+MENU_SW = pin.PH19
+
+# On board LEDs
+LED_TX = pin.PH15
+LED_RX = pin.PH16
--- /dev/null
+# SPDX-FileCopyrightText: 2023 Ryzer58
+#
+# SPDX-License-Identifier: MIT
+"""Pin definitions for the Pcduino3."""
+from adafruit_blinka.microcontroller.allwinner.a20 import pin
+
+# J11 Header
+D0 = pin.PI19
+D1 = pin.PI18
+D2 = pin.PH7
+D3 = pin.PH6
+D4 = pin.PH8
+D5 = pin.PB2
+D6 = pin.PI3
+D7 = pin.PH9
+
+# J8 Header
+D8 = pin.PH10
+D9 = pin.PH5
+D10 = pin.PI10
+D11 = pin.PI12
+D12 = pin.PI13
+D13 = pin.PI11
+SDA = pin.PB21
+SCL = pin.PB20
+
+# J9 Header
+# LRADC pins only have a resolution of 6 bits so not really worth using
+# A0 = LRADC0
+# A1 = LRADC1
+A2 = pin.XP_TP
+A3 = pin.XN_TP
+A4 = pin.YP_TP
+A5 = pin.YN_TP
+
+# P7 Header
+SCLK = D13
+SCK = SCLK
+MOSI = D11
+MISO = D12
+CS = D10
+
+# P6 Header
+D22 = pin.PC20
+SCLK2 = D22
+SCK2 = SCLK2
+D23 = pin.PC21
+MOSI2 = D23
+D20 = pin.PC22
+MISO2 = D20
+D21 = pin.PC19
+CS2 = D21
+
+# P10 Header
+D14 = pin.PH11
+D15 = pin.PH12
+D16 = pin.PH13
+D17 = pin.PH14
+
+UART2_TX = D1
+UART2_RX = D0
+UART5_TX = D3
+UART5_RX = D2
+UART6_TX = D11
+UART6_RX = D12
+
+PWM0 = D5
+PWM1 = D6
+
+# On board buttons
+BACK_SW = pin.PH17
+HOME_SW = pin.PH18
+MENU_SW = pin.PH19
+
+# On board LEDs
+LED_TX = pin.PH15
+LED_RX = pin.PH16
PB1 = Pin(33)
TWI0_SDA = PB1
PB2 = Pin(34)
+PWM0 = PB2
PB3 = Pin(35)
IR0_TX = PB3
PB4 = Pin(36)
PB23 = Pin(55)
UART0_RX = PB23
+PC19 = Pin(83)
+SPI2_CS0 = PC19
+PC20 = Pin(84)
+SPI2_SCLK = PC20
+PC21 = Pin(85)
+SPI2_MOSI = PC21
+PC22 = Pin(86)
+SPI2_MISO = PC22
+
PG2 = Pin(194)
PH2 = Pin(226)
UART4_TX = PH4
PH5 = Pin(229)
UART4_RX = PH5
+PH6 = Pin(230)
+UART5_TX = PH6
+PH7 = Pin(231)
+UART5_RX = PH7
+PH8 = Pin(232)
+PH9 = Pin(233)
+PH10 = Pin(234)
+PH11 = Pin(235)
+PH12 = Pin(236)
+PH13 = Pin(237)
+PH14 = Pin(238)
+PH15 = Pin(239)
+PH16 = Pin(240)
+PH17 = Pin(241)
+PH18 = Pin(242)
+PH19 = Pin(243)
PH20 = Pin(244)
CAN_TX = PH20
PH21 = Pin(245)
SPI0_SCLK = PI11
PI12 = Pin(268)
SPI0_MOSI = PI12
+UART6_TX = PI12
PI13 = Pin(269)
SPI0_MISO = PI13
+UART6_RX = PI13
PI14 = Pin(270)
SPI0_CS1 = PI14
PI16 = Pin(272)
PI21 = Pin(277)
UART7_RX = PI21
+# A10/A20 has a touch panel controller which can be configured to operate
+# as four seperate adc chanels, providing 12-bit resolution.
+XP_TP = 1
+XN_TP = 2
+YP_TP = 3
+YN_TP = 4
+
# SysFS pwm outputs, pwm channel and pin in first tuple
-pwmOuts = (((0, 1), PWM1),)
+pwmOuts = (
+ ((0, 0), PWM0),
+ ((0, 1), PWM1),
+)
+
# ordered as i2cId, sclId, sdaId
i2cPorts = (
(0, TWI0_SCK, TWI0_SDA),
(1, TWI1_SCK, TWI1_SDA),
(2, TWI2_SCK, TWI2_SDA),
)
+
# ordered as spiId, sckId, mosiId, misoId
-spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),)
+spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
+ (2, SPI2_SCLK, SPI2_MOSI, SPI2_MISO),
+)
+
# ordered as uartId, txId, rxId
uartPorts = (
(0, UART0_TX, UART0_RX),
(2, UART2_TX, UART2_RX),
(4, UART4_TX, UART4_RX),
+ (5, UART5_TX, UART5_RX),
+ (6, UART6_TX, UART6_RX),
(7, UART7_TX, UART7_RX),
)
+
+# sysFs analog inputs, Ordered as analogInId, device, and channel
+analogIns = (
+ (XP_TP, 1, 0),
+ (XN_TP, 1, 1),
+ (YP_TP, 1, 2),
+ (YN_TP, 1, 3),
+)
from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
elif detector.chip.STM32MP157:
from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.A10:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
+elif detector.chip.A20:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_analogin import AnalogIn
elif "sphinx" in sys.modules:
pass
elif detector.board.pico_u2if:
elif board_id == ap_board.PINEH64:
from adafruit_blinka.board.pineH64 import *
+elif board_id == ap_board.PCDUINO2:
+ from adafruit_blinka.board.linksprite.pcduino2 import *
+
+elif board_id == ap_board.PCDUINO3:
+ from adafruit_blinka.board.linksprite.pcduino3 import *
+
elif board_id == ap_board.SOPINE:
from adafruit_blinka.board.soPine import *
from adafruit_blinka.microcontroller.starfive.JH71x0.pin import Pin
elif detector.chip.DRA74X:
from adafruit_blinka.microcontroller.dra74x.pin import Pin
+elif detector.chip.SUN4I:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import Pin
+elif detector.chip.SUN7I:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import Pin
elif detector.chip.SUN8I:
from adafruit_blinka.microcontroller.allwinner.h3.pin import Pin
elif detector.chip.SAMA5:
from adafruit_blinka.microcontroller.nxp_imx6ull.pin import Pin
elif detector.chip.HFU540:
from adafruit_blinka.microcontroller.hfu540.pin import Pin
+elif detector.chip.A10:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import Pin
+elif detector.chip.A20:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import Pin
elif detector.chip.A64:
from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin
elif detector.chip.A33:
from adafruit_blinka.microcontroller.allwinner.a33.pin import Pin
-elif detector.chip.A20:
- from adafruit_blinka.microcontroller.allwinner.a20.pin import Pin
elif detector.chip.MIPS24KEC:
from adafruit_blinka.microcontroller.mips24kec.pin import Pin
elif detector.chip.RK3308:
from adafruit_blinka.microcontroller.am65xx import *
elif chip_id == ap_chip.JH71X0:
from adafruit_blinka.microcontroller.starfive.JH71x0 import *
+elif chip_id == ap_chip.SUN4I:
+ from adafruit_blinka.microcontroller.allwinner.a20 import *
+elif chip_id == ap_chip.SUN7I:
+ from adafruit_blinka.microcontroller.allwinner.a20 import *
elif chip_id == ap_chip.SUN8I:
from adafruit_blinka.microcontroller.allwinner.h3 import *
elif chip_id == ap_chip.H5:
from adafruit_blinka.microcontroller.samsung.exynos5422 import *
elif chip_id == ap_chip.APQ8016:
from adafruit_blinka.microcontroller.snapdragon.apq8016 import *
+elif chip_id == ap_chip.A10:
+ from adafruit_blinka.microcontroller.allwinner.a20 import *
+elif chip_id == ap_chip.A20:
+ from adafruit_blinka.microcontroller.allwinner.a20 import *
elif chip_id == ap_chip.A64:
from adafruit_blinka.microcontroller.allwinner.a64 import *
elif chip_id == ap_chip.A33:
from adafruit_blinka.microcontroller.allwinner.a33 import *
-elif chip_id == ap_chip.A20:
- from adafruit_blinka.microcontroller.allwinner.a20 import *
elif chip_id == ap_chip.RK3308:
from adafruit_blinka.microcontroller.rockchip.rk3308 import *
elif chip_id == ap_chip.RK3399:
from adafruit_blinka.microcontroller.am65xx.pin import *
elif chip_id == ap_chip.JH71X0:
from adafruit_blinka.microcontroller.starfive.JH71x0.pin import *
+elif chip_id == ap_chip.SUN4I:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import *
+elif chip_id == ap_chip.SUN7I:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import *
elif chip_id == ap_chip.SUN8I:
from adafruit_blinka.microcontroller.allwinner.h3.pin import *
elif chip_id == ap_chip.H3:
from adafruit_blinka.microcontroller.nxp_lpc4330.pin import *
elif chip_id == ap_chip.MCP2221:
from adafruit_blinka.microcontroller.mcp2221.pin import *
+elif chip_id == ap_chip.A10:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import *
+elif chip_id == ap_chip.A20:
+ from adafruit_blinka.microcontroller.allwinner.a20.pin import *
elif chip_id == ap_chip.A64:
from adafruit_blinka.microcontroller.allwinner.a64.pin import *
elif chip_id == ap_chip.A33:
from adafruit_blinka.microcontroller.allwinner.a33.pin import *
-elif chip_id == ap_chip.A20:
- from adafruit_blinka.microcontroller.allwinner.a20.pin import *
elif chip_id == ap_chip.RK3308:
from adafruit_blinka.microcontroller.rockchip.rk3308.pin import *
elif chip_id == ap_chip.RK3399:
from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
elif detector.board.any_giant_board:
from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
+elif detector.board.any_pcduino_board:
+ from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
elif detector.board.any_beaglebone:
from adafruit_blinka.microcontroller.am335x.sysfs_pwmout import PWMOut
elif detector.board.any_lemaker: