Skip to content

Commit 578fb1f

Browse files
authored
Merge branch 'main' into main
2 parents 2a3697f + a21448d commit 578fb1f

File tree

15 files changed

+183
-44
lines changed

15 files changed

+183
-44
lines changed

src/adafruit_blinka/board/generic_agnostic_board.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
Dx_INPUT_TRUE_PULL_DOWN = pin.D3
1212
Dx_OUTPUT = pin.D4
1313
Dx_INPUT_TOGGLE = pin.D7
14-
# Special "digital" pins
15-
NEOPIXEL = pin.D6
1614

15+
# Special digital pins for pixels
16+
NEOPIXEL = pin.D6
17+
DOTSTAR_DATA = pin.D8
18+
DOTSTAR_CLK = pin.D9
1719

1820
# Analog pins
1921
Ax_INPUT_RAND_INT = pin.A0
@@ -33,6 +35,9 @@
3335
MISO = pin.MISO
3436
CS = pin.D6
3537

38+
# SPI port
39+
spiPorts = ((0, SCK, MOSI, MISO),)
40+
3641
# UART pins
3742
UART_TX = pin.UART_TX
3843
UART_RX = pin.UART_RX
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# SPDX-FileCopyrightText: 2024 Burberius
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Pin definitions for the Radxa ZERO 3 (3E and 3W)"""
5+
6+
from adafruit_blinka.microcontroller.rockchip.rk3566 import pin
7+
8+
# ZERO 3 IO pins
9+
10+
D1_A0 = pin.GPIO1_A0
11+
D1_A1 = pin.GPIO1_A1
12+
D3_C4 = pin.GPIO3_C4
13+
D3_A1 = pin.GPIO3_A1
14+
D3_A2 = pin.GPIO3_A2
15+
D3_B0 = pin.GPIO3_B0
16+
D4_C3 = pin.GPIO4_C3
17+
D4_C5 = pin.GPIO4_C5
18+
D4_C2 = pin.GPIO4_C2
19+
D4_B2 = pin.GPIO4_B2
20+
D3_B3 = pin.GPIO3_B3
21+
D3_B4 = pin.GPIO3_B4
22+
D3_C3 = pin.GPIO3_C3
23+
D3_A4 = pin.GPIO3_A4
24+
D1_A4 = pin.GPIO1_A4
25+
D0_D1 = pin.GPIO0_D1
26+
D0_D0 = pin.GPIO0_D0
27+
D3_A3 = pin.GPIO3_A3
28+
D3_B1 = pin.GPIO3_B1
29+
D3_B2 = pin.GPIO3_B2
30+
D3_C1 = pin.GPIO3_C1
31+
D4_C6 = pin.GPIO4_C6
32+
D4_B3 = pin.GPIO4_B3
33+
D3_C2 = pin.GPIO3_C2
34+
D3_A7 = pin.GPIO3_A7
35+
D3_A6 = pin.GPIO3_A6
36+
D3_A5 = pin.GPIO3_A5
37+
38+
39+
# I2C
40+
SDA = D1_A0
41+
SCL = D1_A1
42+
43+
# SPI
44+
CE0 = D4_C6
45+
SCLK = D4_C2
46+
MOSI = D4_C3
47+
MISO = D4_C5
48+
49+
# UART aliases
50+
UART_TX = D0_D1
51+
UART_RX = D0_D0
52+
UART2_TX = UART_TX
53+
UART2_RX = UART_RX
54+
UART3_TX = D1_A1
55+
UART3_RX = D1_A0
56+
UART4_TX = D3_B2
57+
UART4_RX = D3_B1
58+
UART5_TX = D3_C2
59+
UART5_RX = D3_C3
60+
UART9_TX = D4_C5
61+
UART9_RX = D4_C6
62+
TXD = D0_D1
63+
RXD = D0_D0
64+
TX = D0_D1
65+
RX = D0_D0
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""NeoPixel write mocks for a generic board."""
5+
6+
7+
# pylint: disable=unused-argument
8+
def neopixel_write(gpio, buf):
9+
"""Mocks a neopixel_write function"""
10+
# pad output buffer from 3 bpp to 4 bpp
11+
buffer = []
12+
for i in range(0, len(buf), 3):
13+
buffer.append(0)
14+
buffer.append(buf[i + 2])
15+
buffer.append(buf[i + 1])
16+
buffer.append(buf[i])
17+
18+
# then, do nothing

