[PATCH 4/7] Exynos: add support for 'domain-always-on' property

Tobias Jakobi liquid.acid at gmx.net
Tue Jul 1 01:52:14 PDT 2014


Hello Marek,

I think you had a similar patch in the tizen tree, but according to
Tomasz Figa, it was considered a hack. I don't quite see how this is
different.

Also, if I have been following the discussion correctly, then the
powerdomain issue essentially is about the question which SoC block
needs the LCD0 domain and how the proper power on/off sequences should
look like.

At least the mixer power issue, which I pointed out some time ago, seems
to be deal with now:
https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/commit/?h=exynos-drm-next&id=381be025ac1a6dc8efebdf146ced0d4a6007f77b

With best wishes,
Tobias




Marek Szyprowski wrote:
> This patch adds support for domain-always-on property to Exynos power
> domain driver. Domains with this property as always kept enabled.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
>  Documentation/devicetree/bindings/arm/exynos/power_domain.txt | 2 ++
>  arch/arm/mach-exynos/pm_domains.c                             | 6 +++++-
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> index 5216b419016a..b25d9b1ce471 100644
> --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt
> @@ -8,6 +8,8 @@ Required Properties:
>      * samsung,exynos4210-pd - for exynos4210 type power domain.
>  - reg: physical base address of the controller and length of memory mapped
>      region.
> +Optional properties:
> +- domain-always-on:	keeps the domain always enabled
>  
>  Node of a device using power domains must have a samsung,power-domain property
>  defined with a phandle to respective power domain.
> diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
> index fe6570ebbdde..279b008de02f 100644
> --- a/arch/arm/mach-exynos/pm_domains.c
> +++ b/arch/arm/mach-exynos/pm_domains.c
> @@ -151,6 +151,7 @@ static __init int exynos4_pm_init_power_domain(void)
>  	struct device_node *np;
>  
>  	for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") {
> +		struct dev_power_governor *gov = NULL;
>  		struct exynos_pm_domain *pd;
>  		int on;
>  
> @@ -163,6 +164,9 @@ static __init int exynos4_pm_init_power_domain(void)
>  			return -ENOMEM;
>  		}
>  
> +		if (of_property_read_bool(np, "domain-always-on"))
> +			gov = &pm_domain_always_on_gov;
> +
>  		pd->pd.name = kstrdup(np->name, GFP_KERNEL);
>  		pd->name = pd->pd.name;
>  		pd->base = of_iomap(np, 0);
> @@ -174,7 +178,7 @@ static __init int exynos4_pm_init_power_domain(void)
>  
>  		on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN;
>  
> -		pm_genpd_init(&pd->pd, NULL, !on);
> +		pm_genpd_init(&pd->pd, gov, !on);
>  	}
>  
>  	bus_register_notifier(&platform_bus_type, &platform_nb);
> 



More information about the dri-devel mailing list