# SCLK_1 = pin.D21
# SCK_1 = pin.D21
-SDA = pin.SDA
-SCL = pin.SCL
+SDA = pin.P9_19
+SCL = pin.P9_20
# Refer to header default pin modes
# http://beagleboard.org/static/images/cape-headers.png
+#
# P9_17 (SPI0_CSO => CE0) enables peripheral device
# P9_18 (SPI0_D1 => MOSI) outputs data to peripheral device
# P9_21 (SPIO_DO => MISO) receives data from peripheral device
# P9_22 (SPI0_SCLK => SCLK) outputs clock signal
-CE0 = pin.CE0
-MOSI = pin.MOSI
-MISO = pin.MISO
-SCLK = pin.SCLK
-#CircuitPython naming convention for SPI Clock
-SCK = pin.SCK
+#
+# Use config-pin to set pin mode for SPI pins
+# https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io
+# config-pin p9.17 spi_cs
+# config-pin p9.18 spi
+# config-pin p9.21 spi
+# config-pin p9.22 spi_sclk
+#
+CE0 = pin.P9_17
+MOSI = pin.P9_18
+MISO = pin.P9_21
+SCLK = pin.P9_22
+# CircuitPython naming convention for SPI Clock
+SCK = SCLK
-# SPI1 pins
+# Pins for SPI1
+# refer to:
# http://beagleboard.org/static/images/cape-headers-spi.png
-CE1 = pin.CE1
-MOSI_1 = pin.MOSI_1
-MISO_1 = pin.MISO_1
-SCLK_1 = pin.SCLK_1
-#CircuitPython naming convention for SPI Clock
-SCK_1 = pin.SCK_1
+#
+# CE1 P9.28 SPI1_CS0
+# MISO_1 P9.29 SPI1_D0
+# MOSI_1 P9.30 SPI1_D1
+# SCLK_1 P9.31 SPI_SCLK
+#
+# SPI1 conflicts with HDMI Audio (McASP)
+#
+# Refer to:
+# https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
+#
+# To Disable HDMI AUDIO, uncomment this line in /boot/uEnv.txt:
+# disable_uboot_overlay_audio=1
+#
+# Set pin modes for SPI1 with:
+#
+# config-pin p9.28 spi1_cs
+# config-pin p9.29 spi1
+# config-pin p9.30 spi1
+# config-pin p9.31 spi_sclk
+CE1 = pin.P9_28
+MOSI_1 = pin.P9_29
+MISO_1 = pin.P9_30
+SCLK_1 = pin.P9_31
+# CircuitPython naming convention for SPI Clock
+SCK_1 = SCLK_1
+
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+ (0, SCLK, MOSI, MISO),
+ (1, SCLK_1, MOSI_1, MISO_1)
+)
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+ (),
+)
+
+i2cPorts = (
+ (2, SCL, SDA),
+)
--- /dev/null
+"""
+Pin definitions for the Beaglebone PocketBeagle.
+
+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
+P1_2 = pin.P1_2
+P1_3 = pin.P1_3
+P1_4 = pin.P1_4
+
+P1_6 = pin.P1_6
+
+P1_8 = pin.P1_8
+
+P1_10 = pin.P1_10
+
+P1_12 = pin.P1_12
+
+P1_19 = pin.P1_19
+P1_20 = pin.P1_20
+P1_21 = pin.P1_21
+
+P1_23 = pin.P1_23
+
+P1_25 = pin.P1_25
+P1_26 = pin.P1_26
+P1_27 = pin.P1_27
+P1_28 = pin.P1_28
+P1_29 = pin.P1_29
+P1_30 = pin.P1_30
+P1_31 = pin.P1_31
+P1_32 = pin.P1_32
+P1_33 = pin.P1_33
+P1_34 = pin.P1_34
+P1_35 = pin.P1_35
+P1_36 = pin.P1_36
+
+
+P2_1 = pin.P2_1
+P2_2 = pin.P2_2
+P2_3 = pin.P2_3
+P2_4 = pin.P2_4
+P2_5 = pin.P2_5
+P2_6 = pin.P2_6
+P2_7 = pin.P2_7
+P2_8 = pin.P2_8
+P2_9 = pin.P2_9
+P2_10 = pin.P2_10
+P2_11 = pin.P2_11
+
+P2_17 = pin.P2_17
+P2_18 = pin.P2_18
+P2_19 = pin.P2_19
+P2_20 = pin.P2_20
+
+P2_22 = pin.P2_22
+
+P2_24 = pin.P2_24
+
+P2_26 = pin.P2_26
+P2_27 = pin.P2_27
+P2_28 = pin.P2_28
+P2_29 = pin.P2_29
+P2_30 = pin.P2_30
+P2_31 = pin.P2_31
+P2_32 = pin.P2_32
+P2_33 = pin.P2_33
+P2_34 = pin.P2_34
+P2_35 = pin.P2_35
+P2_36 = pin.P2_36
+
+LED_USR0 = pin.USR0
+LED_USR1 = pin.USR1
+LED_USR2 = pin.USR2
+LED_USR3 = pin.USR3
+
+##########
+# Refer to header default pin modes
+# https://raw.githubusercontent.com/wiki/beagleboard/pocketbeagle/images/PocketBeagle_pinout.png
+
+# I2C1 pins
+# P2_11 (I2C1_SDA => SDA_1) data signal
+# P2_9 (I2C1_SCL => SCL_1) clock signal
+SDA_1 = pin.P2_11
+SCL_1 = pin.P2_9
+
+# I2C2 pins
+# P1_26 (I2C2_SDA => SDA_2) data signal
+# P1_28 (I2C2_SCL => SCL_2) clock signal
+SDA_2 = pin.P1_26
+SCL_2 = pin.P1_28
+
+# SPI0 pins
+# P1_6 (SPI0_CSO => CE0) enables peripheral device
+# P1_12 (SPI0_MOSI => MOSI) outputs data to peripheral device
+# P1_10 (SPIO_MISO => MISO) receives data from peripheral device
+# P1_8 (SPI0_CLK => SCLK) outputs clock signal
+CE0 = pin.P1_6
+MOSI = pin.P1_12
+MISO = pin.P1_10
+SCLK = pin.P1_8
+# CircuitPython naming convention for SPI Clock
+SCK = SCLK
+
+# SPI1 pins
+# P2_31 (SPI1_CS1 => CE1) enables peripheral device
+# P2_25 (SPI1_MOSI => MOSI) outputs data to peripheral device
+# P2_27 (SPI1_MISO => MISO) receives data from peripheral device
+# P2_29 (SPI1_CLK => SCLK) outputs clock signal
+CE1 = pin.P2_31
+MOSI_1 = pin.P2_25
+MISO_1 = pin.P2_27
+SCLK_1 = pin.P2_29
+# CircuitPython naming convention for SPI Clock
+SCK_1 = SCLK_1
+
+
+# UART0
+TX_0 = pin.P1_30
+RX_0 = pin.P1_32
+
+TX = TX_0
+RX = RX_0
+
+
+# UART2
+# pins already in use by SPI0
+# TX_2 = pin.P1_8
+# RX_2 = pin.P1_10
+
+# UART4
+TX_4 = pin.P2_7
+RX_4 = pin.P2_5
+
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = (
+ (0, SCLK, MOSI, MISO),
+ (1, SCLK_1, MOSI_1, MISO_1),
+)
+
+# ordered as uartId, txId, rxId
+uartPorts = (
+ (0, TX_0, RX_0),
+ (4, TX_4, RX_4),
+)
+
+i2cPorts = (
+ (1, SCL_1, SDA_1),
+ (2, SCL_2, SDA_2),
+)
PULL_NONE = 0
PULL_UP = 1
PULL_DOWN = 2
-
+
id = None
_value = LOW
_mode = IN
-
+
def __init__(self, pin_name):
self.id = pin_name
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)
+ raise RuntimeError("Invalid pull for pin: %s" % self.id)
def value(self, val=None):
if val != None:
else:
return GPIO.input(self.id)
+
+# PocketBeagle
+P1_2 = Pin('P1_2')
+P1_3 = Pin('P1_3')
+P1_4 = Pin('P1_4')
+
+P1_6 = Pin('P1_6')
+
+P1_8 = Pin('P1_8')
+
+P1_10 = Pin('P1_10')
+
+P1_12 = Pin('P1_12')
+
+P1_19 = Pin('P1_19')
+P1_20 = Pin('P1_20')
+P1_21 = Pin('P1_21')
+
+P1_23 = Pin('P1_23')
+
+P1_25 = Pin('P1_25')
+P1_26 = Pin('P1_26')
+P1_27 = Pin('P1_27')
+P1_28 = Pin('P1_28')
+P1_29 = Pin('P1_29')
+P1_30 = Pin('P1_30')
+P1_31 = Pin('P1_31')
+P1_32 = Pin('P1_32')
+P1_33 = Pin('P1_33')
+P1_34 = Pin('P1_34')
+P1_35 = Pin('P1_35')
+P1_36 = Pin('P1_36')
+
+
+P2_1 = Pin('P2_1')
+P2_2 = Pin('P2_2')
+P2_3 = Pin('P2_3')
+P2_4 = Pin('P2_4')
+P2_5 = Pin('P2_5')
+P2_6 = Pin('P2_6')
+P2_7 = Pin('P2_7')
+P2_8 = Pin('P2_8')
+P2_9 = Pin('P2_9')
+P2_10 = Pin('P2_10')
+P2_11 = Pin('P2_11')
+
+P2_17 = Pin('P2_17')
+P2_18 = Pin('P2_18')
+P2_19 = Pin('P2_19')
+P2_20 = Pin('P2_20')
+
+P2_22 = Pin('P2_22')
+
+P2_24 = Pin('P2_24')
+
+P2_26 = Pin('P2_26')
+P2_27 = Pin('P2_27')
+P2_28 = Pin('P2_28')
+P2_29 = Pin('P2_29')
+P2_30 = Pin('P2_30')
+P2_31 = Pin('P2_31')
+P2_32 = Pin('P2_32')
+P2_33 = Pin('P2_33')
+P2_34 = Pin('P2_34')
+P2_35 = Pin('P2_35')
+P2_36 = Pin('P2_36')
+
+
+# BeagleBone Black
P8_3 = Pin('P8_3')
P8_4 = Pin('P8_4')
P8_5 = Pin('P8_5')
P9_41 = Pin('P9_41')
P9_42 = Pin('P9_42')
+# common to all beagles
USR0 = Pin('USR0')
USR1 = Pin('USR1')
USR2 = Pin('USR2')
USR3 = Pin('USR3')
-SCL = Pin('P9_19')
-SDA = Pin('P9_20')
+# all special functions (SPI / I2C) are moved to
+# src/adafruit_blinka/board/beaglebone_black.py
-# Refer to header default pin modes
-# http://beagleboard.org/static/images/cape-headers.png
-#
-# P9_17 (SPI0_CSO => CE0) enables peripheral device
-# P9_18 (SPI0_D1 => MOSI) outputs data to peripheral device
-# P9_21 (SPIO_DO => MISO) receives data from peripheral device
-# P9_22 (SPI0_SCLK => SCLK) outputs clock signal
-#
-# Use config-pin to set pin mode for SPI pins
-# https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io
-# config-pin p9.17 spi_cs
-# config-pin p9.18 spi
-# config-pin p9.21 spi
-# config-pin p9.22 spi_sclk
+# # ordered as spiId, sckId, mosiId, misoId
+# spiPorts = (
+# (0, SCLK, MOSI, MISO),
+# (1, SCLK_1, MOSI_1, MISO_1)
+# )
#
-CE0 = Pin('P9_17')
-MOSI = Pin('P9_18')
-MISO = Pin('P9_21')
-SCLK = Pin('P9_22')
-#CircuitPython naming convention for SPI Clock
-SCK = Pin('P9_22')
-
-# Pins for SPI1
-# refer to:
-# http://beagleboard.org/static/images/cape-headers-spi.png
+# # ordered as uartId, txId, rxId
+# uartPorts = (
+# (),
+# )
#
-# CE1 P9.28 SPI1_CS0
-# MISO_1 P9.29 SPI1_D0
-# MOSI_1 P9.30 SPI1_D1
-# SCLK_1 P9.31 SPI_SCLK
-#
-# SPI1 conflicts with HDMI Audio (McASP)
-#
-# Refer to:
-# https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
-#
-# To Disable HDMI AUDIO, uncomment this line in /boot/uEnv.txt:
-# disable_uboot_overlay_audio=1
-#
-# Set pin modes for SPI1 with:
-#
-# config-pin p9.28 spi1_cs
-# config-pin p9.29 spi1
-# config-pin p9.30 spi1
-# config-pin p9.31 spi_sclk
-CE1 = Pin('P9_28')
-MOSI_1 = Pin('P9_29')
-MISO_1 = Pin('P9_30')
-SCLK_1 = Pin('P9_31')
-#CircuitPython naming convention for SPI Clock
-SCK_1 = Pin('P9_31')
-
-# ordered as spiId, sckId, mosiId, misoId
-spiPorts = ((0, SCLK, MOSI, MISO), (1, SCLK_1, MOSI_1, MISO_1))
-
-# ordered as uartId, txId, rxId
-uartPorts = (
- (),
-)
-
-i2cPorts = (
- (2, SCL, SDA),
-)
-
+# i2cPorts = (
+# (2, SCL, SDA),
+# )
elif board_id == ap_board.BEAGLEBONE_BLACK:
from adafruit_blinka.board.beaglebone_black import *
+elif board_id == ap_board.BEAGLEBONE_POCKETBEAGLE:
+ from adafruit_blinka.board.beaglebone_pocketbeagle import *
+
elif board_id == ap_board.ORANGE_PI_PC:
from adafruit_blinka.board.orangepipc import *