Skip to content

Commit 553b3cd

Browse files
authored
Merge pull request #175 from lesamouraipourpre/u2if
Move the U2IF constant definitions to a single file so they are not duplicated
2 parents 1c3f435 + 3cb6bdc commit 553b3cd

File tree

4 files changed

+48
-37
lines changed

4 files changed

+48
-37
lines changed

.pylintrc

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ ignore-patterns=
1818
#init-hook=
1919

2020
# Use multiple processes to speed up Pylint.
21-
# jobs=1
22-
jobs=2
21+
jobs=1
2322

2423
# List of plugins (as comma separated values of python modules names) to load,
2524
# usually to register additional checkers.
@@ -249,7 +248,7 @@ ignore-docstrings=yes
249248
ignore-imports=no
250249

251250
# Minimum lines number of a similarity.
252-
min-similarity-lines=4
251+
min-similarity-lines=12
253252

254253

255254
[BASIC]

adafruit_platformdetect/board.py

+28-10
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,8 @@ def id(self):
157157
board_id = self._stm32mp1_id()
158158
elif chip_id == chips.MT8167:
159159
board_id = boards.CORAL_EDGE_TPU_DEV_MINI
160-
elif chip_id == chips.PICO_U2IF:
161-
board_id = boards.PICO_U2IF
162-
elif chip_id == chips.FEATHER_U2IF:
163-
board_id = boards.FEATHER_U2IF
164-
elif chip_id == chips.ITSYBITSY_U2IF:
165-
board_id = boards.ITSYBITSY_U2IF
166-
elif chip_id == chips.QTPY_U2IF:
167-
board_id = boards.QTPY_U2IF
168-
elif chip_id == chips.QT2040_TRINKEY_U2IF:
169-
board_id = boards.QT2040_TRINKEY_U2IF
160+
elif chip_id == chips.RP2040_U2IF:
161+
board_id = self._rp2040_u2if_id()
170162
elif chip_id == chips.GENERIC_X86:
171163
board_id = boards.GENERIC_LINUX_PC
172164
self._board_id = board_id
@@ -468,6 +460,32 @@ def _allwinner_variants_id(self):
468460
# TODO: Add other specifc board contexts here
469461
return board
470462

463+
def _rp2040_u2if_id(self):
464+
import hid
465+
466+
# look for it based on PID/VID
467+
for dev in hid.enumerate():
468+
# Raspberry Pi Pico
469+
vendor = dev["vendor_id"]
470+
product = dev["product_id"]
471+
if vendor == 0xCAFE and product == 0x4005:
472+
return boards.PICO_U2IF
473+
if vendor == 0x239A:
474+
# Feather RP2040
475+
if product == 0x00F1:
476+
return boards.FEATHER_U2IF
477+
# Itsy Bitsy RP2040
478+
if product == 0x00FD:
479+
return boards.ITSYBITSY_U2IF
480+
# QT Py RP2040
481+
if product == 0x00F7:
482+
return boards.QTPY_U2IF
483+
# QT2040 Trinkey
484+
if product == 0x0109:
485+
return boards.QT2040_TRINKEY_U2IF
486+
# Will only reach here if a device was added in chip.py but here.
487+
raise RuntimeError("RP2040_U2IF device was added to chip but not board.")
488+
471489
@property
472490
def any_nanopi(self):
473491
"""Check whether the current board is any defined Nano Pi."""

adafruit_platformdetect/chip.py

+17-19
Original file line numberDiff line numberDiff line change
@@ -113,25 +113,23 @@ def id(
113113

114114
# look for it based on PID/VID
115115
for dev in hid.enumerate():
116-
# Raspberry Pi Pico
117-
if dev["vendor_id"] == 0xCAFE and dev["product_id"] == 0x4005:
118-
self._chip_id = chips.PICO_U2IF
119-
return self._chip_id
120-
# Feather RP2040
121-
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00F1:
122-
self._chip_id = chips.FEATHER_U2IF
123-
return self._chip_id
124-
# Itsy Bitsy RP2040
125-
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00FD:
126-
self._chip_id = chips.ITSYBITSY_U2IF
127-
return self._chip_id
128-
# QT Py RP2040
129-
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00F7:
130-
self._chip_id = chips.QTPY_U2IF
131-
return self._chip_id
132-
# QT2040 Trinkey
133-
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x0109:
134-
self._chip_id = chips.QT2040_TRINKEY_U2IF
116+
vendor = dev["vendor_id"]
117+
product = dev["product_id"]
118+
# NOTE: If any products are added here, they need added
119+
# to _rp2040_u2if_id() in board.py as well.
120+
if (
121+
# Raspberry Pi Pico
122+
vendor == 0xCAFE
123+
and product == 0x4005
124+
) or (
125+
# Feather RP2040
126+
# Itsy Bitsy RP2040
127+
# QT Py RP2040
128+
# QT2040 Trinkey
129+
vendor == 0x239A
130+
and product in (0x00F1, 0x00FD, 0x00F7, 0x0109)
131+
):
132+
self._chip_id = chips.RP2040_U2IF
135133
return self._chip_id
136134
raise RuntimeError(
137135
"BLINKA_U2IF environment variable "

adafruit_platformdetect/constants/chips.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@
4646
STM32MP157 = "STM32MP157"
4747
MT8167 = "MT8167"
4848
ATOM_X5_Z8350 = "X5-Z8350"
49-
PICO_U2IF = "PICO_U2IF"
50-
FEATHER_U2IF = "FEATHER_U2IF"
51-
ITSYBITSY_U2IF = "ITSYBITSY_U2IF"
52-
QTPY_U2IF = "QTPY_U2IF"
53-
QT2040_TRINKEY_U2IF = "QT2040_TRINKEY_U2IF"
49+
RP2040_U2IF = "RP2040_U2IF"
5450

5551

5652
BCM_RANGE = {"BCM2708", "BCM2709", "BCM2711", "BCM2835", "BCM2837"}

0 commit comments

Comments
 (0)