From fd6cf0666c0a627284e66b07a545ca49289c3bc7 Mon Sep 17 00:00:00 2001 From: David ML Brown Jr Date: Tue, 23 Dec 2025 15:19:38 -0800 Subject: [PATCH 1/4] Support BananaPi P2 Pro This adds support for BananaPi P2 Pro, at least how I need it to work... Signed-off-by: David ML Brown Jr --- adafruit_platformdetect/board.py | 14 +++++++++++++- adafruit_platformdetect/constants/boards.py | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index ba7cc75..3506f41 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -180,7 +180,10 @@ def id(self) -> Optional[str]: elif chip_id == chips.RZV2H: board_id = self._armbian_id() or self._renesas_variants_id() elif chip_id == chips.RK3308: - board_id = self._rock_pi_id() + board_id = ( + self._rock_pi_id() + or self._banana_pi_id() + ) elif chip_id == chips.RK3399: board_id = ( self._rock_pi_id() @@ -484,6 +487,8 @@ def _armbian_id(self) -> Optional[str]: board = boards.BANANA_PI_AI2N elif board_value == "bananapiai2h": board = boards.BANANA_PI_AI2H + elif board_value == "bananapip2pro": + board = boards.BANANA_PI_P2_PRO elif board_value == "orangepizeroplus2-h5": board = boards.ORANGE_PI_ZERO_PLUS_2H5 elif board_value == "orangepizeroplus": @@ -551,6 +556,13 @@ def _orange_pi_id(self) -> Optional[str]: # pylint: enable=too-many-return-statements + def _banana_pi_id(self) -> Optional[str]: + """Check what type of Banana Pi board.""" + board_value = self.detector.get_device_model() + if "bpi-p2-pro" in board_value: + return boards.BANANA_PI_P2_PRO + return None + def _sama5_id(self) -> Optional[str]: """Check what type sama5 board.""" board_value = self.detector.get_device_model() diff --git a/adafruit_platformdetect/constants/boards.py b/adafruit_platformdetect/constants/boards.py index 98bdac1..dcaab5d 100644 --- a/adafruit_platformdetect/constants/boards.py +++ b/adafruit_platformdetect/constants/boards.py @@ -89,6 +89,7 @@ BANANA_PI_F5 = "BANANA_PI_F5" BANANA_PI_AI2N = "BANANA_PI_AI2N" BANANA_PI_AI2H = "BANANA_PI_AI2H" +BANANA_PI_P2_PRO = "BANANA_PI_P2_PRO" # LeMaker boards LEMAKER_BANANA_PRO = "LEMAKER_BANANA_PRO" @@ -349,6 +350,7 @@ BANANA_PI_F5, BANANA_PI_AI2N, BANANA_PI_AI2H, + BANANA_PI_P2_PRO, ) # LeMaker From 123cc29e43984c12e5bd775bf44c2b9883e56cbf Mon Sep 17 00:00:00 2001 From: David ML Brown Jr Date: Tue, 23 Dec 2025 16:10:52 -0800 Subject: [PATCH 2/4] Fix pre-commit Signed-off-by: David ML Brown Jr --- adafruit_platformdetect/board.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index 3506f41..4eaba47 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -180,10 +180,7 @@ def id(self) -> Optional[str]: elif chip_id == chips.RZV2H: board_id = self._armbian_id() or self._renesas_variants_id() elif chip_id == chips.RK3308: - board_id = ( - self._rock_pi_id() - or self._banana_pi_id() - ) + board_id = self._rock_pi_id() or self._banana_pi_id() elif chip_id == chips.RK3399: board_id = ( self._rock_pi_id() From a5cc8040e125164da262e2734f09b90e15025a58 Mon Sep 17 00:00:00 2001 From: David ML Brown Jr Date: Tue, 23 Dec 2025 16:30:46 -0800 Subject: [PATCH 3/4] got the wrong dts model string Signed-off-by: David ML Brown Jr --- adafruit_platformdetect/board.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index 4eaba47..fdd0c7a 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -556,7 +556,7 @@ def _orange_pi_id(self) -> Optional[str]: def _banana_pi_id(self) -> Optional[str]: """Check what type of Banana Pi board.""" board_value = self.detector.get_device_model() - if "bpi-p2-pro" in board_value: + if "bpi-p2pro" in board_value: return boards.BANANA_PI_P2_PRO return None From cd1555f3f24ff99295165ba643bc42e9786626d9 Mon Sep 17 00:00:00 2001 From: David ML Brown Jr Date: Tue, 23 Dec 2025 16:33:09 -0800 Subject: [PATCH 4/4] didn't need this part Signed-off-by: David ML Brown Jr --- adafruit_platformdetect/board.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index fdd0c7a..8d4cc40 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -484,8 +484,6 @@ def _armbian_id(self) -> Optional[str]: board = boards.BANANA_PI_AI2N elif board_value == "bananapiai2h": board = boards.BANANA_PI_AI2H - elif board_value == "bananapip2pro": - board = boards.BANANA_PI_P2_PRO elif board_value == "orangepizeroplus2-h5": board = boards.ORANGE_PI_ZERO_PLUS_2H5 elif board_value == "orangepizeroplus":