From: H. Xenokrates Date: Mon, 7 Aug 2023 10:01:22 +0000 (+0200) Subject: Merge branch 'adafruit:main' into bananapro X-Git-Tag: 8.21.0~1^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/12f061bcd502227a99ae20f13a369660c49fda6e?hp=009b352a3234339000c32d2e61e830455cf389fa Merge branch 'adafruit:main' into bananapro --- diff --git a/src/adafruit_blinka/board/lemaker/__init__.py b/src/adafruit_blinka/board/lemaker/__init__.py new file mode 100644 index 0000000..6fd4e4a --- /dev/null +++ b/src/adafruit_blinka/board/lemaker/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Boards definition from LeMaker""" diff --git a/src/adafruit_blinka/board/lemaker/bananapro.py b/src/adafruit_blinka/board/lemaker/bananapro.py new file mode 100644 index 0000000..70bf88e --- /dev/null +++ b/src/adafruit_blinka/board/lemaker/bananapro.py @@ -0,0 +1,168 @@ +# SPDX-FileCopyrightText: 2023 Xenokrates +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the LeMaker Banana Pro.""" + +# The LeMaker Banana Pro uses the AllWinner A20 SoC +from adafruit_blinka.microcontroller.allwinner.a20 import pin + + +# Pinout reference +# https://linux-sunxi.org/LeMaker_Banana_Pro#Expansion_Port + +# +---------------------+Banana Pro+-----------------+ +# | Name | Physical | Name | +# +---------------------+----++----+-----------------+ +# | 3.3v | 1 || 2 | 5v | +# | PB21/TWI2_SDA/SDA | 3 || 4 | 5V | +# | PB20/TWI2_SCL/SCL | 5 || 6 | 0v | +# | PH2 | 7 || 8 | PH4/UART4_TX/TX | +# | 0v | 9 || 10 | PH5/UART4/RX | +# | PI19/UART2_RX | 11 || 12 | PI3/PWM1 | +# | PI18/UART2_TX | 13 || 14 | 0v | +# | PI17 | 15 || 16 | PH20 | +# | 3.3v | 17 || 18 | PH21 | +# | PI12/SPI0_MOSI/MOSI | 19 || 20 | 0v | +# | PI13/SPI0_MISO/SCLK | 21 || 22 | PI16 | +# | PI11/SPI0_CLK | 23 || 24 | PI10/SPI0_CS0 | +# | 0v | 25 || 26 | PI14/SPI0_CS1 | +# | PI1/TW3_SDA | 27 || 28 | PI0/TWI3_SCL | +# | PB3 | 29 || 30 | 0v | +# | PI21/UART7_RX | 31 || 32 | PI20/UART7_TX | +# | PB13 | 33 || 34 | 0v | +# | PB7 | 35 || 36 | PB06 | +# | PB5 | 37 || 38 | PB12 | +# | 0v | 39 || 40 | PB08 | +# +---------------------+----++----+-----------------+ +# | Name | Physical | Name | +# +---------------------+Banana Pro+-----------------+ + +# 40 pin header (CON6) - Using physical pin numbering and CPU PIOs + +P3 = pin.PB21 +PB21 = pin.PB21 +TWI2_SDA = pin.PB21 +P5 = pin.PB20 +PB20 = pin.PB20 +TWI2_SCL = pin.PB20 +P7 = pin.PH2 +UART_TX = pin.PB22 +PB22 = pin.PB22 +UART_RX = pin.PB23 +PB23 = pin.PB23 +PH2 = pin.PH2 +PH21 = pin.PH21 +PH21 = pin.PH21 +P8 = pin.PH4 +PH4 = pin.PH4 +UART4_RX = pin.PH4 +P10 = pin.PH5 +PH5 = pin.PH5 +UART4_TX = pin.PH5 +P11 = pin.PI19 +PI19 = pin.PI19 +UART2_RX = pin.PI19 +P12 = pin.PI3 +PWM1 = pin.PI3 +PI3 = pin.PI3 +P13 = pin.PI18 +UART2_TX = pin.PI18 +PI18 = pin.PI18 +P15 = pin.PI17 +PI17 = pin.PI17 +P16 = pin.PH20 +PH20 = pin.PH20 +P18 = pin.PH21 +PH21 = pin.PH21 +P19 = pin.PI12 +PI12 = pin.PI12 +SPI0_MOSI = pin.PI12 +P21 = pin.PI11 +PI11 = pin.PI11 +SPI0_CLK = pin.PI11 +P22 = pin.PI16 +PI16 = pin.PI16 +P23 = pin.PI13 +PI13 = pin.PI13 +SPI0_MISO = pin.PI13 +P24 = pin.PI10 +PI10 = pin.PI10 +SPI0_CS0 = pin.PI10 +P26 = pin.PI14 +PI14 = pin.PI14 +SPI0_CS1 = pin.PI14 +P27 = pin.PI1 +PI1 = pin.PI1 +TWI3_SDA = pin.PI1 +P28 = pin.PI0 +PI0 = pin.PI0 +TWI3_SCL = pin.PI0 +P29 = pin.PB3 +PB3 = pin.PB3 +P31 = pin.PI21 +PI21 = pin.PI21 +UART7_RX = pin.PI21 +P32 = pin.PI20 +PI20 = pin.PI20 +UART7_TX = pin.PI20 +P33 = pin.PB13 +PB13 = pin.PB13 +P35 = pin.PB7 +PB7 = pin.PB7 +P36 = pin.PB6 +PB6 = pin.PB6 +P37 = pin.PB5 +PB5 = pin.PB5 +P38 = pin.PB12 +PB12 = pin.PB12 +P40 = pin.PB8 +PB8 = pin.PB8 + +## Additional Hardware + +LED1 = pin.PH24 +LED_GREEN = pin.PH24 +LED2 = pin.PG2 +LED_BLUE = pin.PG2 + +## For compatibility of 40-pin header to RasPi & others +## With these definitions most examples run out of the box. + +D0 = pin.PI1 +D1 = pin.PI0 +D2 = pin.PB21 +D3 = pin.PB20 +D4 = pin.PH2 +D5 = pin.PB3 +D6 = pin.PI21 +D7 = pin.PI14 +D8 = pin.PI10 +D9 = pin.PI13 +D10 = pin.PI12 +D11 = pin.PI11 +D12 = pin.PI20 +D13 = pin.PB13 +D14 = pin.PH4 +D15 = pin.PH5 +D16 = pin.PB6 +D17 = pin.PI19 +D18 = pin.PI3 +D19 = pin.PB7 +D20 = pin.PB12 +D21 = pin.PB8 +D22 = pin.PI17 +D23 = pin.PH20 +D24 = pin.PH21 +D25 = pin.PI16 +D26 = pin.PB5 +D27 = pin.PI18 + +RX = pin.PH4 +TX = pin.PH5 + +SDA = pin.PB21 +SCL = pin.PB20 + +SCLK = pin.PI11 +MOSI = pin.PI12 +MISO = pin.PI13 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..edd8fad --- /dev/null +++ b/src/adafruit_blinka/microcontroller/allwinner/a20/__init__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""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..3e4bf44 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/allwinner/a20/pin.py @@ -0,0 +1,116 @@ +# SPDX-FileCopyrightText: 2023 Xenokrates +# +# SPDX-License-Identifier: MIT +"""Allwinner A20 pin names""" +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +# Pin descriptions at https://linux-sunxi.org/A20/PIO + +PA0 = Pin(0) +PA1 = Pin(1) +PA2 = Pin(2) +UART2_TX = PA2 +PA3 = Pin(3) +UART2_RX = PA3 +PA6 = Pin(6) +PA7 = Pin(7) +PA8 = Pin(8) +PA9 = Pin(9) +PA10 = Pin(10) +UART1_TX = PA10 +PA11 = Pin(11) +UART1_RX = PA11 +PA12 = Pin(12) +PA13 = Pin(13) +PA14 = Pin(14) +PA15 = Pin(15) +PA16 = Pin(16) +PA17 = Pin(17) + +PB0 = Pin(32) +TWI0_SCK = PB0 +PB1 = Pin(33) +TWI0_SDA = PB1 +PB2 = Pin(34) +PB3 = Pin(35) +IR0_TX = PB3 +PB4 = Pin(36) +IR0_RX = PB4 +PB5 = Pin(37) +PB6 = Pin(38) +PB7 = Pin(39) +PB8 = Pin(40) +PB12 = Pin(44) +PB13 = Pin(45) +PB18 = Pin(50) +TWI1_SCK = PB18 +PB19 = Pin(51) +TWI1_SDA = PB19 +PB20 = Pin(52) +TWI2_SCK = PB20 +PB21 = Pin(53) +TWI2_SDA = PB21 +PB22 = Pin(54) +UART0_TX = PB22 +PB23 = Pin(55) +UART0_RX = PB23 + +PG2 = Pin(194) + +PH2 = Pin(226) +PH4 = Pin(228) +UART4_TX = PH4 +PH5 = Pin(229) +UART4_RX = PH5 +PH20 = Pin(244) +CAN_TX = PH20 +PH21 = Pin(245) +CAN_RX = PH21 +PH24 = Pin(248) + +PI0 = Pin(256) +TWI3_SCK = PI0 +PI1 = Pin(257) +TWI3_SDA = PI1 +PI3 = Pin(259) +PWM1 = PI3 +PI10 = Pin(266) +SPI0_CS0 = PI10 +PI11 = Pin(267) +SPI0_SCLK = PI11 +PI12 = Pin(268) +SPI0_MOSI = PI12 +PI13 = Pin(269) +SPI0_MISO = PI13 +PI14 = Pin(270) +SPI0_CS1 = PI14 +PI16 = Pin(272) +UART2_RTS = PI16 +PI17 = Pin(273) +UART2_CTS = PI17 +PI18 = Pin(274) +UART2_TX = PI18 +PI19 = Pin(275) +UART2_RX = PI19 +PI20 = Pin(276) +UART7_TX = PI20 +PI21 = Pin(277) +UART7_RX = PI21 + +# SysFS pwm outputs, pwm channel and pin in first tuple +pwmOuts = (((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),) +# ordered as uartId, txId, rxId +uartPorts = ( + (0, UART0_TX, UART0_RX), + (2, UART2_TX, UART2_RX), + (4, UART4_TX, UART4_RX), + (7, UART7_TX, UART7_RX), +) diff --git a/src/board.py b/src/board.py index 74aeb5c..b7775d7 100644 --- a/src/board.py +++ b/src/board.py @@ -142,6 +142,9 @@ elif board_id == ap_board.BANANA_PI_M2_PLUS: elif board_id == ap_board.BANANA_PI_M5: from adafruit_blinka.board.bananapi.bpim5 import * +elif board_id == ap_board.LEMAKER_BANANA_PRO: + from adafruit_blinka.board.lemaker.bananapro import * + elif board_id == ap_board.GIANT_BOARD: from adafruit_blinka.board.giantboard import * diff --git a/src/digitalio.py b/src/digitalio.py index 7ce3240..62e61a4 100644 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -63,6 +63,8 @@ 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: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 715c080..37cd3a6 100644 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -86,6 +86,8 @@ 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: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index ebdac6b..2fe19a6 100644 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -89,6 +89,8 @@ 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: diff --git a/src/pwmio.py b/src/pwmio.py index 886241f..b37549f 100644 --- a/src/pwmio.py +++ b/src/pwmio.py @@ -24,6 +24,8 @@ elif detector.board.any_giant_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: + from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut elif detector.board.any_siemens_simatic_iot2000: from adafruit_blinka.microcontroller.am65xx.pwmout import PWMOut elif detector.board.any_rock_pi_board: