* [PATCH v3 04/11] soc: renesas: rcar-sysc: Make rcar_sysc_power_is_off() static [not found] ` <1457551127-21934-5-git-send-email-geert+renesas@glider.be> @ 2016-03-10 9:19 ` Laurent Pinchart 0 siblings, 0 replies; 3+ messages in thread From: Laurent Pinchart @ 2016-03-10 9:19 UTC (permalink / raw) To: linux-arm-kernel Hi Geert, Thank you for the patch. On Wednesday 09 March 2016 20:18:40 Geert Uytterhoeven wrote: > As of commit b12ff41658171f53 ("ARM: shmobile: r8a7779: Remove legacy PM > Domain remainings"), rcar_sysc_power_is_off() is no longer used from > SoC-specific code. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > v3: > - New. > --- > drivers/soc/renesas/rcar-sysc.c | 2 +- > include/linux/soc/renesas/rcar-sysc.h | 1 - > 2 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/soc/renesas/rcar-sysc.c > b/drivers/soc/renesas/rcar-sysc.c index 6b21ea2a65bf59b9..28af0b704fc008d2 > 100644 > --- a/drivers/soc/renesas/rcar-sysc.c > +++ b/drivers/soc/renesas/rcar-sysc.c > @@ -149,7 +149,7 @@ int rcar_sysc_power_up(const struct rcar_sysc_ch > *sysc_ch) return rcar_sysc_power(sysc_ch, true); > } > > -bool rcar_sysc_power_is_off(const struct rcar_sysc_ch *sysc_ch) > +static bool rcar_sysc_power_is_off(const struct rcar_sysc_ch *sysc_ch) > { > unsigned int st; > > diff --git a/include/linux/soc/renesas/rcar-sysc.h > b/include/linux/soc/renesas/rcar-sysc.h index > 96f30c2883881d97..92fc613ab23db091 100644 > --- a/include/linux/soc/renesas/rcar-sysc.h > +++ b/include/linux/soc/renesas/rcar-sysc.h > @@ -11,7 +11,6 @@ struct rcar_sysc_ch { > > int rcar_sysc_power_down(const struct rcar_sysc_ch *sysc_ch); > int rcar_sysc_power_up(const struct rcar_sysc_ch *sysc_ch); > -bool rcar_sysc_power_is_off(const struct rcar_sysc_ch *sysc_ch); > void __iomem *rcar_sysc_init(phys_addr_t base); > > #endif /* __LINUX_SOC_RENESAS_RCAR_SYSC_H__ */ -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <1457551127-21934-6-git-send-email-geert+renesas@glider.be>]
* [PATCH v3 05/11] soc: renesas: rcar-sysc: Enable Clock Domain for r8a7795 I/O devices [not found] ` <1457551127-21934-6-git-send-email-geert+renesas@glider.be> @ 2016-03-10 9:40 ` Laurent Pinchart 2016-03-10 9:51 ` Geert Uytterhoeven 0 siblings, 1 reply; 3+ messages in thread From: Laurent Pinchart @ 2016-03-10 9:40 UTC (permalink / raw) To: linux-arm-kernel Hi Geert, Thank you for the patch. On Wednesday 09 March 2016 20:18:41 Geert Uytterhoeven wrote: > On R-Car H3, some power areas (e.g. A3VP) contain I/O devices, which are > also part of the CPG/MSSR Clock Domain. Hook up the CPG/MSSR Clock > Domain attach/detach callbacks to enable power management using module > clocks. > > This also allows to support the Clock Domain for devices in the > "always-on" power area. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > Cc: Michael Turquette <mturquette@baylibre.com> > Cc: Stephen Boyd <sboyd@codeaurora.org> > --- > v3: > - Hook up the CPG/MSSR Clock Domain attach/detach callbacks instead of > using our own copies, > > v2: > - New. > --- > drivers/soc/renesas/rcar-sysc.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/soc/renesas/rcar-sysc.c > b/drivers/soc/renesas/rcar-sysc.c index 28af0b704fc008d2..2d6fbeb481883be7 > 100644 > --- a/drivers/soc/renesas/rcar-sysc.c > +++ b/drivers/soc/renesas/rcar-sysc.c > @@ -9,6 +9,7 @@ > * for more details. > */ > > +#include <linux/clk/renesas.h> > #include <linux/delay.h> > #include <linux/err.h> > #include <linux/mm.h> > @@ -251,6 +252,15 @@ static void __init rcar_sysc_pd_setup(struct > device_node *np, gov = &pm_domain_always_on_gov; > } > > +#ifdef CONFIG_ARCH_R8A7795 This is fine for now as the R8A7795 is the only ARM64 model in the R-Car family, but how do you plan to move forward on this ? Will it be enabled for ARM64 SoCs straight away, and for ARM32 SoCs when switching from the cpg to the always-on power domain ? > + if (!(pd->flags & (PD_CPU | PD_SCU))) { > + /* Enable Clock Domain for I/O devices */ > + genpd->flags = GENPD_FLAG_PM_CLK; > + genpd->attach_dev = cpg_mssr_attach_dev; > + genpd->detach_dev = cpg_mssr_detach_dev; > + } > +#endif > + > pm_genpd_init(genpd, gov, false); > genpd->dev_ops.active_wakeup = rcar_sysc_active_wakeup; > genpd->power_off = rcar_sysc_pd_power_off; -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 05/11] soc: renesas: rcar-sysc: Enable Clock Domain for r8a7795 I/O devices 2016-03-10 9:40 ` [PATCH v3 05/11] soc: renesas: rcar-sysc: Enable Clock Domain for r8a7795 I/O devices Laurent Pinchart @ 2016-03-10 9:51 ` Geert Uytterhoeven 0 siblings, 0 replies; 3+ messages in thread From: Geert Uytterhoeven @ 2016-03-10 9:51 UTC (permalink / raw) To: linux-arm-kernel Hi Laurent, On Thu, Mar 10, 2016 at 10:40 AM, Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > On Wednesday 09 March 2016 20:18:41 Geert Uytterhoeven wrote: >> On R-Car H3, some power areas (e.g. A3VP) contain I/O devices, which are >> also part of the CPG/MSSR Clock Domain. Hook up the CPG/MSSR Clock >> Domain attach/detach callbacks to enable power management using module >> clocks. >> >> This also allows to support the Clock Domain for devices in the >> "always-on" power area. >> >> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> >> --- a/drivers/soc/renesas/rcar-sysc.c >> +++ b/drivers/soc/renesas/rcar-sysc.c >> @@ -251,6 +252,15 @@ static void __init rcar_sysc_pd_setup(struct >> device_node *np, gov = &pm_domain_always_on_gov; >> } >> >> +#ifdef CONFIG_ARCH_R8A7795 > > This is fine for now as the R8A7795 is the only ARM64 model in the R-Car > family, but how do you plan to move forward on this ? Will it be enabled for > ARM64 SoCs straight away, and for ARM32 SoCs when switching from the cpg to > the always-on power domain ? > >> + if (!(pd->flags & (PD_CPU | PD_SCU))) { >> + /* Enable Clock Domain for I/O devices */ >> + genpd->flags = GENPD_FLAG_PM_CLK; >> + genpd->attach_dev = cpg_mssr_attach_dev; >> + genpd->detach_dev = cpg_mssr_detach_dev; >> + } >> +#endif When enabling the always-on power domain for R-Car H1 and Gen2, this should become: if (!(pd->flags & (PD_CPU | PD_SCU))) { /* Enable Clock Domain for I/O devices */ genpd->flags = GENPD_FLAG_PM_CLK; #ifdef CONFIG_ARCH_R8A7795 /* or CONFIG_ARM64 */ genpd->attach_dev = cpg_mssr_attach_dev; genpd->detach_dev = cpg_mssr_detach_dev; #else genpd->attach_dev = cpg_mstp_attach_dev; genpd->detach_dev = cpg_mstp_detach_dev; #endif It becomes more gory when migrating R-Car H1 and Gen2 to CPG/MSSR, and maintaining backwards compatibility, as which callbacks to choose will depend on the presence of "renesas,cpg-mstp-clocks" device nodes in DT, and a new CONFIG_CLK_RENESAS_LEGACY option. Needless to say, it'll be more complex if not all SoCs migrate at once... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-10 9:51 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1457551127-21934-1-git-send-email-geert+renesas@glider.be> [not found] ` <1457551127-21934-5-git-send-email-geert+renesas@glider.be> 2016-03-10 9:19 ` [PATCH v3 04/11] soc: renesas: rcar-sysc: Make rcar_sysc_power_is_off() static Laurent Pinchart [not found] ` <1457551127-21934-6-git-send-email-geert+renesas@glider.be> 2016-03-10 9:40 ` [PATCH v3 05/11] soc: renesas: rcar-sysc: Enable Clock Domain for r8a7795 I/O devices Laurent Pinchart 2016-03-10 9:51 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).