From 85730de9d9c587acf66e7da7056afceb2e13ee47 Mon Sep 17 00:00:00 2001 From: agstewart Date: Fri, 18 Jul 2025 01:23:14 -0500 Subject: [PATCH 1/6] Added support for Orange Pi 5 Pro running Armbian and official Orange Pi jammy Ubuntu Server image --- adafruit_platformdetect/board.py | 4 ++++ adafruit_platformdetect/constants/boards.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index d2de03b..dfef3fa 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -448,6 +448,8 @@ def _armbian_id(self) -> Optional[str]: board = boards.ORANGE_PI_5_PLUS elif board_value == "orangepi5": board = boards.ORANGE_PI_5 + elif board_value == "orangepi5-pro": + board = boards.ORANGE_PI_5_PRO elif board_value == "bananapim2zero": board = boards.BANANA_PI_M2_ZERO elif board_value == "bananapim2plus": @@ -518,6 +520,8 @@ def _orange_pi_id(self) -> Optional[str]: board_value = self.detector.get_device_model() if "OPi 5 Max" in board_value: return boards.ORANGE_PI_5_MAX + if "OPi 5 Pro" in board_value: + return boards.ORANGE_PI_5_PRO if "Orange Pi 5 Max" in board_value: return boards.ORANGE_PI_5_MAX if "Orange Pi 5 Plus" in board_value: diff --git a/adafruit_platformdetect/constants/boards.py b/adafruit_platformdetect/constants/boards.py index 80629f3..8064ae8 100644 --- a/adafruit_platformdetect/constants/boards.py +++ b/adafruit_platformdetect/constants/boards.py @@ -69,6 +69,7 @@ ORANGE_PI_5 = "ORANGE_PI_5" ORANGE_PI_5_MAX = "ORANGE_PI_5_MAX" ORANGE_PI_5_PLUS = "ORANGE_PI_5_PLUS" +ORANGE_PI_5_PRO = "ORANGE_PI_5_PRO" # Nano Pi boards NANOPI_NEO_AIR = "NANOPI_NEO_AIR" @@ -314,6 +315,7 @@ ORANGE_PI_4_LTS, ORANGE_PI_5, ORANGE_PI_5_PLUS, + ORANGE_PI_5_PRO ) # NanoPi From 84e017adbbfc107cd2394755826daee63b1a55b8 Mon Sep 17 00:00:00 2001 From: agstewart Date: Fri, 18 Jul 2025 17:05:25 -0500 Subject: [PATCH 2/6] added pylint disable line --- adafruit_platformdetect/board.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index dfef3fa..f83dbd9 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -532,6 +532,8 @@ def _orange_pi_id(self) -> Optional[str]: return boards.ORANGE_PI_3B return None + # pylint: enable=too-many-return-statements + def _sama5_id(self) -> Optional[str]: """Check what type sama5 board.""" board_value = self.detector.get_device_model() From 89d7ee3fdd4ef764b8ec59fae87e348af60ecb35 Mon Sep 17 00:00:00 2001 From: agstewart Date: Fri, 18 Jul 2025 18:02:32 -0500 Subject: [PATCH 3/6] added pylint lines --- adafruit_platformdetect/board.py | 1 + 1 file changed, 1 insertion(+) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index f83dbd9..49249d9 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -517,6 +517,7 @@ def _ameridroid_id(self) -> Optional[str]: return None def _orange_pi_id(self) -> Optional[str]: + # pylint: disable=too-many-return-statements board_value = self.detector.get_device_model() if "OPi 5 Max" in board_value: return boards.ORANGE_PI_5_MAX From 15ba5ece1040d0090285609ed2f122b693bcfe91 Mon Sep 17 00:00:00 2001 From: agstewart Date: Fri, 18 Jul 2025 18:20:47 -0500 Subject: [PATCH 4/6] reformatted 3 lines --- adafruit_platformdetect/constants/boards.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/adafruit_platformdetect/constants/boards.py b/adafruit_platformdetect/constants/boards.py index 8064ae8..6e1742e 100644 --- a/adafruit_platformdetect/constants/boards.py +++ b/adafruit_platformdetect/constants/boards.py @@ -315,7 +315,7 @@ ORANGE_PI_4_LTS, ORANGE_PI_5, ORANGE_PI_5_PLUS, - ORANGE_PI_5_PRO + ORANGE_PI_5_PRO, ) # NanoPi @@ -555,8 +555,8 @@ # https://github.com/beagleboard/image-builder # Thanks to zmatt on freenode #beagle for pointers. _BEAGLEBONE_BOARD_IDS = { - BEAGLE_PLAY: (("A0", "7.BEAGLE")), - BEAGLEBONE_AI64: (("B0", "7.BBONEA")), + BEAGLE_PLAY: ("A0", "7.BEAGLE"), + BEAGLEBONE_AI64: ("B0", "7.BBONEA"), # Original bone/white: BEAGLEBONE: ( ("A3", "A335BONE00A3"), From 4e59d9f78a1c99fdbbd20552febc28f9edf8d4e1 Mon Sep 17 00:00:00 2001 From: agstewart Date: Sun, 20 Jul 2025 03:13:02 -0500 Subject: [PATCH 5/6] added chip detection for RK3588S --- adafruit_platformdetect/board.py | 5 +++++ adafruit_platformdetect/chip.py | 3 +++ adafruit_platformdetect/constants/chips.py | 1 + 3 files changed, 9 insertions(+) diff --git a/adafruit_platformdetect/board.py b/adafruit_platformdetect/board.py index 49249d9..10660d7 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -209,6 +209,11 @@ def id(self) -> Optional[str]: or self._ameridroid_id() or self._vicharak_id() ) + elif chip_id == chips.RK3588S: + board_id = ( + self._orange_pi_id() + or self._armbian_id() + ) elif chip_id == chips.RYZEN_V1605B: board_id = self._udoo_id() elif chip_id == chips.PENTIUM_N3710: diff --git a/adafruit_platformdetect/chip.py b/adafruit_platformdetect/chip.py index 0eba6bc..cabc733 100644 --- a/adafruit_platformdetect/chip.py +++ b/adafruit_platformdetect/chip.py @@ -274,6 +274,9 @@ def _linux_id(self) -> Optional[str]: if self.detector.check_dt_compatible_value("rockchip,rk3568"): return chips.RK3568 + if self.detector.check_dt_compatible_value("rockchip,rk3588s"): + return chips.RK3588S + if self.detector.check_dt_compatible_value("rockchip,rk3588"): return chips.RK3588 diff --git a/adafruit_platformdetect/constants/chips.py b/adafruit_platformdetect/constants/chips.py index b166e4d..a08bf59 100644 --- a/adafruit_platformdetect/constants/chips.py +++ b/adafruit_platformdetect/constants/chips.py @@ -68,6 +68,7 @@ RK3566 = "RK3566" RK3568 = "RK3568" RK3588 = "RK3588" +RK3588S = "RK3588S" RV1103 = "RV1103" RV1106 = "RV1106" PENTIUM_N3710 = "PENTIUM_N3710" # SOC Braswell core From d914ee53cb331a2adb4cb9b521971b7b4109d257 Mon Sep 17 00:00:00 2001 From: agstewart Date: Sun, 20 Jul 2025 03:40:31 -0500 Subject: [PATCH 6/6] formatting fix --- 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 10660d7..b302d17 100644 --- a/adafruit_platformdetect/board.py +++ b/adafruit_platformdetect/board.py @@ -210,10 +210,7 @@ def id(self) -> Optional[str]: or self._vicharak_id() ) elif chip_id == chips.RK3588S: - board_id = ( - self._orange_pi_id() - or self._armbian_id() - ) + board_id = self._orange_pi_id() or self._armbian_id() elif chip_id == chips.RYZEN_V1605B: board_id = self._udoo_id() elif chip_id == chips.PENTIUM_N3710: