On 6 September 2012 15:08, Tomasz Figa <t.figa@xxxxxxxxxxx> wrote: > Initial state of power domains might vary on different boards and with > different bootloaders. This patch adds detection of initial state of > power domains when being registered from DT. > > Signed-off-by: Tomasz Figa <t.figa@xxxxxxxxxxx> > Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > --- > Documentation/devicetree/bindings/arm/exynos/power_domain.txt | 4 ---- > arch/arm/mach-exynos/pm_domains.c | 8 +++++--- > 2 files changed, 5 insertions(+), 7 deletions(-) > > diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > index 6528e21..843b546 100644 > --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > @@ -9,10 +9,6 @@ Required Properties: > - reg: physical base address of the controller and length of memory mapped > region. > > -Optional Properties: > -- samsung,exynos4210-pd-off: Specifies that the power domain is in turned-off > - state during boot and remains to be turned-off until explicitly turned-on. > - > Example: > > lcd0: power-domain-lcd0 { > diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c > index c0bc83a..d1abc1a 100644 > --- a/arch/arm/mach-exynos/pm_domains.c > +++ b/arch/arm/mach-exynos/pm_domains.c > @@ -89,6 +89,7 @@ static __init int exynos_pm_dt_parse_domains(void) > > for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { > struct exynos_pm_domain *pd; > + int on; > > pd = kzalloc(sizeof(*pd), GFP_KERNEL); > if (!pd) { > @@ -97,14 +98,15 @@ static __init int exynos_pm_dt_parse_domains(void) > return -ENOMEM; > } > > - if (of_get_property(np, "samsung,exynos4210-pd-off", NULL)) > - pd->is_off = true; > pd->name = np->name; > pd->base = of_iomap(np, 0); > pd->pd.power_off = exynos_pd_power_off; > pd->pd.power_on = exynos_pd_power_on; > pd->pd.of_node = np; > - pm_genpd_init(&pd->pd, NULL, false); > + > + on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN; > + > + pm_genpd_init(&pd->pd, NULL, !on); > } > return 0; > } Acked-by: Thomas Abraham <thomas.abraham@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html