]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge remote-tracking branch 'adafruit/main'
authorRyan L <ryestar101@gmail.com>
Tue, 26 Sep 2023 20:43:51 +0000 (21:43 +0100)
committerRyan L <ryestar101@gmail.com>
Tue, 26 Sep 2023 20:43:51 +0000 (21:43 +0100)
src/adafruit_blinka/board/linksprite/__init__.py [new file with mode: 0644]
src/adafruit_blinka/board/linksprite/pcduino2.py [new file with mode: 0644]
src/adafruit_blinka/board/linksprite/pcduino3.py [new file with mode: 0644]
src/adafruit_blinka/microcontroller/allwinner/a20/pin.py
src/analogio.py
src/board.py
src/digitalio.py
src/microcontroller/__init__.py
src/microcontroller/pin.py
src/pwmio.py

diff --git a/src/adafruit_blinka/board/linksprite/__init__.py b/src/adafruit_blinka/board/linksprite/__init__.py
new file mode 100644 (file)
index 0000000..bbc6359
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""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 (file)
index 0000000..2d2839b
--- /dev/null
@@ -0,0 +1,80 @@
+# 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
diff --git a/src/adafruit_blinka/board/linksprite/pcduino3.py b/src/adafruit_blinka/board/linksprite/pcduino3.py
new file mode 100644 (file)
index 0000000..022f403
--- /dev/null
@@ -0,0 +1,77 @@
+# 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
index 3e4bf44c1a8b012c758aba0b1c66f3ddd5565372..5cc94cca4dbba0cd652e63934cac1d60f2b1f7d6 100644 (file)
@@ -32,6 +32,7 @@ TWI0_SCK = PB0
 PB1 = Pin(33)
 TWI0_SDA = PB1
 PB2 = Pin(34)
+PWM0 = PB2
 PB3 = Pin(35)
 IR0_TX = PB3
 PB4 = Pin(36)
@@ -55,6 +56,15 @@ UART0_TX = PB22
 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)
@@ -62,6 +72,22 @@ PH4 = Pin(228)
 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)
@@ -80,8 +106,10 @@ PI11 = Pin(267)
 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)
@@ -97,20 +125,46 @@ UART7_TX = PI20
 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),
+)
index 58381b008357c1a8f17ec8341e01fa58ae57ec0a..e3ebb39d82bd8d63d591dfa79110354f664646d3 100644 (file)
@@ -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:
index 0c68fe334637060ea2543c146fb04362f3ccde27..8d68aac45d7abb321f0c560f2b974486f34d757e 100644 (file)
@@ -226,6 +226,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 *
 
index b987c207a1bb391b370c7a25087cd5455b625197..5dfadf61e79232ab1a2000b452fe28d6e01bc1d7 100644 (file)
@@ -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,12 +63,14 @@ 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.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:
index baf06cd7d5b0f2d7115478c41794cc48f45f67fb..2bc4736589b82025b93f558009b0c01aa66e9323 100644 (file)
@@ -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,12 +86,14 @@ 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:
     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:
index fdbced462ec7e40a551ee27189a709355392f4c1..362fe436a62cd100eb3977ce61d7a856b098f639 100644 (file)
@@ -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,12 +89,14 @@ 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:
     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:
index b37549f2af946e68f6216bc8ad7933bff383aed0..9ded9fd43faa956a746ae395037b8f6648d0a443 100644 (file)
@@ -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_lemaker: