From a97327a70ac1a3a0073bf8b8e5832b9ad34a5eea Mon Sep 17 00:00:00 2001 From: tomaszchalupnik Date: Mon, 15 Sep 2025 09:21:20 +0200 Subject: [PATCH 1/9] Removing adafruit-bbio --- setup.py | 3 - .../microcontroller/am335x/pin.py | 69 +------------------ 2 files changed, 2 insertions(+), 70 deletions(-) diff --git a/setup.py b/setup.py index d5097601..b26fbba5 100644 --- a/setup.py +++ b/setup.py @@ -56,9 +56,6 @@ def yellow_text(text: str) -> str: "Adafruit-Blinka-Raspberry-Pi5-Neopixel", ] raspberry_pi = True - # BeagleBone Black, Green, PocketBeagle, BeagleBone AI, etc. - elif b"ti,am335x" in compat: - board_reqs = ["Adafruit_BBIO"] setup( name="Adafruit-Blinka", diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index c6659ca2..fe46efe2 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -2,73 +2,8 @@ # # SPDX-License-Identifier: MIT """AM335x pin names""" -try: - from Adafruit_BBIO import GPIO -except ImportError as error: - raise RuntimeError( - "The library 'Adafruit_BBIO' was not found. To install, try typing: " - "pip install Adafruit_BBIO" - ) from error - - -class Pin: - """Pins dont exist in CPython so...lets make our own!""" - - IN = 0 - OUT = 1 - LOW = 0 - HIGH = 1 - PULL_NONE = 0 - PULL_UP = 1 - PULL_DOWN = 2 - - id = None - _value = LOW - _mode = IN - - def __init__(self, pin_name): - self.id = pin_name - - def __repr__(self): - return str(self.id) - - def __eq__(self, other): - return self.id == other - - def init(self, mode=IN, pull=None): - """Initialize the Pin""" - if mode is not None: - if mode == self.IN: - self._mode = self.IN - GPIO.setup(self.id, GPIO.IN) - elif mode == self.OUT: - self._mode = self.OUT - GPIO.setup(self.id, GPIO.OUT) - else: - raise RuntimeError("Invalid mode for pin: %s" % self.id) - if pull is not None: - if self._mode != self.IN: - raise RuntimeError("Cannot set pull resistor on output") - if pull == self.PULL_UP: - GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_UP) - elif pull == self.PULL_DOWN: - GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) - else: - raise RuntimeError("Invalid pull for pin: %s" % self.id) - - def value(self, val=None): - """Set or return the Pin Value""" - if val is not None: - if val == self.LOW: - self._value = val - GPIO.output(self.id, val) - elif val == self.HIGH: - self._value = val - GPIO.output(self.id, val) - else: - raise RuntimeError("Invalid value for pin") - return None - return GPIO.input(self.id) + +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin # names in comments copied from From b630c4f2ec08a436ac9ba72538a9bd2aa9177ef9 Mon Sep 17 00:00:00 2001 From: tomaszchalupnik Date: Mon, 15 Sep 2025 11:46:38 +0200 Subject: [PATCH 2/9] Fix pins --- .../beagleboard/beaglebone_pocketbeagle.py | 33 +- .../microcontroller/am335x/pin.py | 354 +++++++++--------- 2 files changed, 194 insertions(+), 193 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py index a24fd6bc..1ff143d0 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py @@ -7,6 +7,7 @@ based on https://github.com/beagleboard/pocketbeagle/wiki/System-Reference-Manual#figure-42-expansion-header-popular-functions---color-coded """ + from adafruit_blinka.microcontroller.am335x import pin # initial pins, to mimic bonescript demo @@ -97,36 +98,36 @@ # https://raw.githubusercontent.com/wiki/beagleboard/pocketbeagle/images/PocketBeagle_pinout.png # I2C1 pins -SDA_1 = pin.I2C1_SDA # P2_11 data signal -SCL_1 = pin.I2C1_SCL # P2_9 clock signal +SDA_1 = pin.P2_11 # P2_11 data signal +SCL_1 = pin.P2_9 # P2_9 clock signal # for example compatibility we create a alias SDA = SDA_1 SCL = SCL_1 # I2C2 pins -SDA_2 = pin.I2C2_SDA # P1_26 data signal -SCL_2 = pin.I2C2_SCL # P1_28 clock signal +SDA_2 = pin.P1_26 # P1_26 data signal +SCL_2 = pin.P1_28 # P1_28 clock signal # SPI0 pins -CE0 = pin.SPI0_CS0 # P1_6 - enables peripheral device -SCLK = pin.SPI0_SCLK # P1_12 - outputs data to peripheral device -MOSI = pin.SPI0_D1 # P1_10 - receives data from peripheral device -MISO = pin.SPI0_D0 # P1_8 - outputs clock signal +CE0 = pin.P1_6 # P1_6 - enables peripheral device +SCLK = pin.P1_12 # P1_12 - outputs data to peripheral device +MOSI = pin.P1_10 # P1_10 - receives data from peripheral device +MISO = pin.P1_8 # P1_8 - outputs clock signal # CircuitPython naming convention for SPI Clock SCK = SCLK # SPI1 pins -CE0_1 = pin.SPI1_CS1 # P2_31 - enables peripheral device -SCLK_1 = pin.SPI1_SCLK # P2_25 - outputs data to peripheral device -MOSI_1 = pin.SPI1_D1 # P2_27 - receives data from peripheral device -MISO_1 = pin.SPI1_D0 # P2_29 - outputs clock signal +CE0_1 = pin.P2_31 # P2_31 - enables peripheral device +SCLK_1 = pin.P2_25 # P2_25 - outputs data to peripheral device +MOSI_1 = pin.P2_27 # P2_27 - receives data from peripheral device +MISO_1 = pin.P2_29 # P2_29 - outputs clock signal # CircuitPython naming convention for SPI Clock SCK_1 = SCLK_1 # UART0 -TX_0 = pin.UART0_TXD # P1_30 -RX_0 = pin.UART0_RXD # P1_32 +TX_0 = pin.P1_30 # P1_30 +RX_0 = pin.P1_32 # P1_32 # create alias for most of the examples TX = TX_0 RX = RX_0 @@ -137,5 +138,5 @@ # RX_2 = pin.UART2_RXD # P1_10 # UART4 -TX_4 = pin.UART4_TXD # P2_7 -RX_4 = pin.UART4_RXD # P2_5 +TX_4 = pin.P2_7 # P2_7 +RX_4 = pin.P2_5 # P2_5 diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index fe46efe2..8fca150f 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -11,128 +11,128 @@ # PocketBeagle # P1_1 = SYS VIN # VIN_AC -P1_2 = Pin("P1_2") # GPIO2_23 - GPIO_87 -P1_3 = Pin("P1_3") # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) -P1_4 = Pin("P1_4") # GPIO2_25 - GPIO_89 +P1_2 = Pin((2, 23)) # GPIO2_23 - GPIO_87 +P1_3 = Pin((0, 0)) # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) +P1_4 = Pin((2, 25)) # GPIO2_25 - GPIO_89 # P1_5 = USB VBUS # USB1_VBUS_IN -P1_6 = Pin("P1_6") # SPI0_CS0 - GPIO_5 +P1_6 = Pin((0, 5)) # SPI0_CS0 - GPIO_5 # P1_7 = USB VIN # VIN-USB -P1_8 = Pin("P1_8") # SPI0_SCLK - GPIO_2 +P1_8 = Pin((0, 2)) # SPI0_SCLK - GPIO_2 # P1_9 = USB1 DN # USB1-DN -P1_10 = Pin("P1_10") # SPI0_D0 - GPIO_3 +P1_10 = Pin((0, 3)) # SPI0_D0 - GPIO_3 # P1_11 = USB1 DP # USB1-DP -P1_12 = Pin("P1_12") # SPI0_D1 - GPIO_4 +P1_12 = Pin((0, 4)) # SPI0_D1 - GPIO_4 # P1_13 = USB1 ID # USB1-ID # P1_14 = SYS 3.3V # VOUT-3.3V # P1_15 = SYS GND # GND # P1_16 = SYS GND # GND # P1_17 = AIN 1.8V REF- # VREFN # P1_18 = AIN 1.8V REF+ # VREFP -P1_19 = Pin("P1_19") # AIN0 -P1_20 = Pin("P1_20") # GPIO0_20 - GPIO_20 -P1_21 = Pin("P1_21") # AIN1 +P1_19 = Pin((0, 0)) # AIN0 +P1_20 = Pin((0, 20)) # GPIO0_20 - GPIO_20 +P1_21 = Pin((0, 0)) # AIN1 # P1_22 = SYS GND # GND -P1_23 = Pin("P1_23") # AIN2 +P1_23 = Pin((0, 0)) # AIN2 # P1_22 = SYS VOUT # VOUT-5V -P1_25 = Pin("P1_25") # AIN3 -P1_26 = Pin("P1_26") # I2C2_SDA - GPIO_12 -P1_27 = Pin("P1_27") # AIN4 -P1_28 = Pin("P1_28") # I2C2_SCL - GPIO_13 -P1_29 = Pin("P1_29") # GPIO3_21 - GPIO_117 -P1_30 = Pin("P1_30") # UART0_TXD - GPIO_43 -P1_31 = Pin("P1_31") # GPIO3_18 - GPIO_114 -P1_32 = Pin("P1_32") # UART0_RXD - GPIO_42 -P1_33 = Pin("P1_33") # GPIO3_15 - GPIO_111 -P1_34 = Pin("P1_34") # GPIO0_26 - GPIO_26 -P1_35 = Pin("P1_35") # GPIO2_24 - GPIO_88 -P1_36 = Pin("P1_36") # EHRPWM0A - GPIO_110 - - -P2_1 = Pin("P2_1") # EHRPWM1A - GPIO_50 -P2_2 = Pin("P2_2") # GPIO1_27 - GPIO_59 -P2_3 = Pin("P2_3") # GPIO0_23 - GPIO_23 -P2_4 = Pin("P2_4") # GPIO1_26 - GPIO_58 -P2_5 = Pin("P2_5") # UART4_RXD - GPIO_30 -P2_6 = Pin("P2_6") # GPIO1_25 - GPIO_57 -P2_7 = Pin("P2_7") # UART4_TXD - GPIO_31 -P2_8 = Pin("P2_8") # GPIO1_28 - GPIO_60 -P2_9 = Pin("P2_9") # I2C1_SCL - GPIO_15 -P2_10 = Pin("P2_10") # GPIO1_20 - GPIO_52 -P2_11 = Pin("P2_11") # I2C1_SDA - GPIO_14 +P1_25 = Pin((0, 0)) # AIN3 +P1_26 = Pin((0, 12)) # I2C2_SDA - GPIO_12 +P1_27 = Pin((0, 0)) # AIN4 +P1_28 = Pin((0, 13)) # I2C2_SCL - GPIO_13 +P1_29 = Pin((3, 21)) # GPIO3_21 - GPIO_117 +P1_30 = Pin((1, 11)) # UART0_TXD - GPIO_43 +P1_31 = Pin((3, 18)) # GPIO3_18 - GPIO_114 +P1_32 = Pin((1, 10)) # UART0_RXD - GPIO_42 +P1_33 = Pin((3, 15)) # GPIO3_15 - GPIO_111 +P1_34 = Pin((0, 26)) # GPIO0_26 - GPIO_26 +P1_35 = Pin((2, 24)) # GPIO2_24 - GPIO_88 +P1_36 = Pin((3, 14)) # EHRPWM0A - GPIO_110 + + +P2_1 = Pin((1, 18)) # EHRPWM1A - GPIO_50 +P2_2 = Pin((1, 27)) # GPIO1_27 - GPIO_59 +P2_3 = Pin((0, 23)) # GPIO0_23 - GPIO_23 +P2_4 = Pin((1, 26)) # GPIO1_26 - GPIO_58 +P2_5 = Pin((0, 30)) # UART4_RXD - GPIO_30 +P2_6 = Pin((1, 25)) # GPIO1_25 - GPIO_57 +P2_7 = Pin((0, 31)) # UART4_TXD - GPIO_31 +P2_8 = Pin((1, 28)) # GPIO1_28 - GPIO_60 +P2_9 = Pin((0, 15)) # I2C1_SCL - GPIO_15 +P2_10 = Pin((1, 20)) # GPIO1_20 - GPIO_52 +P2_11 = Pin((0, 14)) # I2C1_SDA - GPIO_14 # P2_12 = SYS PWR BTN # POWER_BUTTON # P2_13 = SYS VOUT # VOUT-5V # P2_14 = BAT VIN # BAT-VIN # P2_15 = SYS GND # GND # P2_16 = BAT TEMP # BAT-TEMP -P2_17 = Pin("P2_17") # GPIO2_1 - GPIO_65 -P2_18 = Pin("P2_18") # GPIO1_15 - GPIO_47 -P2_19 = Pin("P2_19") # GPIO0_27 - GPIO_27 -P2_20 = Pin("P2_20") # GPIO2_0 - GPIO_64 +P2_17 = Pin((2, 1)) # GPIO2_1 - GPIO_65 +P2_18 = Pin((1, 15)) # GPIO1_15 - GPIO_47 +P2_19 = Pin((0, 27)) # GPIO0_27 - GPIO_27 +P2_20 = Pin((2, 0)) # GPIO2_0 - GPIO_64 # P2_21 = SYS GND # GND -P2_22 = Pin("P2_22") # GPIO1_14 - GPIO_46 +P2_22 = Pin((1, 14)) # GPIO1_14 - GPIO_46 # P2_23 = SYS 3.3V # VOUT-3.3V -P2_24 = Pin("P2_24") # GPIO1_12 - GPIO_44 -P2_25 = Pin("P2_25") # SPI1_D1 - GPIO_41 +P2_24 = Pin((1, 12)) # GPIO1_12 - GPIO_44 +P2_25 = Pin((1, 9)) # SPI1_D1 - GPIO_41 # P2_26 = SYS NRST # RESET# -P2_27 = Pin("P2_27") # SPI1_D0 - GPIO_40 -P2_28 = Pin("P2_28") # GPIO3_20 - GPIO_116 -P2_29 = Pin("P2_29") # SPI1_SCLK - GPIO_7 -P2_30 = Pin("P2_30") # GPIO3_17 - GPIO_113 -P2_31 = Pin("P2_31") # SPI1_CS1 - GPIO_19 -P2_32 = Pin("P2_32") # GPIO3_16 - GPIO_112 -P2_33 = Pin("P2_33") # GPIO1_13 - GPIO_45 -P2_34 = Pin("P2_34") # GPIO3_19 - GPIO_115 -P2_35 = Pin("P2_35") # GPIO2_22 - GPIO_86 -P2_36 = Pin("P2_36") # AIN7 +P2_27 = Pin((1, 8)) # SPI1_D0 - GPIO_40 +P2_28 = Pin((3, 20)) # GPIO3_20 - GPIO_116 +P2_29 = Pin((0, 7)) # SPI1_SCLK - GPIO_7 +P2_30 = Pin((3, 17)) # GPIO3_17 - GPIO_113 +P2_31 = Pin((0, 19)) # SPI1_CS1 - GPIO_19 +P2_32 = Pin((3, 16)) # GPIO3_16 - GPIO_112 +P2_33 = Pin((1, 13)) # GPIO1_13 - GPIO_45 +P2_34 = Pin((3, 19)) # GPIO3_19 - GPIO_115 +P2_35 = Pin((2, 22)) # GPIO2_22 - GPIO_86 +P2_36 = Pin((0, 0)) # AIN7 # BeagleBone Black # P8_1 = DGND # DGND - GPIO_0 # P8_2 = DGND # DGND - GPIO_0 -P8_3 = Pin("P8_3") # GPIO1_6 - GPIO_38 -P8_4 = Pin("P8_4") # GPIO1_7 - GPIO_39 -P8_5 = Pin("P8_5") # GPIO1_2 - GPIO_34 -P8_6 = Pin("P8_6") # GPIO1_3 - GPIO_35 -P8_7 = Pin("P8_7") # TIMER4 - GPIO_66 -P8_8 = Pin("P8_8") # TIMER7 - GPIO_67 -P8_9 = Pin("P8_9") # TIMER5 - GPIO_69 -P8_10 = Pin("P8_10") # TIMER6 - GPIO_68 -P8_11 = Pin("P8_11") # GPIO1_13 - GPIO_45 -P8_12 = Pin("P8_12") # GPIO1_12 - GPIO_44 -P8_13 = Pin("P8_13") # EHRPWM2B - GPIO_23 -P8_14 = Pin("P8_14") # GPIO0_26 - GPIO_26 -P8_15 = Pin("P8_15") # GPIO1_15 - GPIO_47 -P8_16 = Pin("P8_16") # GPIO1_14 - GPIO_46 -P8_17 = Pin("P8_17") # GPIO0_27 - GPIO_27 -P8_18 = Pin("P8_18") # GPIO2_1 - GPIO_65 -P8_19 = Pin("P8_19") # EHRPWM2A - GPIO_22 -P8_20 = Pin("P8_20") # GPIO1_31 - GPIO_63 -P8_21 = Pin("P8_21") # GPIO1_30 - GPIO_62 -P8_22 = Pin("P8_22") # GPIO1_5 - GPIO_37 -P8_23 = Pin("P8_23") # GPIO1_4 - GPIO_36 -P8_24 = Pin("P8_24") # GPIO1_1 - GPIO_33 -P8_25 = Pin("P8_25") # GPIO1_0 - GPIO_32 -P8_26 = Pin("P8_26") # GPIO1_29 - GPIO_61 -P8_27 = Pin("P8_27") # GPIO2_22 - GPIO_86 -P8_28 = Pin("P8_28") # GPIO2_24 - GPIO_88 -P8_29 = Pin("P8_29") # GPIO2_23 - GPIO_87 -P8_30 = Pin("P8_30") # GPIO2_25 - GPIO_89 -P8_31 = Pin("P8_31") # UART5_CTSN - GPIO_10 -P8_32 = Pin("P8_32") # UART5_RTSN - GPIO_11 -P8_33 = Pin("P8_33") # UART4_RTSN - GPIO_9 -P8_34 = Pin("P8_34") # UART3_RTSN - GPIO_81 -P8_35 = Pin("P8_35") # UART4_CTSN - GPIO_8 -P8_36 = Pin("P8_36") # UART3_CTSN - GPIO_80 -P8_37 = Pin("P8_37") # UART5_TXD - GPIO_78 -P8_38 = Pin("P8_38") # UART5_RXD - GPIO_79 -P8_39 = Pin("P8_39") # GPIO2_12 - GPIO_76 -P8_40 = Pin("P8_40") # GPIO2_13 - GPIO_77 -P8_41 = Pin("P8_41") # GPIO2_10 - GPIO_74 -P8_42 = Pin("P8_42") # GPIO2_11 - GPIO_75 -P8_43 = Pin("P8_43") # GPIO2_8 - GPIO_72 -P8_44 = Pin("P8_44") # GPIO2_9 - GPIO_73 -P8_45 = Pin("P8_45") # GPIO2_6 - GPIO_70 -P8_46 = Pin("P8_46") # GPIO2_7 - GPIO_71 +P8_03 = Pin((1, 6)) # GPIO1_6 - GPIO_38 +P8_04 = Pin((1, 7)) # GPIO1_7 - GPIO_39 +P8_05 = Pin((1, 2)) # GPIO1_2 - GPIO_34 +P8_06 = Pin((1, 3)) # GPIO1_3 - GPIO_35 +P8_07 = Pin((2, 2)) # TIMER4 - GPIO_66 +P8_08 = Pin((2, 3)) # TIMER7 - GPIO_67 +P8_09 = Pin((2, 5)) # TIMER5 - GPIO_69 +P8_10 = Pin((2, 4)) # TIMER6 - GPIO_68 +P8_11 = Pin((1, 13)) # GPIO1_13 - GPIO_45 +P8_12 = Pin((1, 12)) # GPIO1_12 - GPIO_44 +P8_13 = Pin((0, 23)) # EHRPWM2B - GPIO_23 +P8_14 = Pin((0, 26)) # GPIO0_26 - GPIO_26 +P8_15 = Pin((1, 15)) # GPIO1_15 - GPIO_47 +P8_16 = Pin((1, 14)) # GPIO1_14 - GPIO_46 +P8_17 = Pin((0, 27)) # GPIO0_27 - GPIO_27 +P8_18 = Pin((2, 1)) # GPIO2_1 - GPIO_65 +P8_19 = Pin((0, 22)) # EHRPWM2A - GPIO_22 +P8_20 = Pin((1, 31)) # GPIO1_31 - GPIO_63 +P8_21 = Pin((1, 30)) # GPIO1_30 - GPIO_62 +P8_22 = Pin((1, 5)) # GPIO1_5 - GPIO_37 +P8_23 = Pin((1, 4)) # GPIO1_4 - GPIO_36 +P8_24 = Pin((1, 1)) # GPIO1_1 - GPIO_33 +P8_25 = Pin((1, 0)) # GPIO1_0 - GPIO_32 +P8_26 = Pin((1, 29)) # GPIO1_29 - GPIO_61 +P8_27 = Pin((2, 22)) # GPIO2_22 - GPIO_86 +P8_28 = Pin((2, 24)) # GPIO2_24 - GPIO_88 +P8_29 = Pin((2, 23)) # GPIO2_23 - GPIO_87 +P8_30 = Pin((2, 25)) # GPIO2_25 - GPIO_89 +P8_31 = Pin((0, 10)) # UART5_CTSN - GPIO_10 +P8_32 = Pin((0, 11)) # UART5_RTSN - GPIO_11 +P8_33 = Pin((0, 9)) # UART4_RTSN - GPIO_9 +P8_34 = Pin((2, 17)) # UART3_RTSN - GPIO_81 +P8_35 = Pin((0, 8)) # UART4_CTSN - GPIO_8 +P8_36 = Pin((2, 16)) # UART3_CTSN - GPIO_80 +P8_37 = Pin((2, 14)) # UART5_TXD - GPIO_78 +P8_38 = Pin((2, 15)) # UART5_RXD - GPIO_79 +P8_39 = Pin((2, 12)) # GPIO2_12 - GPIO_76 +P8_40 = Pin((2, 13)) # GPIO2_13 - GPIO_77 +P8_41 = Pin((2, 10)) # GPIO2_10 - GPIO_74 +P8_42 = Pin((2, 11)) # GPIO2_11 - GPIO_75 +P8_43 = Pin((2, 8)) # GPIO2_8 - GPIO_72 +P8_44 = Pin((2, 9)) # GPIO2_9 - GPIO_73 +P8_45 = Pin((2, 6)) # GPIO2_6 - GPIO_70 +P8_46 = Pin((2, 7)) # GPIO2_7 - GPIO_71 # P9_1 = DGND # DGND - GPIO_0 # P9_2 = DGND # DGND - GPIO_0 @@ -144,27 +144,27 @@ # P9_8 = SYS_5V # SYS_5V - GPIO_0 # P9_9 = PWR_BUT # PWR_BUT - GPIO_0 # P9_10 = SYS_RESETN # SYS_RESETn - GPIO_0 -P9_11 = Pin("P9_11") # UART4_RXD - GPIO_30 -P9_12 = Pin("P9_12") # GPIO1_28 - GPIO_60 -P9_13 = Pin("P9_13") # UART4_TXD - GPIO_31 -P9_14 = Pin("P9_14") # EHRPWM1A - GPIO_50 -P9_15 = Pin("P9_15") # GPIO1_16 - GPIO_48 -P9_16 = Pin("P9_16") # EHRPWM1B - GPIO_51 -P9_17 = Pin("P9_17") # I2C1_SCL - GPIO_5 -P9_18 = Pin("P9_18") # I2C1_SDA - GPIO_4 -P9_19 = Pin("P9_19") # I2C2_SCL - GPIO_13 -P9_20 = Pin("P9_20") # I2C2_SDA - GPIO_12 -P9_21 = Pin("P9_21") # UART2_TXD - GPIO_3 -P9_22 = Pin("P9_22") # UART2_RXD - GPIO_2 -P9_23 = Pin("P9_23") # GPIO1_17 - GPIO_49 -P9_24 = Pin("P9_24") # UART1_TXD - GPIO_15 -P9_25 = Pin("P9_25") # GPIO3_21 - GPIO_117 -P9_26 = Pin("P9_26") # UART1_RXD - GPIO_14 -P9_27 = Pin("P9_27") # GPIO3_19 - GPIO_115 -P9_28 = Pin("P9_28") # SPI1_CS0 - GPIO_113 -P9_29 = Pin("P9_29") # SPI1_D0 - GPIO_111 -P9_30 = Pin("P9_30") # SPI1_D1 - GPIO_112 -P9_31 = Pin("P9_31") # SPI1_SCLK - GPIO_110 +P9_11 = Pin((0, 30)) # GPIO0_30 - GPIO_30 +P9_12 = Pin((1, 28)) # GPIO1_28 - GPIO_60 +P9_13 = Pin((0, 31)) # GPIO0_31 - GPIO_31 +P9_14 = Pin((1, 18)) # GPIO1_18 - GPIO_50 +P9_15 = Pin((1, 16)) # GPIO1_16 - GPIO_48 +P9_16 = Pin((1, 19)) # GPIO1_19 - GPIO_51 +P9_17 = Pin((0, 5)) # GPIO0_5 - GPIO_5 +P9_18 = Pin((0, 4)) # GPIO0_4 - GPIO_4 +P9_19 = Pin((0, 13)) # GPIO0_13 - GPIO_13 +P9_20 = Pin((0, 12)) # GPIO0_12 - GPIO_12 +P9_21 = Pin((0, 3)) # GPIO0_3 - GPIO_3 +P9_22 = Pin((0, 2)) # GPIO0_2 - GPIO_2 +P9_23 = Pin((1, 17)) # GPIO1_17 - GPIO_49 +P9_24 = Pin((0, 15)) # GPIO0_15 - GPIO_15 +P9_25 = Pin((3, 21)) # GPIO3_21 - GPIO_117 +P9_26 = Pin((0, 14)) # GPIO0_14 - GPIO_14 +P9_27 = Pin((3, 19)) # GPIO3_19 - GPIO_115 +P9_28 = Pin((3, 17)) # GPIO3_17 - GPIO_113 +P9_29 = Pin((3, 15)) # GPIO3_15 - GPIO_111 +P9_30 = Pin((3, 16)) # GPIO3_16 - GPIO_112 +P9_31 = Pin((3, 14)) # GPIO3_14 - GPIO_110 # P9_32 = VDD_ADC # VDD_ADC - GPIO_0 # P9_33 = AIN4 # AIN4 - GPIO_0 # P9_34 = GNDA_ADC # GNDA_ADC - GPIO_0 @@ -174,8 +174,8 @@ # P9_38 = AIN3 # AIN3 - GPIO_0 # P9_39 = AIN0 # AIN0 - GPIO_0 # P9_40 = AIN1 # AIN1 - GPIO_0 -P9_41 = Pin("P9_41") # CLKOUT2 - GPIO_20 -P9_42 = Pin("P9_42") # GPIO0_7 - GPIO_7 +P9_41 = Pin((0, 20)) # GPIO0_20 - GPIO_20 +P9_42 = Pin((0, 7)) # GPIO0_7 - GPIO_7 # P9_43 = DGND # DGND - GPIO_0 # P9_44 = DGND # DGND - GPIO_0 # P9_45 = DGND # DGND - GPIO_0 @@ -184,92 +184,92 @@ ########################################## # common to all beagles -USR0 = Pin("USR0") # USR0 - GPIO_53 -USR1 = Pin("USR1") # USR1 - GPIO_54 -USR2 = Pin("USR2") # USR2 - GPIO_55 -USR3 = Pin("USR3") # USR3 - GPIO_56 +USR0 = Pin((1, 21)) # USR0 - GPIO_53 +USR1 = Pin((1, 22)) # USR1 - GPIO_54 +USR2 = Pin((1, 23)) # USR2 - GPIO_55 +USR3 = Pin((1, 24)) # USR3 - GPIO_56 ########################################## # specials # analog input -AIN0 = Pin("AIN0") -AIN1 = Pin("AIN1") -AIN2 = Pin("AIN2") -AIN3 = Pin("AIN3") -AIN4 = Pin("AIN4") -AIN5 = Pin("AIN5") -AIN6 = Pin("AIN6") -AIN7 = Pin("AIN7") +# AIN0 = Pin("AIN0") +# AIN1 = Pin("AIN1") +# AIN2 = Pin("AIN2") +# AIN3 = Pin("AIN3") +# AIN4 = Pin("AIN4") +# AIN5 = Pin("AIN5") +# AIN6 = Pin("AIN6") +# AIN7 = Pin("AIN7") # PWM -EHRPWM0A = Pin("EHRPWM0A") -EHRPWM0B = Pin("EHRPWM0B") -EHRPWM1A = Pin("EHRPWM1A") -EHRPWM1B = Pin("EHRPWM1B") -EHRPWM2A = Pin("EHRPWM2A") -EHRPWM2B = Pin("EHRPWM2B") -ECAPPWM0 = Pin("ECAPPWM0") -ECAPPWM2 = Pin("ECAPPWM2") -TIMER4 = Pin("TIMER4") -TIMER5 = Pin("TIMER5") -TIMER6 = Pin("TIMER6") -TIMER7 = Pin("TIMER7") +# EHRPWM0A = Pin("EHRPWM0A") +# EHRPWM0B = Pin("EHRPWM0B") +EHRPWM1A = P9_14 +EHRPWM1B = P9_16 +EHRPWM2A = P8_19 +EHRPWM2B = P8_13 +# ECAPPWM0 = Pin("ECAPPWM0") +# ECAPPWM2 = Pin("ECAPPWM2") +TIMER4 = P8_07 +TIMER5 = P8_09 +TIMER6 = P8_10 +TIMER7 = P8_08 # I2C1 -I2C1_SDA = Pin("I2C1_SDA") -I2C1_SCL = Pin("I2C1_SCL") +I2C1_SDA = P2_11 +I2C1_SCL = P2_9 # I2C2 -I2C2_SDA = Pin("I2C2_SDA") -I2C2_SCL = Pin("I2C2_SCL") +I2C2_SDA = P1_26 +I2C2_SCL = P1_28 # SPI0 -SPI0_CS0 = Pin("SPI0_CS0") -SPI0_SCLK = Pin("SPI0_SCLK") -SPI0_D1 = Pin("SPI0_D1") -SPI0_D0 = Pin("SPI0_D0") +SPI0_CS0 = P9_17 +SPI0_SCLK = P9_22 +SPI0_D1 = P9_18 +SPI0_D0 = P9_22 # SPI1 -SPI1_CS0 = Pin("SPI1_CS0") -SPI1_CS1 = Pin("SPI1_CS1") -SPI1_SCLK = Pin("SPI1_SCLK") -SPI1_D1 = Pin("SPI1_D1") -SPI1_D0 = Pin("SPI1_D0") +SPI1_CS0 = P9_28 +SPI1_CS1 = P2_31 +SPI1_SCLK = P2_29 +SPI1_D1 = P2_25 +SPI1_D0 = P2_27 # UART0 -UART0_TXD = Pin("UART0_TXD") -UART0_RXD = Pin("UART0_RXD") +UART0_TXD = P1_30 +UART0_RXD = P1_32 # UART1 -UART1_TXD = Pin("UART1_TXD") -UART1_RXD = Pin("UART1_RXD") -UART1_RTSn = Pin("UART1_RTSn") -UART1_CTSn = Pin("UART1_CTSn") +UART1_TXD = P9_24 +UART1_RXD = P9_26 +# UART1_RTSn = Pin("UART1_RTSn") +# UART1_CTSn = Pin("UART1_CTSn") # UART2 -UART2_TXD = Pin("UART2_TXD") -UART2_RXD = Pin("UART2_RXD") +UART2_TXD = P9_21 +UART2_RXD = P9_22 # UART3 -UART3_TXD = Pin("UART3_TXD") -UART3_RXD = Pin("UART3_RXD") -UART3_RTSn = Pin("UART3_RTSn") -UART3_CTSn = Pin("UART3_CTSn") +# UART3_TXD = Pin("UART3_TXD") +# UART3_RXD = Pin("UART3_RXD") +UART3_RTSn = P8_34 +UART3_CTSn = P8_36 # UART4 -UART4_TXD = Pin("UART4_TXD") -UART4_RXD = Pin("UART4_RXD") -UART4_RTSn = Pin("UART4_RTSn") -UART4_CTSn = Pin("UART4_CTSn") +UART4_TXD = P9_13 +UART4_RXD = P9_11 +UART4_RTSn = P8_33 +UART4_CTSn = P8_35 # UART5 -UART5_TXD = Pin("UART5_TXD") -UART5_RXD = Pin("UART5_RXD") -UART5_RTSn = Pin("UART5_RTSn") -UART5_CTSn = Pin("UART5_CTSn") +UART5_TXD = P8_37 +UART5_RXD = P8_38 +UART5_RTSn = P8_32 +UART5_CTSn = P8_31 # ordered as spiId, sckId, mosiId, misoId From 0a8b63e148bca8a70165565f1d9a86564cc02070 Mon Sep 17 00:00:00 2001 From: tomaszchalupnik Date: Mon, 15 Sep 2025 13:41:09 +0200 Subject: [PATCH 3/9] Fix leading 0 mistake --- .../board/beagleboard/beaglebone_black.py | 15 +++++++------- .../microcontroller/am335x/pin.py | 20 +++++++++---------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index de58a1b9..c719941d 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -2,19 +2,20 @@ # # SPDX-License-Identifier: MIT """Pin definitions for the Beaglebone Black.""" + from adafruit_blinka.microcontroller.am335x import pin # initial pins, to mimic bonescript demo # BeagleBone Black # P8_1 = DGND # DGND # P8_2 = DGND # DGND -P8_3 = pin.P8_3 # GPIO1_6 - GPIO_38 -P8_4 = pin.P8_4 # GPIO1_7 - GPIO_39 -P8_5 = pin.P8_5 # GPIO1_2 - GPIO_34 -P8_6 = pin.P8_6 # GPIO1_3 - GPIO_35 -P8_7 = pin.P8_7 # TIMER4 - GPIO_66 -P8_8 = pin.P8_8 # TIMER7 - GPIO_67 -P8_9 = pin.P8_9 # TIMER5 - GPIO_69 +P8_3 = pin.P8_03 # GPIO1_6 - GPIO_38 +P8_4 = pin.P8_04 # GPIO1_7 - GPIO_39 +P8_5 = pin.P8_05 # GPIO1_2 - GPIO_34 +P8_6 = pin.P8_06 # GPIO1_3 - GPIO_35 +P8_7 = pin.P8_07 # TIMER4 - GPIO_66 +P8_8 = pin.P8_08 # TIMER7 - GPIO_67 +P8_9 = pin.P8_09 # TIMER5 - GPIO_69 P8_10 = pin.P8_10 # TIMER6 - GPIO_68 P8_11 = pin.P8_11 # GPIO1_13 - GPIO_45 P8_12 = pin.P8_12 # GPIO1_12 - GPIO_44 diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 8fca150f..7c1e827e 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -89,13 +89,13 @@ # BeagleBone Black # P8_1 = DGND # DGND - GPIO_0 # P8_2 = DGND # DGND - GPIO_0 -P8_03 = Pin((1, 6)) # GPIO1_6 - GPIO_38 -P8_04 = Pin((1, 7)) # GPIO1_7 - GPIO_39 -P8_05 = Pin((1, 2)) # GPIO1_2 - GPIO_34 -P8_06 = Pin((1, 3)) # GPIO1_3 - GPIO_35 -P8_07 = Pin((2, 2)) # TIMER4 - GPIO_66 -P8_08 = Pin((2, 3)) # TIMER7 - GPIO_67 -P8_09 = Pin((2, 5)) # TIMER5 - GPIO_69 +P8_3 = Pin((1, 6)) # GPIO1_6 - GPIO_38 +P8_4 = Pin((1, 7)) # GPIO1_7 - GPIO_39 +P8_5 = Pin((1, 2)) # GPIO1_2 - GPIO_34 +P8_6 = Pin((1, 3)) # GPIO1_3 - GPIO_35 +P8_7 = Pin((2, 2)) # TIMER4 - GPIO_66 +P8_8 = Pin((2, 3)) # TIMER7 - GPIO_67 +P8_9 = Pin((2, 5)) # TIMER5 - GPIO_69 P8_10 = Pin((2, 4)) # TIMER6 - GPIO_68 P8_11 = Pin((1, 13)) # GPIO1_13 - GPIO_45 P8_12 = Pin((1, 12)) # GPIO1_12 - GPIO_44 @@ -212,10 +212,10 @@ EHRPWM2B = P8_13 # ECAPPWM0 = Pin("ECAPPWM0") # ECAPPWM2 = Pin("ECAPPWM2") -TIMER4 = P8_07 -TIMER5 = P8_09 +TIMER4 = P8_7 +TIMER5 = P8_9 TIMER6 = P8_10 -TIMER7 = P8_08 +TIMER7 = P8_8 # I2C1 From 296328d3426d3936b5e06bf58756fb7bdeb71538 Mon Sep 17 00:00:00 2001 From: tomaszchalupnik Date: Mon, 15 Sep 2025 13:43:22 +0200 Subject: [PATCH 4/9] Fix leading 0 mistake --- .../board/beagleboard/beaglebone_black.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index c719941d..3d0c8210 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -9,13 +9,13 @@ # BeagleBone Black # P8_1 = DGND # DGND # P8_2 = DGND # DGND -P8_3 = pin.P8_03 # GPIO1_6 - GPIO_38 -P8_4 = pin.P8_04 # GPIO1_7 - GPIO_39 -P8_5 = pin.P8_05 # GPIO1_2 - GPIO_34 -P8_6 = pin.P8_06 # GPIO1_3 - GPIO_35 -P8_7 = pin.P8_07 # TIMER4 - GPIO_66 -P8_8 = pin.P8_08 # TIMER7 - GPIO_67 -P8_9 = pin.P8_09 # TIMER5 - GPIO_69 +P8_3 = pin.P8_3 # GPIO1_6 - GPIO_38 +P8_4 = pin.P8_4 # GPIO1_7 - GPIO_39 +P8_5 = pin.P8_5 # GPIO1_2 - GPIO_34 +P8_6 = pin.P8_6 # GPIO1_3 - GPIO_35 +P8_7 = pin.P8_7 # TIMER4 - GPIO_66 +P8_8 = pin.P8_8 # TIMER7 - GPIO_67 +P8_9 = pin.P8_9 # TIMER5 - GPIO_69 P8_10 = pin.P8_10 # TIMER6 - GPIO_68 P8_11 = pin.P8_11 # GPIO1_13 - GPIO_45 P8_12 = pin.P8_12 # GPIO1_12 - GPIO_44 From 9fa3287a3ea20bd1a623462b0ff00119725415fe Mon Sep 17 00:00:00 2001 From: Tomasz Chalupnik Date: Thu, 2 Oct 2025 13:40:58 +0200 Subject: [PATCH 5/9] Update pins --- .../board/beagleboard/beaglebone_black.py | 64 +++++++++-- .../board/beagleboard/beaglebone_blue.py | 6 +- .../beagleboard/beaglebone_pocketbeagle.py | 79 +++++++++++--- .../microcontroller/am335x/pin.py | 103 ------------------ 4 files changed, 121 insertions(+), 131 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index 3d0c8210..120f148f 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -124,8 +124,8 @@ # SCLK_1 = pin.D21 # SCK_1 = pin.D21 -SDA = pin.I2C2_SDA # P9_19 -SCL = pin.I2C2_SCL # P9_20 +SDA = pin.P9_20 # I2C2_SDA +SCL = pin.P9_19 # I2C2_SCL # Refer to header default pin modes # http://beagleboard.org/static/images/cape-headers.png @@ -142,13 +142,19 @@ # config-pin p9.21 spi # config-pin p9.22 spi_sclk # -CE0 = pin.SPI0_CS0 # P9_17 -MOSI = pin.SPI0_D1 # P9_18 -MISO = pin.SPI0_D0 # P9_21 -SCLK = pin.SPI0_SCLK # P9_22 +CE0 = pin.P9_17 # SPI0_CS0 +MOSI = pin.P9_18 # SPI0_D1 (data out) +MISO = pin.P9_21 # SPI0_D0 (data in) +SCLK = pin.P9_22 # SPI0_SCLK # CircuitPython naming convention for SPI Clock SCK = SCLK +# SPI0 standard aliases for peripheral interface compatibility +SPI0_CS0 = CE0 +SPI0_D1 = MOSI # D1 = Data Out = MOSI +SPI0_D0 = MISO # D0 = Data In = MISO +SPI0_SCLK = SCLK + # Pins for SPI1 # refer to: # http://beagleboard.org/static/images/cape-headers-spi.png @@ -172,9 +178,47 @@ # config-pin p9.29 spi1 # config-pin p9.30 spi1 # config-pin p9.31 spi_sclk -CE1 = pin.SPI1_CS0 # P9_28 -MOSI_1 = pin.SPI1_D0 # P9_29 -MISO_1 = pin.SPI1_D1 # P9_30 -SCLK_1 = pin.SPI1_SCLK # P9_31 +CE1 = pin.P9_28 # SPI1_CS0 +MISO_1 = pin.P9_29 # SPI1_D0 (data in) +MOSI_1 = pin.P9_30 # SPI1_D1 (data out) +SCLK_1 = pin.P9_31 # SPI1_SCLK # CircuitPython naming convention for SPI Clock SCK_1 = SCLK_1 + +# SPI1 standard aliases for peripheral interface compatibility +SPI1_CS0 = CE1 +SPI1_D0 = MISO_1 # D0 = Data In = MISO +SPI1_D1 = MOSI_1 # D1 = Data Out = MOSI +SPI1_SCLK = SCLK_1 + +# I2C standard aliases for peripheral interface compatibility +I2C2_SDA = SDA +I2C2_SCL = SCL + +# UART aliases - BeagleBone Black common UART pins +# Note: UART0 conflicts with console on most images +UART1_TXD = pin.P9_24 +UART1_RXD = pin.P9_26 +UART2_TXD = pin.P9_21 # conflicts with SPI0_MISO +UART2_RXD = pin.P9_22 # conflicts with SPI0_SCLK +UART4_TXD = pin.P9_13 +UART4_RXD = pin.P9_11 + +# Peripheral port configurations for BeagleBone Black +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ( + (0, SPI0_SCLK, SPI0_D1, SPI0_D0), + (1, SPI1_SCLK, SPI1_D1, SPI1_D0), +) + +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (2, I2C2_SCL, I2C2_SDA), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + (1, UART1_TXD, UART1_RXD), + (2, UART2_TXD, UART2_RXD), + (4, UART4_TXD, UART4_RXD), +) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py index 47f038f2..8f42bf68 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py @@ -10,5 +10,7 @@ LED_USR2 = pin.USR2 LED_USR3 = pin.USR3 -SDA = pin.I2C1_SDA -SCL = pin.I2C1_SCL + +# Reference: https://git.beagleboard.org/beagleboard/beaglebone-blue/-/blob/master/BeagleBone_Blue_Pin_Table.csv +SDA = pin.P8_17 # I2C1_SDA +SCL = pin.P8_18 # I2C1_SCL diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py index 1ff143d0..03fa37a2 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_pocketbeagle.py @@ -98,45 +98,92 @@ # https://raw.githubusercontent.com/wiki/beagleboard/pocketbeagle/images/PocketBeagle_pinout.png # I2C1 pins -SDA_1 = pin.P2_11 # P2_11 data signal -SCL_1 = pin.P2_9 # P2_9 clock signal +SDA_1 = pin.P2_11 # data signal +SCL_1 = pin.P2_9 # clock signal # for example compatibility we create a alias SDA = SDA_1 SCL = SCL_1 +# I2C1 standard aliases for peripheral interface compatibility +I2C1_SDA = SDA_1 +I2C1_SCL = SCL_1 + # I2C2 pins -SDA_2 = pin.P1_26 # P1_26 data signal -SCL_2 = pin.P1_28 # P1_28 clock signal +SDA_2 = pin.P1_26 # data signal +SCL_2 = pin.P1_28 # clock signal + +# I2C2 standard aliases for peripheral interface compatibility +I2C2_SDA = SDA_2 +I2C2_SCL = SCL_2 # SPI0 pins -CE0 = pin.P1_6 # P1_6 - enables peripheral device -SCLK = pin.P1_12 # P1_12 - outputs data to peripheral device -MOSI = pin.P1_10 # P1_10 - receives data from peripheral device -MISO = pin.P1_8 # P1_8 - outputs clock signal +CE0 = pin.P1_6 # chip select (enables peripheral device) +SCLK = pin.P1_8 # serial clock signal +MOSI = pin.P1_12 # master out, slave in (data to peripheral) +MISO = pin.P1_10 # master in, slave out (data from peripheral) # CircuitPython naming convention for SPI Clock SCK = SCLK +# SPI0 standard aliases for peripheral interface compatibility +SPI0_CS0 = CE0 +SPI0_SCLK = SCLK +SPI0_D1 = MOSI # D1 = Data Out = MOSI +SPI0_D0 = MISO # D0 = Data In = MISO + # SPI1 pins -CE0_1 = pin.P2_31 # P2_31 - enables peripheral device -SCLK_1 = pin.P2_25 # P2_25 - outputs data to peripheral device -MOSI_1 = pin.P2_27 # P2_27 - receives data from peripheral device -MISO_1 = pin.P2_29 # P2_29 - outputs clock signal +CE0_1 = pin.P2_31 # chip select (enables peripheral device) +SCLK_1 = pin.P2_29 # serial clock signal +MOSI_1 = pin.P2_25 # master out, slave in (data to peripheral) +MISO_1 = pin.P2_27 # master in, slave out (data from peripheral) # CircuitPython naming convention for SPI Clock SCK_1 = SCLK_1 +# SPI1 standard aliases for peripheral interface compatibility +SPI1_CS0 = CE0_1 +SPI1_SCLK = SCLK_1 +SPI1_D1 = MOSI_1 # D1 = Data Out = MOSI +SPI1_D0 = MISO_1 # D0 = Data In = MISO + # UART0 -TX_0 = pin.P1_30 # P1_30 -RX_0 = pin.P1_32 # P1_32 +TX_0 = pin.P1_30 +RX_0 = pin.P1_32 # create alias for most of the examples TX = TX_0 RX = RX_0 +# UART0 standard aliases for peripheral interface compatibility +UART0_TXD = TX_0 +UART0_RXD = RX_0 + # UART2 # pins already in use by SPI0 # TX_2 = pin.UART2_TXD # P1_8 # RX_2 = pin.UART2_RXD # P1_10 # UART4 -TX_4 = pin.P2_7 # P2_7 -RX_4 = pin.P2_5 # P2_5 +TX_4 = pin.P2_7 +RX_4 = pin.P2_5 + +# UART4 standard aliases for peripheral interface compatibility +UART4_TXD = TX_4 +UART4_RXD = RX_4 + +# Peripheral port configurations for PocketBeagle +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ( + (0, SPI0_SCLK, SPI0_D1, SPI0_D0), + (1, SPI1_SCLK, SPI1_D1, SPI1_D0), +) + +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (1, I2C1_SCL, I2C1_SDA), + (2, I2C2_SCL, I2C2_SDA), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + (0, UART0_TXD, UART0_RXD), + (4, UART4_TXD, UART4_RXD), +) diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 7c1e827e..8976bda1 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -6,9 +6,6 @@ from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin -# names in comments copied from -# https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/source/common.c#L73 - # PocketBeagle # P1_1 = SYS VIN # VIN_AC P1_2 = Pin((2, 23)) # GPIO2_23 - GPIO_87 @@ -193,106 +190,6 @@ ########################################## # specials -# analog input -# AIN0 = Pin("AIN0") -# AIN1 = Pin("AIN1") -# AIN2 = Pin("AIN2") -# AIN3 = Pin("AIN3") -# AIN4 = Pin("AIN4") -# AIN5 = Pin("AIN5") -# AIN6 = Pin("AIN6") -# AIN7 = Pin("AIN7") - -# PWM -# EHRPWM0A = Pin("EHRPWM0A") -# EHRPWM0B = Pin("EHRPWM0B") -EHRPWM1A = P9_14 -EHRPWM1B = P9_16 -EHRPWM2A = P8_19 -EHRPWM2B = P8_13 -# ECAPPWM0 = Pin("ECAPPWM0") -# ECAPPWM2 = Pin("ECAPPWM2") -TIMER4 = P8_7 -TIMER5 = P8_9 -TIMER6 = P8_10 -TIMER7 = P8_8 - - -# I2C1 -I2C1_SDA = P2_11 -I2C1_SCL = P2_9 - -# I2C2 -I2C2_SDA = P1_26 -I2C2_SCL = P1_28 - -# SPI0 -SPI0_CS0 = P9_17 -SPI0_SCLK = P9_22 -SPI0_D1 = P9_18 -SPI0_D0 = P9_22 - -# SPI1 -SPI1_CS0 = P9_28 -SPI1_CS1 = P2_31 -SPI1_SCLK = P2_29 -SPI1_D1 = P2_25 -SPI1_D0 = P2_27 - -# UART0 -UART0_TXD = P1_30 -UART0_RXD = P1_32 - -# UART1 -UART1_TXD = P9_24 -UART1_RXD = P9_26 -# UART1_RTSn = Pin("UART1_RTSn") -# UART1_CTSn = Pin("UART1_CTSn") - -# UART2 -UART2_TXD = P9_21 -UART2_RXD = P9_22 - -# UART3 -# UART3_TXD = Pin("UART3_TXD") -# UART3_RXD = Pin("UART3_RXD") -UART3_RTSn = P8_34 -UART3_CTSn = P8_36 - -# UART4 -UART4_TXD = P9_13 -UART4_RXD = P9_11 -UART4_RTSn = P8_33 -UART4_CTSn = P8_35 - -# UART5 -UART5_TXD = P8_37 -UART5_RXD = P8_38 -UART5_RTSn = P8_32 -UART5_CTSn = P8_31 - - -# ordered as spiId, sckId, mosiId, misoId -spiPorts = ( - (0, SPI0_SCLK, SPI0_D1, SPI0_D0), - (1, SPI1_SCLK, SPI1_D1, SPI1_D0), -) - -# ordered as uartId, txId, rxId -uartPorts = ( - # (0, UART0_TXD, UART0_RXD), - # (1, UART1_TXD, UART1_RXD), - # (2, UART2_TXD, UART2_RXD), - # (4, UART4_TXD, UART4_RXD), - # (5, UART5_TXD, UART5_RXD), -) - -# ordered as i2cId, SCL, SDA -i2cPorts = ( - (1, I2C1_SCL, I2C1_SDA), - (2, I2C2_SCL, I2C2_SDA), -) - PWM1 = P1_36 PWM2 = P1_33 PWM3 = P2_1 From 97f678499612e3472a168821a4a3a47b51ba3d88 Mon Sep 17 00:00:00 2001 From: Tomasz Chalupnik Date: Thu, 2 Oct 2025 13:59:08 +0200 Subject: [PATCH 6/9] Black fix --- src/adafruit_blinka/board/beagleboard/beaglebone_black.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index 120f148f..e0c34d28 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -211,10 +211,8 @@ (1, SPI1_SCLK, SPI1_D1, SPI1_D0), ) -# ordered as i2cId, SCL, SDA -i2cPorts = ( - (2, I2C2_SCL, I2C2_SDA), -) +# ordered as i2cId, SCL, SDA +i2cPorts = ((2, I2C2_SCL, I2C2_SDA),) # ordered as uartId, txId, rxId uartPorts = ( From 876eb64e897d3b96d172379b558bd8af16ed350a Mon Sep 17 00:00:00 2001 From: Tomasz Chalupnik Date: Thu, 2 Oct 2025 15:22:46 +0200 Subject: [PATCH 7/9] Black fix: Line size --- src/adafruit_blinka/board/beagleboard/beaglebone_blue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py index 8f42bf68..51ef65f1 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_blue.py @@ -11,6 +11,6 @@ LED_USR3 = pin.USR3 -# Reference: https://git.beagleboard.org/beagleboard/beaglebone-blue/-/blob/master/BeagleBone_Blue_Pin_Table.csv +# Ref: https://git.beagleboard.org/beagleboard/beaglebone-blue/-/blob/master/BeagleBone_Blue_Pin_Table.csv SDA = pin.P8_17 # I2C1_SDA SCL = pin.P8_18 # I2C1_SCL From d6a23c22a8d57721c910f3be06854dbe6b8565af Mon Sep 17 00:00:00 2001 From: Tomasz Chalupnik Date: Fri, 3 Oct 2025 00:24:48 +0200 Subject: [PATCH 8/9] Revert some fields from pin.py --- .../board/beagleboard/beaglebone_black.py | 6 +- .../microcontroller/am335x/pin.py | 348 +++++++++++------- 2 files changed, 228 insertions(+), 126 deletions(-) diff --git a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py index e0c34d28..120f148f 100644 --- a/src/adafruit_blinka/board/beagleboard/beaglebone_black.py +++ b/src/adafruit_blinka/board/beagleboard/beaglebone_black.py @@ -211,8 +211,10 @@ (1, SPI1_SCLK, SPI1_D1, SPI1_D0), ) -# ordered as i2cId, SCL, SDA -i2cPorts = ((2, I2C2_SCL, I2C2_SDA),) +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (2, I2C2_SCL, I2C2_SDA), +) # ordered as uartId, txId, rxId uartPorts = ( diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 8976bda1..55d005e1 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -8,128 +8,128 @@ # PocketBeagle # P1_1 = SYS VIN # VIN_AC -P1_2 = Pin((2, 23)) # GPIO2_23 - GPIO_87 -P1_3 = Pin((0, 0)) # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) -P1_4 = Pin((2, 25)) # GPIO2_25 - GPIO_89 +P1_2 = Pin((1, 23)) # GPIO2_23 - GPIO_87 +P1_3 = Pin((3, 0)) # USB1_VBUS_OUT - (silkscreen: USB1 V_EN) +P1_4 = Pin((1, 25)) # GPIO2_25 - GPIO_89 # P1_5 = USB VBUS # USB1_VBUS_IN -P1_6 = Pin((0, 5)) # SPI0_CS0 - GPIO_5 +P1_6 = Pin((3, 5)) # SPI0_CS0 - GPIO_5 # P1_7 = USB VIN # VIN-USB -P1_8 = Pin((0, 2)) # SPI0_SCLK - GPIO_2 +P1_8 = Pin((3, 2)) # SPI0_SCLK - GPIO_2 # P1_9 = USB1 DN # USB1-DN -P1_10 = Pin((0, 3)) # SPI0_D0 - GPIO_3 +P1_10 = Pin((3, 3)) # SPI0_D0 - GPIO_3 # P1_11 = USB1 DP # USB1-DP -P1_12 = Pin((0, 4)) # SPI0_D1 - GPIO_4 +P1_12 = Pin((3, 4)) # SPI0_D1 - GPIO_4 # P1_13 = USB1 ID # USB1-ID # P1_14 = SYS 3.3V # VOUT-3.3V # P1_15 = SYS GND # GND # P1_16 = SYS GND # GND # P1_17 = AIN 1.8V REF- # VREFN # P1_18 = AIN 1.8V REF+ # VREFP -P1_19 = Pin((0, 0)) # AIN0 -P1_20 = Pin((0, 20)) # GPIO0_20 - GPIO_20 -P1_21 = Pin((0, 0)) # AIN1 +P1_19 = Pin((3, 0)) # AIN0 +P1_20 = Pin((3, 20)) # GPIO0_20 - GPIO_20 +P1_21 = Pin((3, 0)) # AIN1 # P1_22 = SYS GND # GND -P1_23 = Pin((0, 0)) # AIN2 +P1_23 = Pin((3, 0)) # AIN2 # P1_22 = SYS VOUT # VOUT-5V -P1_25 = Pin((0, 0)) # AIN3 -P1_26 = Pin((0, 12)) # I2C2_SDA - GPIO_12 -P1_27 = Pin((0, 0)) # AIN4 -P1_28 = Pin((0, 13)) # I2C2_SCL - GPIO_13 -P1_29 = Pin((3, 21)) # GPIO3_21 - GPIO_117 -P1_30 = Pin((1, 11)) # UART0_TXD - GPIO_43 -P1_31 = Pin((3, 18)) # GPIO3_18 - GPIO_114 -P1_32 = Pin((1, 10)) # UART0_RXD - GPIO_42 -P1_33 = Pin((3, 15)) # GPIO3_15 - GPIO_111 -P1_34 = Pin((0, 26)) # GPIO0_26 - GPIO_26 -P1_35 = Pin((2, 24)) # GPIO2_24 - GPIO_88 -P1_36 = Pin((3, 14)) # EHRPWM0A - GPIO_110 - - -P2_1 = Pin((1, 18)) # EHRPWM1A - GPIO_50 -P2_2 = Pin((1, 27)) # GPIO1_27 - GPIO_59 -P2_3 = Pin((0, 23)) # GPIO0_23 - GPIO_23 -P2_4 = Pin((1, 26)) # GPIO1_26 - GPIO_58 -P2_5 = Pin((0, 30)) # UART4_RXD - GPIO_30 -P2_6 = Pin((1, 25)) # GPIO1_25 - GPIO_57 -P2_7 = Pin((0, 31)) # UART4_TXD - GPIO_31 -P2_8 = Pin((1, 28)) # GPIO1_28 - GPIO_60 -P2_9 = Pin((0, 15)) # I2C1_SCL - GPIO_15 -P2_10 = Pin((1, 20)) # GPIO1_20 - GPIO_52 -P2_11 = Pin((0, 14)) # I2C1_SDA - GPIO_14 +P1_25 = Pin((3, 0)) # AIN3 +P1_26 = Pin((3, 12)) # I2C2_SDA - GPIO_12 +P1_27 = Pin((3, 0)) # AIN4 +P1_28 = Pin((3, 13)) # I2C2_SCL - GPIO_13 +P1_29 = Pin((2, 21)) # GPIO3_21 - GPIO_117 +P1_30 = Pin((0, 11)) # UART0_TXD - GPIO_43 +P1_31 = Pin((2, 18)) # GPIO3_18 - GPIO_114 +P1_32 = Pin((0, 10)) # UART0_RXD - GPIO_42 +P1_33 = Pin((2, 15)) # GPIO3_15 - GPIO_111 +P1_34 = Pin((3, 26)) # GPIO0_26 - GPIO_26 +P1_35 = Pin((1, 24)) # GPIO2_24 - GPIO_88 +P1_36 = Pin((2, 14)) # EHRPWM0A - GPIO_110 + + +P2_1 = Pin((0, 18)) # EHRPWM1A - GPIO_50 +P2_2 = Pin((0, 27)) # GPIO1_27 - GPIO_59 +P2_3 = Pin((3, 23)) # GPIO0_23 - GPIO_23 +P2_4 = Pin((0, 26)) # GPIO1_26 - GPIO_58 +P2_5 = Pin((3, 30)) # UART4_RXD - GPIO_30 +P2_6 = Pin((0, 25)) # GPIO1_25 - GPIO_57 +P2_7 = Pin((3, 31)) # UART4_TXD - GPIO_31 +P2_8 = Pin((0, 28)) # GPIO1_28 - GPIO_60 +P2_9 = Pin((3, 15)) # I2C1_SCL - GPIO_15 +P2_10 = Pin((0, 20)) # GPIO1_20 - GPIO_52 +P2_11 = Pin((3, 14)) # I2C1_SDA - GPIO_14 # P2_12 = SYS PWR BTN # POWER_BUTTON # P2_13 = SYS VOUT # VOUT-5V # P2_14 = BAT VIN # BAT-VIN # P2_15 = SYS GND # GND # P2_16 = BAT TEMP # BAT-TEMP -P2_17 = Pin((2, 1)) # GPIO2_1 - GPIO_65 -P2_18 = Pin((1, 15)) # GPIO1_15 - GPIO_47 -P2_19 = Pin((0, 27)) # GPIO0_27 - GPIO_27 -P2_20 = Pin((2, 0)) # GPIO2_0 - GPIO_64 +P2_17 = Pin((1, 1)) # GPIO2_1 - GPIO_65 +P2_18 = Pin((0, 15)) # GPIO1_15 - GPIO_47 +P2_19 = Pin((3, 27)) # GPIO0_27 - GPIO_27 +P2_20 = Pin((1, 0)) # GPIO2_0 - GPIO_64 # P2_21 = SYS GND # GND -P2_22 = Pin((1, 14)) # GPIO1_14 - GPIO_46 +P2_22 = Pin((0, 14)) # GPIO1_14 - GPIO_46 # P2_23 = SYS 3.3V # VOUT-3.3V -P2_24 = Pin((1, 12)) # GPIO1_12 - GPIO_44 -P2_25 = Pin((1, 9)) # SPI1_D1 - GPIO_41 +P2_24 = Pin((0, 12)) # GPIO1_12 - GPIO_44 +P2_25 = Pin((0, 9)) # SPI1_D1 - GPIO_41 # P2_26 = SYS NRST # RESET# -P2_27 = Pin((1, 8)) # SPI1_D0 - GPIO_40 -P2_28 = Pin((3, 20)) # GPIO3_20 - GPIO_116 -P2_29 = Pin((0, 7)) # SPI1_SCLK - GPIO_7 -P2_30 = Pin((3, 17)) # GPIO3_17 - GPIO_113 -P2_31 = Pin((0, 19)) # SPI1_CS1 - GPIO_19 -P2_32 = Pin((3, 16)) # GPIO3_16 - GPIO_112 -P2_33 = Pin((1, 13)) # GPIO1_13 - GPIO_45 -P2_34 = Pin((3, 19)) # GPIO3_19 - GPIO_115 -P2_35 = Pin((2, 22)) # GPIO2_22 - GPIO_86 -P2_36 = Pin((0, 0)) # AIN7 +P2_27 = Pin((0, 8)) # SPI1_D0 - GPIO_40 +P2_28 = Pin((2, 20)) # GPIO3_20 - GPIO_116 +P2_29 = Pin((3, 7)) # SPI1_SCLK - GPIO_7 +P2_30 = Pin((2, 17)) # GPIO3_17 - GPIO_113 +P2_31 = Pin((3, 19)) # SPI1_CS1 - GPIO_19 +P2_32 = Pin((2, 16)) # GPIO3_16 - GPIO_112 +P2_33 = Pin((0, 13)) # GPIO1_13 - GPIO_45 +P2_34 = Pin((2, 19)) # GPIO3_19 - GPIO_115 +P2_35 = Pin((1, 22)) # GPIO2_22 - GPIO_86 +P2_36 = Pin((3, 0)) # AIN7 # BeagleBone Black # P8_1 = DGND # DGND - GPIO_0 # P8_2 = DGND # DGND - GPIO_0 -P8_3 = Pin((1, 6)) # GPIO1_6 - GPIO_38 -P8_4 = Pin((1, 7)) # GPIO1_7 - GPIO_39 -P8_5 = Pin((1, 2)) # GPIO1_2 - GPIO_34 -P8_6 = Pin((1, 3)) # GPIO1_3 - GPIO_35 -P8_7 = Pin((2, 2)) # TIMER4 - GPIO_66 -P8_8 = Pin((2, 3)) # TIMER7 - GPIO_67 -P8_9 = Pin((2, 5)) # TIMER5 - GPIO_69 -P8_10 = Pin((2, 4)) # TIMER6 - GPIO_68 -P8_11 = Pin((1, 13)) # GPIO1_13 - GPIO_45 -P8_12 = Pin((1, 12)) # GPIO1_12 - GPIO_44 -P8_13 = Pin((0, 23)) # EHRPWM2B - GPIO_23 -P8_14 = Pin((0, 26)) # GPIO0_26 - GPIO_26 -P8_15 = Pin((1, 15)) # GPIO1_15 - GPIO_47 -P8_16 = Pin((1, 14)) # GPIO1_14 - GPIO_46 -P8_17 = Pin((0, 27)) # GPIO0_27 - GPIO_27 -P8_18 = Pin((2, 1)) # GPIO2_1 - GPIO_65 -P8_19 = Pin((0, 22)) # EHRPWM2A - GPIO_22 -P8_20 = Pin((1, 31)) # GPIO1_31 - GPIO_63 -P8_21 = Pin((1, 30)) # GPIO1_30 - GPIO_62 -P8_22 = Pin((1, 5)) # GPIO1_5 - GPIO_37 -P8_23 = Pin((1, 4)) # GPIO1_4 - GPIO_36 -P8_24 = Pin((1, 1)) # GPIO1_1 - GPIO_33 -P8_25 = Pin((1, 0)) # GPIO1_0 - GPIO_32 -P8_26 = Pin((1, 29)) # GPIO1_29 - GPIO_61 -P8_27 = Pin((2, 22)) # GPIO2_22 - GPIO_86 -P8_28 = Pin((2, 24)) # GPIO2_24 - GPIO_88 -P8_29 = Pin((2, 23)) # GPIO2_23 - GPIO_87 -P8_30 = Pin((2, 25)) # GPIO2_25 - GPIO_89 -P8_31 = Pin((0, 10)) # UART5_CTSN - GPIO_10 -P8_32 = Pin((0, 11)) # UART5_RTSN - GPIO_11 -P8_33 = Pin((0, 9)) # UART4_RTSN - GPIO_9 -P8_34 = Pin((2, 17)) # UART3_RTSN - GPIO_81 -P8_35 = Pin((0, 8)) # UART4_CTSN - GPIO_8 -P8_36 = Pin((2, 16)) # UART3_CTSN - GPIO_80 -P8_37 = Pin((2, 14)) # UART5_TXD - GPIO_78 -P8_38 = Pin((2, 15)) # UART5_RXD - GPIO_79 -P8_39 = Pin((2, 12)) # GPIO2_12 - GPIO_76 -P8_40 = Pin((2, 13)) # GPIO2_13 - GPIO_77 -P8_41 = Pin((2, 10)) # GPIO2_10 - GPIO_74 -P8_42 = Pin((2, 11)) # GPIO2_11 - GPIO_75 -P8_43 = Pin((2, 8)) # GPIO2_8 - GPIO_72 -P8_44 = Pin((2, 9)) # GPIO2_9 - GPIO_73 -P8_45 = Pin((2, 6)) # GPIO2_6 - GPIO_70 -P8_46 = Pin((2, 7)) # GPIO2_7 - GPIO_71 +P8_3 = Pin((0, 6)) # GPIO1_6 - GPIO_38 +P8_4 = Pin((0, 7)) # GPIO1_7 - GPIO_39 +P8_5 = Pin((0, 2)) # GPIO1_2 - GPIO_34 +P8_6 = Pin((0, 3)) # GPIO1_3 - GPIO_35 +P8_7 = Pin((1, 2)) # TIMER4 - GPIO_66 +P8_8 = Pin((1, 3)) # TIMER7 - GPIO_67 +P8_9 = Pin((1, 5)) # TIMER5 - GPIO_69 +P8_10 = Pin((1, 4)) # TIMER6 - GPIO_68 +P8_11 = Pin((0, 13)) # GPIO1_13 - GPIO_45 +P8_12 = Pin((0, 12)) # GPIO1_12 - GPIO_44 +P8_13 = Pin((3, 23)) # EHRPWM2B - GPIO_23 +P8_14 = Pin((3, 26)) # GPIO0_26 - GPIO_26 +P8_15 = Pin((0, 15)) # GPIO1_15 - GPIO_47 +P8_16 = Pin((0, 14)) # GPIO1_14 - GPIO_46 +P8_17 = Pin((3, 27)) # GPIO0_27 - GPIO_27 +P8_18 = Pin((1, 1)) # GPIO2_1 - GPIO_65 +P8_19 = Pin((3, 22)) # EHRPWM2A - GPIO_22 +P8_20 = Pin((0, 31)) # GPIO1_31 - GPIO_63 +P8_21 = Pin((0, 30)) # GPIO1_30 - GPIO_62 +P8_22 = Pin((0, 5)) # GPIO1_5 - GPIO_37 +P8_23 = Pin((0, 4)) # GPIO1_4 - GPIO_36 +P8_24 = Pin((0, 1)) # GPIO1_1 - GPIO_33 +P8_25 = Pin((0, 0)) # GPIO1_0 - GPIO_32 +P8_26 = Pin((0, 29)) # GPIO1_29 - GPIO_61 +P8_27 = Pin((1, 22)) # GPIO2_22 - GPIO_86 +P8_28 = Pin((1, 24)) # GPIO2_24 - GPIO_88 +P8_29 = Pin((1, 23)) # GPIO2_23 - GPIO_87 +P8_30 = Pin((1, 25)) # GPIO2_25 - GPIO_89 +P8_31 = Pin((3, 10)) # UART5_CTSN - GPIO_10 +P8_32 = Pin((3, 11)) # UART5_RTSN - GPIO_11 +P8_33 = Pin((3, 9)) # UART4_RTSN - GPIO_9 +P8_34 = Pin((1, 17)) # UART3_RTSN - GPIO_81 +P8_35 = Pin((3, 8)) # UART4_CTSN - GPIO_8 +P8_36 = Pin((1, 16)) # UART3_CTSN - GPIO_80 +P8_37 = Pin((1, 14)) # UART5_TXD - GPIO_78 +P8_38 = Pin((1, 15)) # UART5_RXD - GPIO_79 +P8_39 = Pin((1, 12)) # GPIO2_12 - GPIO_76 +P8_40 = Pin((1, 13)) # GPIO2_13 - GPIO_77 +P8_41 = Pin((1, 10)) # GPIO2_10 - GPIO_74 +P8_42 = Pin((1, 11)) # GPIO2_11 - GPIO_75 +P8_43 = Pin((1, 8)) # GPIO2_8 - GPIO_72 +P8_44 = Pin((1, 9)) # GPIO2_9 - GPIO_73 +P8_45 = Pin((1, 6)) # GPIO2_6 - GPIO_70 +P8_46 = Pin((1, 7)) # GPIO2_7 - GPIO_71 # P9_1 = DGND # DGND - GPIO_0 # P9_2 = DGND # DGND - GPIO_0 @@ -141,27 +141,27 @@ # P9_8 = SYS_5V # SYS_5V - GPIO_0 # P9_9 = PWR_BUT # PWR_BUT - GPIO_0 # P9_10 = SYS_RESETN # SYS_RESETn - GPIO_0 -P9_11 = Pin((0, 30)) # GPIO0_30 - GPIO_30 -P9_12 = Pin((1, 28)) # GPIO1_28 - GPIO_60 -P9_13 = Pin((0, 31)) # GPIO0_31 - GPIO_31 -P9_14 = Pin((1, 18)) # GPIO1_18 - GPIO_50 -P9_15 = Pin((1, 16)) # GPIO1_16 - GPIO_48 -P9_16 = Pin((1, 19)) # GPIO1_19 - GPIO_51 -P9_17 = Pin((0, 5)) # GPIO0_5 - GPIO_5 -P9_18 = Pin((0, 4)) # GPIO0_4 - GPIO_4 -P9_19 = Pin((0, 13)) # GPIO0_13 - GPIO_13 -P9_20 = Pin((0, 12)) # GPIO0_12 - GPIO_12 -P9_21 = Pin((0, 3)) # GPIO0_3 - GPIO_3 -P9_22 = Pin((0, 2)) # GPIO0_2 - GPIO_2 -P9_23 = Pin((1, 17)) # GPIO1_17 - GPIO_49 -P9_24 = Pin((0, 15)) # GPIO0_15 - GPIO_15 -P9_25 = Pin((3, 21)) # GPIO3_21 - GPIO_117 -P9_26 = Pin((0, 14)) # GPIO0_14 - GPIO_14 -P9_27 = Pin((3, 19)) # GPIO3_19 - GPIO_115 -P9_28 = Pin((3, 17)) # GPIO3_17 - GPIO_113 -P9_29 = Pin((3, 15)) # GPIO3_15 - GPIO_111 -P9_30 = Pin((3, 16)) # GPIO3_16 - GPIO_112 -P9_31 = Pin((3, 14)) # GPIO3_14 - GPIO_110 +P9_11 = Pin((3, 30)) # GPIO0_30 - GPIO_30 +P9_12 = Pin((0, 28)) # GPIO1_28 - GPIO_60 +P9_13 = Pin((3, 31)) # GPIO0_31 - GPIO_31 +P9_14 = Pin((0, 18)) # GPIO1_18 - GPIO_50 +P9_15 = Pin((0, 16)) # GPIO1_16 - GPIO_48 +P9_16 = Pin((0, 19)) # GPIO1_19 - GPIO_51 +P9_17 = Pin((3, 5)) # GPIO0_5 - GPIO_5 +P9_18 = Pin((3, 4)) # GPIO0_4 - GPIO_4 +P9_19 = Pin((3, 13)) # GPIO0_13 - GPIO_13 +P9_20 = Pin((3, 12)) # GPIO0_12 - GPIO_12 +P9_21 = Pin((3, 3)) # GPIO0_3 - GPIO_3 +P9_22 = Pin((3, 2)) # GPIO0_2 - GPIO_2 +P9_23 = Pin((0, 17)) # GPIO1_17 - GPIO_49 +P9_24 = Pin((3, 15)) # GPIO0_15 - GPIO_15 +P9_25 = Pin((2, 21)) # GPIO3_21 - GPIO_117 +P9_26 = Pin((3, 14)) # GPIO0_14 - GPIO_14 +P9_27 = Pin((2, 19)) # GPIO3_19 - GPIO_115 +P9_28 = Pin((2, 17)) # GPIO3_17 - GPIO_113 +P9_29 = Pin((2, 15)) # GPIO3_15 - GPIO_111 +P9_30 = Pin((2, 16)) # GPIO3_16 - GPIO_112 +P9_31 = Pin((2, 14)) # GPIO3_14 - GPIO_110 # P9_32 = VDD_ADC # VDD_ADC - GPIO_0 # P9_33 = AIN4 # AIN4 - GPIO_0 # P9_34 = GNDA_ADC # GNDA_ADC - GPIO_0 @@ -171,8 +171,8 @@ # P9_38 = AIN3 # AIN3 - GPIO_0 # P9_39 = AIN0 # AIN0 - GPIO_0 # P9_40 = AIN1 # AIN1 - GPIO_0 -P9_41 = Pin((0, 20)) # GPIO0_20 - GPIO_20 -P9_42 = Pin((0, 7)) # GPIO0_7 - GPIO_7 +P9_41 = Pin((3, 20)) # GPIO0_20 - GPIO_20 +P9_42 = Pin((3, 7)) # GPIO0_7 - GPIO_7 # P9_43 = DGND # DGND - GPIO_0 # P9_44 = DGND # DGND - GPIO_0 # P9_45 = DGND # DGND - GPIO_0 @@ -181,15 +181,115 @@ ########################################## # common to all beagles -USR0 = Pin((1, 21)) # USR0 - GPIO_53 -USR1 = Pin((1, 22)) # USR1 - GPIO_54 -USR2 = Pin((1, 23)) # USR2 - GPIO_55 -USR3 = Pin((1, 24)) # USR3 - GPIO_56 +USR0 = Pin((0, 21)) # USR0 - GPIO_53 +USR1 = Pin((0, 22)) # USR1 - GPIO_54 +USR2 = Pin((0, 23)) # USR2 - GPIO_55 +USR3 = Pin((0, 24)) # USR3 - GPIO_56 ########################################## # specials +# analog input +# AIN0 = Pin("AIN0") +# AIN1 = Pin("AIN1") +# AIN2 = Pin("AIN2") +# AIN3 = Pin("AIN3") +# AIN4 = Pin("AIN4") +# AIN5 = Pin("AIN5") +# AIN6 = Pin("AIN6") +# AIN7 = Pin("AIN7") + +# PWM +EHRPWM0A = Pin("EHRPWM0A") +EHRPWM0B = Pin("EHRPWM0B") +EHRPWM1A = Pin("EHRPWM1A") +EHRPWM1B = Pin("EHRPWM1B") +EHRPWM2A = Pin("EHRPWM2A") +EHRPWM2B = Pin("EHRPWM2B") +ECAPPWM0 = Pin("ECAPPWM0") +ECAPPWM2 = Pin("ECAPPWM2") +TIMER4 = Pin("TIMER4") +TIMER5 = Pin("TIMER5") +TIMER6 = Pin("TIMER6") +TIMER7 = Pin("TIMER7") + + +# I2C1 +I2C1_SDA = P2_11 +I2C1_SCL = P2_9 + +# I2C2 +I2C2_SDA = P1_26 +I2C2_SCL = P1_28 + +# SPI0 +SPI0_CS0 = P1_6 +SPI0_SCLK = P1_8 +SPI0_D1 = P1_12 +SPI0_D0 = P1_10 + +# SPI1 +SPI1_CS0 = None # Not defined in header +SPI1_CS1 = P2_31 +SPI1_SCLK = P2_29 +SPI1_D1 = P2_25 +SPI1_D0 = P2_27 + +# UART0 +UART0_TXD = P1_30 +UART0_RXD = P1_32 + +# UART1 +UART1_TXD = None # Not defined in header +UART1_RXD = None # Not defined in header +UART1_RTSn = None # Not defined in header +UART1_CTSn = None # Not defined in header + +# UART2 +UART2_TXD = None # Not defined in header +UART2_RXD = None # Not defined in header + +# UART3 +UART3_TXD = None # Not defined in header +UART3_RXD = None # Not defined in header +UART3_RTSn = P8_34 +UART3_CTSn = P8_36 + +# UART4 +UART4_TXD = P2_7 +UART4_RXD = P2_5 +UART4_RTSn = P8_33 +UART4_CTSn = P8_35 + +# UART5 +UART5_TXD = P8_37 +UART5_RXD = P8_38 +UART5_RTSn = P8_32 +UART5_CTSn = P8_31 + + +# ordered as spiId, sckId, mosiId, misoId +spiPorts = ( + (0, SPI0_SCLK, SPI0_D1, SPI0_D0), + (1, SPI1_SCLK, SPI1_D1, SPI1_D0), +) + +# ordered as uartId, txId, rxId +uartPorts = ( + # (0, UART0_TXD, UART0_RXD), + # (1, UART1_TXD, UART1_RXD), + # (2, UART2_TXD, UART2_RXD), + # (4, UART4_TXD, UART4_RXD), + # (5, UART5_TXD, UART5_RXD), +) + +# ordered as i2cId, SCL, SDA +i2cPorts = ( + (1, I2C1_SCL, I2C1_SDA), + (2, I2C2_SCL, I2C2_SDA), +) + PWM1 = P1_36 PWM2 = P1_33 PWM3 = P2_1 From 36885479b22d0f705b3833ac20af3c631fc8a39c Mon Sep 17 00:00:00 2001 From: Tomasz Chalupnik Date: Fri, 3 Oct 2025 00:28:47 +0200 Subject: [PATCH 9/9] Revert some fields from pin.py --- .../microcontroller/am335x/pin.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/adafruit_blinka/microcontroller/am335x/pin.py b/src/adafruit_blinka/microcontroller/am335x/pin.py index 55d005e1..288ef3bb 100644 --- a/src/adafruit_blinka/microcontroller/am335x/pin.py +++ b/src/adafruit_blinka/microcontroller/am335x/pin.py @@ -201,18 +201,18 @@ # AIN7 = Pin("AIN7") # PWM -EHRPWM0A = Pin("EHRPWM0A") -EHRPWM0B = Pin("EHRPWM0B") -EHRPWM1A = Pin("EHRPWM1A") -EHRPWM1B = Pin("EHRPWM1B") -EHRPWM2A = Pin("EHRPWM2A") -EHRPWM2B = Pin("EHRPWM2B") -ECAPPWM0 = Pin("ECAPPWM0") -ECAPPWM2 = Pin("ECAPPWM2") -TIMER4 = Pin("TIMER4") -TIMER5 = Pin("TIMER5") -TIMER6 = Pin("TIMER6") -TIMER7 = Pin("TIMER7") +# EHRPWM0A = Pin("EHRPWM0A") +# EHRPWM0B = Pin("EHRPWM0B") +# EHRPWM1A = Pin("EHRPWM1A") +# EHRPWM1B = Pin("EHRPWM1B") +# EHRPWM2A = Pin("EHRPWM2A") +# EHRPWM2B = Pin("EHRPWM2B") +# ECAPPWM0 = Pin("ECAPPWM0") +# ECAPPWM2 = Pin("ECAPPWM2") +# TIMER4 = Pin("TIMER4") +# TIMER5 = Pin("TIMER5") +# TIMER6 = Pin("TIMER6") +# TIMER7 = Pin("TIMER7") # I2C1