-
Notifications
You must be signed in to change notification settings - Fork 335
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from DarkMechanikum/dev
Dev
- Loading branch information
Showing
12 changed files
with
300 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
"""Starffive boards defenition""" | ||
# SPDX-FileCopyrightText: 2024 Vladimir Shtarev, Jetbrains Research | ||
# | ||
# SPDX-License-Identifier: MIT | ||
"""Starfive boards defenition""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,42 @@ | ||
# SPDX-FileCopyrightText: 2024 Vladimir Shtarev, Jetbrains Research | ||
# | ||
# SPDX-License-Identifier: MIT | ||
"""Starfive VisionFive2 board config""" | ||
from adafruit_blinka.microcontroller.starfive.JH7110 import pin | ||
|
||
D0 = pin.D0 | ||
D1 = pin.D1 | ||
D4 = pin.D4 | ||
D5 = pin.D5 | ||
D6 = pin.D6 | ||
|
||
D7 = pin.D7 | ||
D8 = pin.D8 | ||
D9 = pin.D9 | ||
D10 = pin.D10 | ||
D11 = pin.D11 | ||
D12 = pin.D12 | ||
D13 = pin.D13 | ||
D14 = pin.D14 | ||
D15 = pin.D15 | ||
D16 = pin.D16 | ||
D17 = pin.D17 | ||
D18 = pin.D18 | ||
D19 = pin.D19 | ||
D20 = pin.D20 | ||
D21 = pin.D21 | ||
D22 = pin.D22 | ||
D23 = pin.D23 | ||
D24 = pin.D24 | ||
D25 = pin.D25 | ||
D26 = pin.D26 | ||
D27 = pin.D27 | ||
|
||
D28 = pin.D28 | ||
D29 = pin.D29 | ||
D31 = pin.D31 | ||
D35 = pin.D35 | ||
D36 = pin.D36 | ||
D37 = pin.D37 | ||
D38 = pin.D38 | ||
D40 = pin.D40 | ||
# I2C | ||
SDA = pin.I2C1_SDA | ||
SCL = pin.I2C1_SCL | ||
SDA2 = pin.I2C2_SDA | ||
SCL2 = pin.I2C2_SCL | ||
SDA3 = pin.I2C3_SDA | ||
SCL3 = pin.I2C3_SCL | ||
SDA = pin.I2C_SDA | ||
SCL = pin.I2C_SCL | ||
|
||
# SPI | ||
SPI_MISO = pin.SPI_MISO | ||
SPI_MOSI = pin.SPI_MOSI | ||
SPI_SCLK = pin.SPI_SCLK | ||
|
||
|
||
# UART | ||
UART_TX = pin.UART_TX | ||
UART_RX = pin.UART_RX | ||
|
||
# PWM | ||
PWM1 = pin.PWM1 | ||
PWM2 = pin.PWM2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,6 @@ | |
class I2C: | ||
"""I2C Class for Generic MicroPython""" | ||
|
||
|
||
MASTER = 0 | ||
|
||
# pylint: disable=unused-argument | ||
|
3 changes: 3 additions & 0 deletions
3
src/adafruit_blinka/microcontroller/starfive/JH7110/__init__.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
# SPDX-FileCopyrightText: 2024 Vladimir Shtarev, Jetbrains Research | ||
# | ||
# SPDX-License-Identifier: MIT | ||
"""Definition for the StarFive JH7110 chip""" |
145 changes: 100 additions & 45 deletions
145
src/adafruit_blinka/microcontroller/starfive/JH7110/pin.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,115 @@ | ||
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries | ||
# SPDX-FileCopyrightText: 2024 Vladimir Shtarev, Jetbrains Research | ||
# | ||
# SPDX-License-Identifier: MIT | ||
"""A Pin class for use with StarFive JH7110.""" | ||
|
||
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) | ||
import VisionFive.gpio as GPIO | ||
|
||
GPIO.setmode(GPIO.BOARD) | ||
|
||
|
||
class Pin: | ||
"""Pins don't 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, number): | ||
self.id = number | ||
|
||
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""" | ||
print(self.id) | ||
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) | ||
|
||
|
||
D7 = Pin(7) | ||
D11 = Pin(11) | ||
D12 = Pin(12) | ||
D13 = Pin(13) | ||
D15 = Pin(15) | ||
D16 = Pin(16) | ||
D18 = Pin(18) | ||
D22 = Pin(22) | ||
D24 = Pin(24) | ||
D26 = Pin(26) | ||
D27 = Pin(27) | ||
D28 = Pin(28) | ||
D29 = Pin(29) | ||
D31 = Pin(31) | ||
D35 = Pin(35) | ||
D36 = Pin(36) | ||
D37 = Pin(37) | ||
D38 = Pin(38) | ||
D40 = Pin(40) | ||
# 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) | ||
I2C_SDA = Pin(3) | ||
I2C_SCL = Pin(5) | ||
|
||
# SPI | ||
SPI_MISO = D9 | ||
SPI_MOSI = D10 | ||
SPI_SCLK = D11 | ||
SPI_MISO = Pin(21) | ||
SPI_MOSI = Pin(19) | ||
SPI_SCLK = Pin(23) | ||
|
||
# UART | ||
UART_TX = D14 | ||
UART_RX = D15 | ||
UART_TX = Pin(8) | ||
UART_RX = Pin(10) | ||
|
||
# PWM, does not support pwmio | ||
PWM1 = Pin(32) | ||
PWM2 = Pin(33) | ||
|
||
# ordered as i2cId, SCL, SDA | ||
i2cPorts = ( | ||
(0, I2C1_SCL, I2C1_SDA), | ||
(1, I2C2_SCL, I2C2_SDA), | ||
(2, I2C3_SCL, I2C3_SDA), | ||
) | ||
i2cPorts = ((0, I2C_SCL, I2C_SDA),) | ||
|
||
# ordered as spiId, sckId, mosiId, misoId | ||
spiPorts = ((0, SPI_SCLK, SPI_MOSI, SPI_MISO),) | ||
|
||
# ordered as uartId, txId, rxId | ||
uartPorts = ((0, UART_TX, UART_RX),) |
Oops, something went wrong.