[PATCH v2 3/4] mach-snapdragon: fixup power-domains

Aswin Murugan aswin.murugan at oss.qualcomm.com
Wed Jul 2 19:13:34 CEST 2025


RPMH power domain properties were initially removed from the
device tree due to the absence of driver support. Support for
SA8775P_MMCX and SA8775P_MMCX_AO has now been added in the RPMH
Power Domain Driver for the SA8775P platform.

Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
---
v2:
- Power domain fixups have been removed since they are now managed by qcom-rpmhpd driver
---
 arch/arm/mach-snapdragon/Kconfig    |  7 +++++++
 arch/arm/mach-snapdragon/of_fixup.c | 32 +----------------------------
 2 files changed, 8 insertions(+), 31 deletions(-)

diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig
index 976c0e35fce..28e564889bc 100644
--- a/arch/arm/mach-snapdragon/Kconfig
+++ b/arch/arm/mach-snapdragon/Kconfig
@@ -1,5 +1,12 @@
 if ARCH_SNAPDRAGON
 
+config OF_LIVE_SA8775P
+	bool "Enable OF LIVE SA8775P"
+	select OF_LIVE
+	help
+	  Say Y here to enable support for OF LIVE fixups
+	  on the Snapdragon SA8775 SoC.
+
 config SYS_SOC
 	default "snapdragon"
 
diff --git a/arch/arm/mach-snapdragon/of_fixup.c b/arch/arm/mach-snapdragon/of_fixup.c
index b398c6b7b9f..e36c541ac42 100644
--- a/arch/arm/mach-snapdragon/of_fixup.c
+++ b/arch/arm/mach-snapdragon/of_fixup.c
@@ -19,6 +19,7 @@
 #define pr_fmt(fmt) "of_fixup: " fmt
 
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
 #include <dm/of_access.h>
 #include <dm/of.h>
 #include <event.h>
@@ -129,36 +130,6 @@ static void fixup_usb_nodes(struct device_node *root)
 	}
 }
 
-/* Remove all references to the rpmhpd device */
-static void fixup_power_domains(struct device_node *root)
-{
-	struct device_node *pd = NULL, *np = NULL;
-	struct property *prop;
-	const __be32 *val;
-
-	/* All Qualcomm platforms name the rpm(h)pd "power-controller" */
-	for_each_of_allnodes_from(root, pd) {
-		if (pd->name && !strcmp("power-controller", pd->name))
-			break;
-	}
-
-	/* Sanity check that this is indeed a power domain controller */
-	if (!of_find_property(pd, "#power-domain-cells", NULL)) {
-		log_err("Found power-controller but it doesn't have #power-domain-cells\n");
-		return;
-	}
-
-	/* Remove all references to the power domain controller */
-	for_each_of_allnodes_from(root, np) {
-		if (!(prop = of_find_property(np, "power-domains", NULL)))
-			continue;
-
-		val = prop->value;
-		if (val[0] == cpu_to_fdt32(pd->phandle))
-			of_remove_property(np, prop);
-	}
-}
-
 #define time_call(func, ...) \
 	do { \
 		u64 start = timer_get_us(); \
@@ -171,7 +142,6 @@ static int qcom_of_fixup_nodes(void * __maybe_unused ctx, struct event *event)
 	struct device_node *root = event->data.of_live_built.root;
 
 	time_call(fixup_usb_nodes, root);
-	time_call(fixup_power_domains, root);
 
 	return 0;
 }
-- 
2.34.1



More information about the U-Boot mailing list