From: Ryan L Date: Tue, 6 Jun 2023 22:17:35 +0000 (+0100) Subject: Merge remote-tracking branch 'adafruit/main' X-Git-Tag: 8.23.0~1^2~10 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/d1864e312145172abcc19ad88f89150e082ee369?hp=b84de4800b2c31023f29a536d26209bd7517d504 Merge remote-tracking branch 'adafruit/main' --- diff --git a/src/adafruit_blinka/board/linksprite/__init__.py b/src/adafruit_blinka/board/linksprite/__init__.py new file mode 100644 index 0000000..333c1b1 --- /dev/null +++ b/src/adafruit_blinka/board/linksprite/__init__.py @@ -0,0 +1 @@ +"""Boards definition from Linksprite Pcduino based boards""" diff --git a/src/adafruit_blinka/board/linksprite/pcduino2.py b/src/adafruit_blinka/board/linksprite/pcduino2.py new file mode 100644 index 0000000..43bb3bb --- /dev/null +++ b/src/adafruit_blinka/board/linksprite/pcduino2.py @@ -0,0 +1,67 @@ +"""Pin definitions for the Pcduino2.""" +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 +# A0 & A1 are LRADC pins with only 6-bit resolution and unlike other pins are only limited to 2v +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 + +PWM0 = D5 +PWM1 = D6 + +# Misc +BACK_SW = pin.PH17 # Three buttons featured on the board +HOME_SW = pin.PH18 +MENU_SW = pin.PH19 diff --git a/src/adafruit_blinka/board/linksprite/pcduino3.py b/src/adafruit_blinka/board/linksprite/pcduino3.py new file mode 100644 index 0000000..e7a7684 --- /dev/null +++ b/src/adafruit_blinka/board/linksprite/pcduino3.py @@ -0,0 +1,70 @@ +"""Pin definitions for the Pcduino3.""" +from adafruit_blinka.microcontroller.allwinner.a20 import pin + +# Pin wise this is the same as the Pcduino2 but features a daul core A20 +# # rather than a single core A10 + +# 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 +# A0 & A1 are LRADC pins with only 6-bit resolution and unlike other pins are only limited to 2v +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 + +PWM0 = D5 +PWM1 = D6 + +# Misc +BACK_SW = pin.PH17 # Three buttons featured on the board +HOME_SW = pin.PH18 +MENU_SW = pin.PH19 diff --git a/src/adafruit_blinka/microcontroller/allwinner/a20/__init__.py b/src/adafruit_blinka/microcontroller/allwinner/a20/__init__.py new file mode 100644 index 0000000..1d34a42 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/allwinner/a20/__init__.py @@ -0,0 +1 @@ +"""Definition for the AllWinner A20 chip""" diff --git a/src/adafruit_blinka/microcontroller/allwinner/a20/pin.py b/src/adafruit_blinka/microcontroller/allwinner/a20/pin.py new file mode 100644 index 0000000..a9041dd --- /dev/null +++ b/src/adafruit_blinka/microcontroller/allwinner/a20/pin.py @@ -0,0 +1,87 @@ +"""Allwinner A20 pin names""" +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +PB2 = Pin(34) # PB2/PWM0 +PWM0 = PB2 +PB20 = Pin(52) # PB20/TWI2_SDL +TWI2_SCL = PB20 +PB21 = Pin(53) # PB20/TWI2_SDA +TWI2_SDA = PB21 + +PC19 = Pin(83) # PC19/SPI2_CS +SPI2_CS = PC19 +PC20 = Pin(84) # PC20/SPI2_SCLK +SPI2_SCLK = PC20 +PC21 = Pin(85) # PC21/SPI2_MOSI +SPI2_MOSI = PC21 +PC22 = Pin(86) # PC22/SPI2_MISO +SPI2_MISO = PC22 + +PH5 = Pin(229) +PH6 = Pin(230) # PH6/UART5_TX +UART5_TX = PH6 +PH7 = Pin(231) # PH7/UART5_RX +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) + +PI3 = Pin(259) # PI3/PWM1 +PWM1 = PI3 +PI10 = Pin(266) # PI10/SPI0_CS/UART5_TX +SPI0_CS = PI10 +PI11 = Pin(267) # PI11/SPI0_SCLK/UART5_RX +SPI0_SCLK = PI11 +PI12 = Pin(268) +SPI0_MOSI = PI12 +UART6_TX = PI12 +PI13 = Pin(269) +SPI0_MISO = PI13 +UART6_RX = PI13 +PI18 = Pin(274) # PI18/UART2_TX +UART2_TX = PI18 +PI19 = Pin(275) # PI19/UART2_RX +UART2_RX = PI19 + +XP_TP = 1 # Allwinner touch panel controller which can be configured to operate +XN_TP = 2 # as four seperate adc chanels, providing 12-bit resolution. +YP_TP = 3 +YN_TP = 4 + +# Ordered as i2cId, SCL, SDA +i2cPorts = ((2, TWI2_SCL, TWI2_SDA),) + +# Ordered as spiId, clkId, mosiId, misoId +spiPorts = ( + (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO), + (2, SPI2_SCLK, SPI2_MOSI, SPI2_MISO), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + (2, UART2_TX, UART2_RX), + (5, UART5_TX, UART5_RX), + (6, UART6_TX, UART6_RX), +) +# sysFs pwm outputs, pwm channel and pin first tuple +pwmOuts = ( + ((0, 0), PWM0), + ((0, 1), PWM1), +) + +# sysFs analog inputs, Ordered as analogInId, device, and channel +analogIns = ( + (XP_TP, 0, 0), + (XN_TP, 0, 1), + (YP_TP, 0, 2), + (YN_TP, 0, 3), +) diff --git a/src/analogio.py b/src/analogio.py index 58381b0..e3ebb39 100644 --- a/src/analogio.py +++ b/src/analogio.py @@ -39,6 +39,10 @@ elif detector.chip.IMX6ULL: 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: diff --git a/src/board.py b/src/board.py index 89a2a73..bdb94ac 100644 --- a/src/board.py +++ b/src/board.py @@ -223,6 +223,12 @@ elif board_id == ap_board.PINE64: 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 * diff --git a/src/digitalio.py b/src/digitalio.py index 7ce3240..e7fe047 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -25,6 +25,10 @@ elif detector.chip.JH71x0: 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: @@ -59,6 +63,10 @@ elif detector.chip.IMX6ULL: 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.A30: + 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: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 715c080..d04d2ee 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -48,6 +48,10 @@ elif chip_id == ap_chip.AM65XX: 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: @@ -82,6 +86,10 @@ elif chip_id == ap_chip.EXYNOS5422: 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: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index ebdac6b..fdd77dd 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -33,6 +33,10 @@ elif chip_id == ap_chip.AM65XX: 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: @@ -85,6 +89,10 @@ elif chip_id == ap_chip.LPC4330: 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: diff --git a/src/pwmio.py b/src/pwmio.py index 57854df..d19a855 100644 --- a/src/pwmio.py +++ b/src/pwmio.py @@ -22,6 +22,8 @@ elif detector.board.any_coral_board: 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_siemens_simatic_iot2000: