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

neil.armstrong at linaro.org neil.armstrong at linaro.org
Thu Jul 3 09:31:22 CEST 2025


On 02/07/2025 20:01, Aswin Murugan wrote:
> 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.

Well this affects all SoCs, so please all SoC entries in the RPMH Power domain driver!

Neil

> 
> Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
> ---
> v3:
> - Removed OF_LIVE_SA8775P config, since there is no SA8775P specific fixups are done
> 
> v2:
> - Removed the power domain fixups, since the power domains are handled in qcom-rpmhpd driver
> ---
>   arch/arm/mach-snapdragon/of_fixup.c | 32 +----------------------------
>   1 file changed, 1 insertion(+), 31 deletions(-)
> 
> 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;
>   }



More information about the U-Boot mailing list