--- /dev/null
+"""A Pin class for use with StarFive JH71x0."""
+
+from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
+
+D0 = Pin(9)
+D1 = Pin(10)
+D4 = Pin(46)
+D5 = Pin(8)
+D6 = Pin(6)
+D7 = Pin(11)
+D8 = Pin(15)
+D9 = Pin(16)
+D10 = Pin(18)
+D11 = Pin(12)
+D12 = Pin(7)
+D13 = Pin(5)
+D14 = Pin(14)
+D15 = Pin(13)
+D16 = Pin(4)
+D17 = Pin(44)
+D18 = Pin(45)
+D19 = Pin(3)
+D20 = Pin(2)
+D21 = Pin(0)
+D22 = Pin(20)
+D23 = Pin(21)
+D24 = Pin(19)
+D25 = Pin(17)
+D26 = Pin(1)
+D27 = Pin(22)
+
+# I2C
+I2C1_SDA = Pin(48)
+I2C1_SCL = Pin(47)
+I2C2_SDA = Pin(59)
+I2C2_SCL = Pin(60)
+I2C3_SDA = Pin(61)
+I2C3_SCL = Pin(62)
+
+# SPI
+SPI_MISO = D9
+SPI_MOSI = D10
+SPI_SCLK = D11
+
+# UART
+UART_TX = D14
+UART_RX = D15
+
+# ordered as i2cId, SCL, SDA
+i2cPorts = (
+ (0, I2C1_SCL, I2C1_SDA),
+ (1, I2C2_SCL, I2C2_SDA),
+ (2, I2C3_SCL, I2C3_SDA),
+)
+
+# ordered as spiId, sckId, mosiId, misoId
+spiPorts = ((0, SPI_SCLK, SPI_MOSI, SPI_MISO),)
def configure(self, baudrate=100000, polarity=0, phase=0, bits=8):
"""Update the configuration"""
- if detector.board.any_raspberry_pi or detector.board.any_raspberry_pi_40_pin:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.BEAGLEBONE_AI:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.any_beaglebone:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.any_orange_pi:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.any_nanopi and detector.chip.id == ap_chip.SUN8I:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.GIANT_BOARD:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.CORAL_EDGE_TPU_DEV:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.CORAL_EDGE_TPU_DEV_MINI:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.ODROID_C2:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.ODROID_C4:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.ODROID_XU4:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.DRAGONBOARD_410C:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.JETSON_NANO:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.JETSON_TX1:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.JETSON_TX2:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.JETSON_XAVIER:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.JETSON_NX:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.ROCK_PI_S:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.ROCK_PI_4:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.ROCK_PI_E:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif detector.board.SIFIVE_UNLEASHED:
+ if detector.board.any_nanopi and detector.chip.id == ap_chip.SUN8I:
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
elif detector.board.ftdi_ft232h:
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import (
from adafruit_blinka.microcontroller.nova.spi import SPI as _SPI
elif detector.board.greatfet_one:
from adafruit_blinka.microcontroller.nxp_lpc4330.spi import SPI as _SPI
- elif board_id in (
- ap_board.PINE64,
- ap_board.PINEBOOK,
- ap_board.PINEPHONE,
- ap_board.SOPINE,
- ):
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.PINEH64:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.CLOCKWORK_CPI3:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
- elif board_id == ap_board.ONION_OMEGA2:
- from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
elif detector.board.any_lubancat and detector.chip.id == ap_chip.IMX6ULL:
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
elif detector.board.pico_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_QTPY as _SPI
elif detector.chip.id == ap_chip.RP2040:
from adafruit_blinka.microcontroller.rp2040.spi import SPI as _SPI
+ elif detector.board.any_embedded_linux:
+ from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
else:
from adafruit_blinka.microcontroller.generic_micropython.spi import (
SPI as _SPI,
"""Return the baud rate if implemented"""
try:
return self._spi.frequency
- except AttributeError:
+ except AttributeError as error:
raise NotImplementedError(
"Frequency attribute not implemented for this platform"
- ) from AttributeError
+ ) from error
def write(self, buf, start=0, end=None):
"""Write to the SPI device"""
from adafruit_blinka.microcontroller.dra74x.pin import *
elif chip_id == ap_chip.AM33XX:
from adafruit_blinka.microcontroller.am335x import *
+elif chip_id == ap_chip.JH71x0:
+ from adafruit_blinka.microcontroller.starfive.JH71x0 import *
elif chip_id == ap_chip.SUN8I:
from adafruit_blinka.microcontroller.allwinner.h3 import *
elif chip_id == ap_chip.H5:
elif chip_id == ap_chip.LPC4330:
from adafruit_blinka.microcontroller.nxp_lpc4330 import *
elif chip_id == ap_chip.MIPS24KC:
- from adafruit_blinka.microcontroller.atheros.ar9331.pin import *
+ from adafruit_blinka.microcontroller.atheros.ar9331 import *
elif chip_id == ap_chip.MIPS24KEC:
- from adafruit_blinka.microcontroller.mips24kec.pin import *
+ from adafruit_blinka.microcontroller.mips24kec import *
elif chip_id == ap_chip.FT232H:
from adafruit_blinka.microcontroller.ftdi_mpsse.ft232h.pin import *
elif chip_id == ap_chip.FT2232H: