Skip to content

Commit bd166a3

Browse files
authored
Merge pull request #164 from twa127/master
Fix for #151 Support Allwinner detection on non armbian distros
2 parents d59c788 + 566dbcd commit bd166a3

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

adafruit_platformdetect/board.py

+24-3
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def id(self):
8080
elif chip_id == chips.GENERIC_X86:
8181
board_id = boards.GENERIC_LINUX_PC
8282
elif chip_id == chips.SUN8I:
83-
board_id = self._armbian_id()
83+
board_id = self._armbian_id() or self._allwinner_variants_id()
8484
elif chip_id == chips.SAMA5:
8585
board_id = self._sama5_id()
8686
elif chip_id == chips.IMX8MX:
@@ -136,9 +136,9 @@ def id(self):
136136
elif chip_id == chips.H6:
137137
board_id = self._pine64_id()
138138
elif chip_id == chips.H5:
139-
board_id = self._armbian_id()
139+
board_id = self._armbian_id() or self._allwinner_variants_id()
140140
elif chip_id == chips.H616:
141-
board_id = self._armbian_id()
141+
board_id = self._armbian_id() or self._allwinner_variants_id()
142142
elif chip_id == chips.A33:
143143
board_id = self._clockwork_pi_id()
144144
elif chip_id == chips.RK3308:
@@ -434,6 +434,27 @@ def _asus_tinker_board_id(self):
434434
board = boards._ASUS_TINKER_BOARD_IDS
435435
return board
436436

437+
def _allwinner_variants_id(self):
438+
"""Try to detect the id of allwinner based board. (orangepi, nanopi)"""
439+
board_value = self.detector.get_device_model()
440+
board = None
441+
if not board_value:
442+
return board
443+
board_value = board_value.lower()
444+
chip_id = self.detector.chip.id
445+
if "nanopi" in board_value:
446+
if "neo" in board_value and "SUN8I" in chip_id:
447+
board = boards.NANOPI_NEO_AIR
448+
# TODO: Add other specifc board contexts here
449+
elif "orange pi" in board_value:
450+
if "zero" in board_value:
451+
if "H5" in chip_id:
452+
board = boards.ORANGE_PI_ZERO_PLUS_2H5
453+
elif "H616" in chip_id:
454+
board = boards.ORANGE_PI_ZERO_2
455+
# TODO: Add other specifc board contexts here
456+
return board
457+
437458
@property
438459
def any_nanopi(self):
439460
"""Check whether the current board is any defined Nano Pi."""

0 commit comments

Comments
 (0)