src/adafruit_blinka/microcontroller/generic_agnostic_board/pin.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,10 @@ def value(self, val=None):
204204
A3 = Pin(10)
205205
A4 = Pin(12)
206206

207+
# Special digital pins for pixels
207208
D7 = Pin(11)
209+
D8 = Pin(13)
210+
D9 = Pin(14)
208211

209212
# I2C pins
210213
SDA = Pin()
@@ -217,6 +220,9 @@ def value(self, val=None):
217220
MISO = Pin()
218221
CS = Pin()
219222

223+
spiPorts = ((0, SCK, MOSI, MISO),)
224+
225+
220226
# UART pins
221227
UART_TX = Pin()
222228
UART_RX = Pin()
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""SPI class for a generic agnostic board."""
5+
# from .rp2040_u2if import rp2040_u2if
6+
7+
8+
# pylint: disable=protected-access, no-self-use
9+
class SPI:
10+
"""SPI Base Class for a generic agnostic board."""
11+
12+
MSB = 0
13+
14+
def __init__(self, index, *, baudrate=100000):
15+
self._index = index
16+
self._frequency = baudrate
17+
18+
# pylint: disable=too-many-arguments,unused-argument
19+
def init(
20+
self,
21+
baudrate=1000000,
22+
polarity=0,
23+
phase=0,
24+
bits=8,
25+
firstbit=MSB,
26+
sck=None,
27+
mosi=None,
28+
miso=None,
29+
):
30+
"""Initialize the Port"""
31+
self._frequency = baudrate
32+
33+
# pylint: enable=too-many-arguments
34+
35+
@property
36+
def frequency(self):
37+
"""Return the current frequency"""
38+
return self._frequency
39+
40+
# pylint: disable=unnecessary-pass
41+
def write(self, buf, start=0, end=None):
42+
"""Write data from the buffer to SPI"""
43+
pass
44+
45+
# pylint: disable=unnecessary-pass
46+
def readinto(self, buf, start=0, end=None, write_value=0):
47+
"""Read data from SPI and into the buffer"""
48+
pass
49+
50+
# pylint: disable=too-many-arguments, unnecessary-pass
51+
def write_readinto(
52+
self, buffer_out, buffer_in, out_start=0, out_end=None, in_start=0, in_end=None
53+
):
54+
"""Perform a half-duplex write from buffer_out and then
55+
read data into buffer_in
56+
"""
57+
pass

src/adafruit_blinka/microcontroller/rockchip/rk3566/pin.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171
(1, I2C1_SCL, I2C1_SDA),
172172
(2, I2C2_SCL_M0, I2C2_SDA_M0),
173173
(3, I2C3_SCL_M0, I2C3_SDA_M0),
174+
(4, I2C4_SCL_M0, I2C4_SDA_M0),
174175
(5, I2C5_SCL_M0, I2C5_SDA_M0),
175176
]
176177

src/analogio.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
1010
* Author(s): Carter Nelson, Melissa LeBlanc-Williams
1111
"""
12-
import os
1312
import sys
1413

