From: Melissa LeBlanc-Williams Date: Fri, 22 Jul 2022 20:43:19 +0000 (-0700) Subject: Merge pull request #597 from djhedges/main X-Git-Tag: 8.1.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/8e3d2a9bb2216ea6f74c54d440513c646c784b22?hp=ac9c311d6e3b7419c891f8c116c63503724385c5 Merge pull request #597 from djhedges/main Add Banana Pi M5 support. --- diff --git a/src/adafruit_blinka/board/bananapi/bpim5.py b/src/adafruit_blinka/board/bananapi/bpim5.py new file mode 100644 index 0000000..6ed4deb --- /dev/null +++ b/src/adafruit_blinka/board/bananapi/bpim5.py @@ -0,0 +1,49 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Pin definitions for the Banana Pi M5.""" + +from adafruit_blinka.microcontroller.amlogic.s905x3 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.SPI0_SCLK +MOSI = pin.SPI0_MOSI +MISO = pin.SPI0_MISO +SPI_CS0 = pin.SPI0_CS0 + +# Pinout reference: +# https://wiki.banana-pi.org/Banana_Pi_BPI-M5#BPI-M5_40PIN_GPIO_.28CON2.29 +P3 = pin.GPIOX_17 # I2C_M2_SDA +P5 = pin.GPIOX_18 # I2C_M2_SCL +P7 = pin.GPIOX_5 +P8 = pin.GPIOX_12 # UART_A_TX +P10 = pin.GPIOX_13 # UART_A_RX +P11 = pin.GPIOX_3 +P12 = pin.GPIOA_8 # TDMB_SCLK +P13 = pin.GPIOX_4 +P15 = pin.GPIOX_7 +P16 = pin.GPIOX_0 +P18 = pin.GPIOX_1 +P19 = pin.GPIOX_8 # PCM_DIN +P21 = pin.GPIOX_9 # PCM_DOUT +P22 = pin.GPIOX_2 # SDIO_D2 +P23 = pin.GPIOX_11 # PCM_CLK +P24 = pin.GPIOX_10 # PCM_SYNC +P26 = pin.GPIOX_16 # PWM_E +P27 = pin.GPIOA_14 # I2C_M3_SDA +P28 = pin.GPIOA_15 # I2C_M3_SCL +P29 = pin.GPIOX_14 # UART_A_CTS +P31 = pin.GPIOX_15 # UART_A_RTS +P32 = pin.GPIOX_19 # PWM_B +P33 = pin.GPIOX_6 +P35 = pin.GPIOAO_7 # TDMB_FS +P36 = pin.GPIOH_5 +P37 = pin.GPIOAO_9 # I2S_MCLK +P38 = pin.GPIOAO_10 # TDMB_DIN SPDIF_OUT +P40 = pin.GPIOAO_4 # TDMB_DOUT diff --git a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py index d920b1f..41cf8f2 100644 --- a/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py +++ b/src/adafruit_blinka/microcontroller/amlogic/meson_g12_common/pin.py @@ -11,6 +11,8 @@ Linux kernel 5.4.y (mainline) linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi """ +from typing import Optional +import os import re import gpiod from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin @@ -110,18 +112,18 @@ UART1_RX = GPIOX_13 uartPorts = ((1, UART1_TX, UART1_RX),) -def get_dts_alias(device: str) -> str: +def get_dts_alias(device: str) -> Optional[str]: """Get the Device Tree Alias""" uevent_path = "/sys/bus/platform/devices/" + device + "/uevent" - with open(uevent_path, "r", encoding="utf-8") as fd: - pattern = r"^OF_ALIAS_0=(.*)$" - uevent = fd.read().split("\n") - for line in uevent: - match = re.search(pattern, line) - if match: - return match.group(1).upper() - - return None + if os.path.exists(uevent_path): + with open(uevent_path, "r", encoding="utf-8") as fd: + pattern = r"^OF_ALIAS_0=(.*)$" + uevent = fd.read().split("\n") + for line in uevent: + match = re.search(pattern, line) + if match: + return match.group(1).upper() + return None # ordered as i2cId, sclId, sdaId diff --git a/src/board.py b/src/board.py index 173c854..bc6e528 100644 --- a/src/board.py +++ b/src/board.py @@ -124,6 +124,9 @@ elif board_id == ap_board.ORANGE_PI_3: elif board_id == ap_board.BANANA_PI_M2_ZERO: from adafruit_blinka.board.bananapi.bpim2zero import * +elif board_id == ap_board.BANANA_PI_M5: + from adafruit_blinka.board.bananapi.bpim5 import * + elif board_id == ap_board.GIANT_BOARD: from adafruit_blinka.board.giantboard import *