Skip to content

Commit a6897f7

Browse files
authored
Merge pull request #368 from Dangku/main
2 parents 20f52a2 + dad9b44 commit a6897f7

File tree

5 files changed

+52
-2
lines changed

5 files changed

+52
-2
lines changed

adafruit_platformdetect/board.py

+35-2
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,14 @@ def id(self) -> Optional[str]:
156156
or self._allwinner_variants_id()
157157
or self._repka_variants_id()
158158
)
159+
elif chip_id == chips.H618:
160+
board_id = self._armbian_id() or self._allwinner_variants_id()
159161
elif chip_id == chips.H616:
160162
board_id = self._armbian_id() or self._allwinner_variants_id()
161163
elif chip_id == chips.A33:
162164
board_id = self._clockwork_pi_id()
165+
elif chip_id == chips.K1:
166+
board_id = self._armbian_id() or self._spacemit_variants_id()
163167
elif chip_id == chips.RK3308:
164168
board_id = self._rock_pi_id()
165169
elif chip_id == chips.RK3399:
@@ -431,8 +435,14 @@ def _armbian_id(self) -> Optional[str]:
431435
board = boards.BANANA_PI_M2_PLUS
432436
elif board_value == "bananapim2berry":
433437
board = boards.BANANA_PI_M2_BERRY
438+
elif board_value == "bananapim4berry":
439+
board = boards.BANANA_PI_M4_BERRY
440+
elif board_value == "bananapim4zero":
441+
board = boards.BANANA_PI_M4_ZERO
434442
elif board_value == "bananapim5":
435443
board = boards.BANANA_PI_M5
444+
elif board_value == "bananapif3":
445+
board = boards.BANANA_PI_F3
436446
elif board_value == "orangepizeroplus2-h5":
437447
board = boards.ORANGE_PI_ZERO_PLUS_2H5
438448
elif board_value == "orangepizeroplus":
@@ -755,8 +765,13 @@ def _allwinner_variants_id(self) -> Optional[str]:
755765
if "banana pro" in board_value:
756766
board = boards.LEMAKER_BANANA_PRO
757767

758-
if "banana pi m2 berry" in board_value:
759-
board = boards.BANANA_PI_M2_BERRY
768+
if any(x in board_value for x in ("banana pi", "bananapi")):
769+
if "m2 berry" in board_value:
770+
board = boards.BANANA_PI_M2_BERRY
771+
elif "m4berry" in board_value or "m4 berry" in board_value:
772+
board = boards.BANANA_PI_M4_BERRY
773+
elif "m4zero" in board_value or "m4 zero" in board_value:
774+
board = boards.BANANA_PI_M4_ZERO
760775

761776
if "nanopi" in board_value:
762777
if "neo" in board_value and "SUN8I" in chip_id:
@@ -779,6 +794,24 @@ def _allwinner_variants_id(self) -> Optional[str]:
779794
board = boards.OLIMEX_LIME2
780795
return board
781796

797+
def _spacemit_variants_id(self) -> Optional[str]:
798+
"""Try to detect the id of spacemit based board. (bananapi)"""
799+
board_value = self.detector.get_device_model()
800+
board = None
801+
if not board_value:
802+
return board
803+
board_value = board_value.lower()
804+
805+
if any(x in board_value for x in ("banana pi", "bananapi")):
806+
if "bpi-f3" in board_value:
807+
board = boards.BANANA_PI_F3
808+
809+
if "spacemit" in board_value:
810+
if "deb1" in board_value:
811+
board = boards.BANANA_PI_F3
812+
813+
return board
814+
782815
def _repka_variants_id(self) -> Optional[str]:
783816
board_value = self.detector.get_device_model()
784817
board = None

adafruit_platformdetect/chip.py

+6
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ def _linux_id(self) -> Optional[str]:
285285
if self.detector.check_dt_compatible_value("sun50i-h5"):
286286
return chips.H5
287287

288+
if self.detector.check_dt_compatible_value("sun50i-h618"):
289+
return chips.H618
290+
288291
if self.detector.check_dt_compatible_value("sun50i-h616"):
289292
return chips.H616
290293

@@ -294,6 +297,9 @@ def _linux_id(self) -> Optional[str]:
294297
if self.detector.check_dt_compatible_value("sun50i-h6"):
295298
return chips.H6
296299

300+
if self.detector.check_dt_compatible_value("spacemit,k1-x"):
301+
return chips.K1
302+
297303
if self.detector.check_dt_compatible_value("mediatek,mt8167"):
298304
return chips.MT8167
299305

adafruit_platformdetect/constants/boards.py

+6
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,10 @@
7878
BANANA_PI_M2_ZERO = "BANANA_PI_M2_ZERO"
7979
BANANA_PI_M2_PLUS = "BANANA_PI_M2_PLUS"
8080
BANANA_PI_M2_BERRY = "BANANA_PI_M2_BERRY"
81+
BANANA_PI_M4_BERRY = "BANANA_PI_M4_BERRY"
82+
BANANA_PI_M4_ZERO = "BANANA_PI_M4_ZERO"
8183
BANANA_PI_M5 = "BANANA_PI_M5"
84+
BANANA_PI_F3 = "BANANA_PI_F3"
8285

8386
# LeMaker boards
8487
LEMAKER_BANANA_PRO = "LEMAKER_BANANA_PRO"
@@ -305,7 +308,10 @@
305308
BANANA_PI_M2_ZERO,
306309
BANANA_PI_M2_PLUS,
307310
BANANA_PI_M2_BERRY,
311+
BANANA_PI_M4_BERRY,
312+
BANANA_PI_M4_ZERO,
308313
BANANA_PI_M5,
314+
BANANA_PI_F3,
309315
)
310316

311317
# LeMaker

adafruit_platformdetect/constants/chips.py

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
H5 = "H5"
5656
H3 = "H3"
5757
H616 = "H616"
58+
H618 = "H618"
5859
RK3308 = "RK3308"
5960
RK3399 = "RK3399"
6061
RK3399_T = "RK3399_T"
@@ -79,6 +80,7 @@
7980
D1_RISCV = "D1_RISCV"
8081
ATOM_J4105 = "ATOM_J4105"
8182
TH1520 = "TH1520"
83+
K1 = "K1"
8284

8385
BCM_RANGE = {"BCM2708", "BCM2709", "BCM2711", "BCM2712", "BCM2835", "BCM2837"}
8486

bin/detect.py

+3
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@
7575
"Is this an OS environment variable special case?", detector.board.os_environ_board
7676
)
7777

78+
if detector.board.any_bananapi:
79+
print("Bananapi board detected.")
80+
7881
if detector.board.any_jetson_board:
7982
print("Jetson platform detected.")
8083

0 commit comments

Comments
 (0)