1514
from adafruit_blinka.agnostic import detector
@@ -63,10 +62,7 @@
6362
from adafruit_blinka.microcontroller.rp2040_u2if.analogio import (
6463
AnalogIn_ItsyBitsy as AnalogIn,
6564
)
66-
elif (
67-
"BLINKA_FORCECHIP" in os.environ
68-
and os.environ["BLINKA_FORCEBOARD"] == "GENERIC_AGNOSTIC_BOARD"
69-
):
65+
elif detector.board.OS_AGNOSTIC_BOARD:
7066
from adafruit_blinka.microcontroller.generic_agnostic_board.analogio import AnalogIn
7167
from adafruit_blinka.microcontroller.generic_agnostic_board.analogio import (
7268
AnalogOut,

src/board.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818

1919
import sys
20-
import os
2120
import adafruit_platformdetect.constants.boards as ap_board
2221
from adafruit_blinka.agnostic import board_id, detector
2322

@@ -268,6 +267,9 @@
268267
elif board_id == ap_board.RADXA_ZERO:
269268
from adafruit_blinka.board.radxa.radxazero import *
270269

270+
elif board_id == ap_board.RADXA_ZERO3:
271+
from adafruit_blinka.board.radxa.radxazero3 import *
272+
271273
elif board_id == ap_board.ROCK_PI_S:
272274
from adafruit_blinka.board.radxa.rockpis import *
273275

@@ -391,10 +393,7 @@
391393
elif board_id == ap_board.WALNUT_PI_1B:
392394
from adafruit_blinka.board.walnutpi.walnutpi1b import *
393395

394-
elif (
395-
"BLINKA_FORCECHIP" in os.environ
396-
and os.environ["BLINKA_FORCEBOARD"] == "GENERIC_AGNOSTIC_BOARD"
397-
):
396+
elif board_id == ap_board.OS_AGNOSTIC_BOARD:
398397
from adafruit_blinka.board.generic_agnostic_board import *
399398

400399
elif "sphinx" in sys.modules:

src/busio.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
1010
* Author(s): cefn
1111
"""
12-
import os
13-
1412
try:
1513
import threading
1614
except ImportError:
@@ -56,10 +54,7 @@ def init(self, scl, sda, frequency):
5654
self._i2c = _I2C(frequency=frequency)
5755
return
5856

59-
if (
60-
"BLINKA_FORCECHIP" in os.environ
61-
and os.environ["BLINKA_FORCEBOARD"] == "GENERIC_AGNOSTIC_BOARD"
62-
):
57+
if detector.board.OS_AGNOSTIC_BOARD:
6358
from adafruit_blinka.microcontroller.generic_agnostic_board.i2c import (
6459
I2C as _I2C,
6560
)
@@ -363,6 +358,10 @@ def __init__(self, clock, MOSI=None, MISO=None):
363358
from adafruit_blinka.microcontroller.generic_linux.spi import SPI as _SPI
364359
elif detector.board.ftdi_ft2232h:
365360
from adafruit_blinka.microcontroller.ftdi_mpsse.mpsse.spi import SPI as _SPI
361+
elif detector.board.OS_AGNOSTIC_BOARD:
362+
from adafruit_blinka.microcontroller.generic_agnostic_board.spi import (
363+
SPI as _SPI,
364+
)
366365
else:
367366
from adafruit_blinka.microcontroller.generic_micropython.spi import (
368367
SPI as _SPI,

src/digitalio.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
1010
* Author(s): cefn
1111
"""
12-
import os
1312
from adafruit_blinka.agnostic import board_id, detector
1413

1514
# pylint: disable=ungrouped-imports,wrong-import-position,unused-wildcard-import,wildcard-import
@@ -137,10 +136,7 @@
137136
from machine import Pin
138137
elif detector.chip.CV1800B:
139138
from adafruit_blinka.microcontroller.cv1800b.pin import Pin
140-
elif (
141-
"BLINKA_FORCECHIP" in os.environ
142-
and os.environ["BLINKA_FORCEBOARD"] == "GENERIC_AGNOSTIC_BOARD"
143-
):
139+
elif detector.chip.OS_AGNOSTIC:
144140
from adafruit_blinka.microcontroller.generic_agnostic_board.pin import Pin
145141

146142
from adafruit_blinka import Enum, ContextManaged

0 commit comments

Comments
 (0)