From: Melissa LeBlanc-Williams Date: Wed, 22 Jan 2020 18:18:14 +0000 (-0800) Subject: Merge pull request #220 from makermelissa/sifive X-Git-Tag: 3.7.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/5729000108ee73cc943431e46b5e9c3212dcb4f0?hp=c723c064abfd2439079f5f3b5f42bc10a513e2b7 Merge pull request #220 from makermelissa/sifive Partial work for adding hifive unleashed to Blinka (Second Attempt) --- diff --git a/src/adafruit_blinka/board/hifive_unleashed.py b/src/adafruit_blinka/board/hifive_unleashed.py new file mode 100644 index 0000000..7be1ca8 --- /dev/null +++ b/src/adafruit_blinka/board/hifive_unleashed.py @@ -0,0 +1,38 @@ +"""Pin definitions for the Hifive Unleashed.""" + +from adafruit_blinka.microcontroller.hfu540 import pin + +GPIO_A = pin.GPIO0 +GPIO_B = pin.GPIO1 +GPIO_C = pin.GPIO2 +GPIO_D = pin.GPIO3 +GPIO_E = pin.GPIO4 +GPIO_F = pin.GPIO5 +GPIO_G = pin.GPIO6 +GPIO_H = pin.GPIO7 +GPIO_I = pin.GPIO8 +GPIO_J = pin.GPIO9 +GPIO_K = pin.GPIO15 + +UART0_TXD = pin.UART0_TXD +UART0_RXD = pin.UART0_RXD +SPI0_SCLK = pin.SPI0_SCLK +SPI0_DIN = pin.SPI0_DIN +UART1_TXD = pin.UART1_TXD +SPI0_CS = pin.SPI0_CS +UART1_RXD = pin.UART1_RXD +SPIO0_DOUT = pin.SPIO0_DOUT +I2C0_SCL = pin.I2C0_SCL +I2C0_SDA = pin.I2C0_SDA + +SDA = pin.I2C0_SDA +SCL = pin.I2C0_SCL + +I2C0_SDA = pin.I2C0_SDA +I2C0_SCL = pin.I2C0_SCL + +SCLK = pin.SPI0_SCLK +MOSI = pin.SPI0_DOUT +MISO = pin.SPI0_DIN +SPI_CS = pin.SPI0_CS + diff --git a/src/adafruit_blinka/microcontroller/hfu540/__init__.py b/src/adafruit_blinka/microcontroller/hfu540/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/adafruit_blinka/microcontroller/hfu540/pin.py b/src/adafruit_blinka/microcontroller/hfu540/pin.py new file mode 100644 index 0000000..985d429 --- /dev/null +++ b/src/adafruit_blinka/microcontroller/hfu540/pin.py @@ -0,0 +1,38 @@ +"""Hifive Unleashed pin names""" + +from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin + +UART0_TXD = Pin(5) +UART0_RXD = Pin(7) +SPI0_SCLK = Pin(8) +SPI0_DIN = Pin(10) +UART1_TXD = Pin(11) +SPI0_CS = Pin(12) +UART1_RXD = Pin(13) +SPIO0_DOUT = Pin(14) +I2C0_SCL = Pin(15) +I2C0_SDA = Pin(17) +GPIO0 = Pin(23) +GPIO1 = Pin(24) +GPIO2 = Pin(25) +GPIO3 = Pin(26) +GPIO4 = Pin(27) +GPIO5 = Pin(28) +GPIO6 = Pin(29) +GPIO7 = Pin(30) +GPIO8 = Pin(31) +GPIO9 = Pin(32) +GPIO15 = Pin(33) + +# ordered as spiId, sckId, mosiId, misoId +SPI_PORTS = ((1, SPI0_SCLK, SPI0_DOUT, SPI0_DIN)) + +# ordered as uartId, txId, rxId +UART_PORTS = ( + (0, UART0_TXD, UART0_RXD), + # (0, GPIO15, GPIO13) + (1, UART1_TXD, UART1_RXD)) + +# ordered as spiId, spiSCA, spiSCL +I2C_PORTS = ( + (0, I2C0_SCA, I2C0_SCL)) diff --git a/src/board.py b/src/board.py index 99a1fb3..5f66cf8 100755 --- a/src/board.py +++ b/src/board.py @@ -124,6 +124,9 @@ elif board_id == ap_board.BINHO_NOVA: elif board_id == ap_board.MICROCHIP_MCP2221: from adafruit_blinka.board.microchip_mcp2221 import * +elif board_id == ap_board.SIFIVE_UNLEASHED: + from adafruit_blinka.board.hifive_unleashed import * + elif board_id == ap_board.PINE64: from adafruit_blinka.board.pine64 import * diff --git a/src/busio.py b/src/busio.py index 4708e78..79e9882 100755 --- a/src/busio.py +++ b/src/busio.py @@ -156,6 +156,9 @@ class SPI(Lockable): elif board_id == ap_board.JETSON_XAVIER: from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI from adafruit_blinka.microcontroller.tegra.t194.pin import Pin + elif detector.board.SIFIVE_UNLEASHED: + from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI + from adafruit_blinka.microcontroller.hfu540.pin import Pin elif detector.board.ftdi_ft232h: from adafruit_blinka.microcontroller.ft232h.spi import SPI as _SPI from adafruit_blinka.microcontroller.ft232h.pin import Pin diff --git a/src/digitalio.py b/src/digitalio.py index 51c729e..29b77a1 100755 --- a/src/digitalio.py +++ b/src/digitalio.py @@ -33,6 +33,8 @@ elif detector.chip.APQ8016: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import Pin elif detector.chip.IMX8MX: from adafruit_blinka.microcontroller.nxp_imx8m.pin import Pin +elif detector.chip.HFU540: + from adafruit_blinka.microcontroller.hfu540.pin import Pin elif detector.chip.A64: from adafruit_blinka.microcontroller.allwinner.a64.pin import Pin elif detector.board.ftdi_ft232h: diff --git a/src/microcontroller/__init__.py b/src/microcontroller/__init__.py index 538f66c..108d527 100755 --- a/src/microcontroller/__init__.py +++ b/src/microcontroller/__init__.py @@ -52,6 +52,8 @@ elif chip_id == ap_chip.A64: from adafruit_blinka.microcontroller.allwinner.a64.pin import * elif chip_id == ap_chip.IMX8MX: from adafruit_blinka.microcontroller.nxp_imx8m import * +elif chip_id == ap_chip.HFU540: + from adafruit_blinka.microcontroller.hfu540.pin import * elif chip_id == ap_chip.BINHO: from adafruit_blinka.microcontroller.nova import * elif chip_id == ap_chip.MIPS24KC: diff --git a/src/microcontroller/pin.py b/src/microcontroller/pin.py index 6c1fe7d..e71dd2a 100755 --- a/src/microcontroller/pin.py +++ b/src/microcontroller/pin.py @@ -32,6 +32,8 @@ elif chip_id == ap_chip.APQ8016: from adafruit_blinka.microcontroller.snapdragon.apq8016.pin import * elif chip_id == ap_chip.IMX8MX: from adafruit_blinka.microcontroller.nxp_imx8m.pin import * +elif chip_id == ap_chip.HFU540: + from adafruit_blinka.microcontroller.hfu540.pin import * elif chip_id == ap_chip.FT232H: from adafruit_blinka.microcontroller.ft232h.pin import * elif chip_id == ap_chip.BINHO: