[PATCH v3 05/11] soc: renesas: rcar-sysc: Enable Clock Domain for r8a7795 I/O devices
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Mar 10 01:40:58 PST 2016
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 at glider.be>
> Cc: Michael Turquette <mturquette at baylibre.com>
> Cc: Stephen Boyd <sboyd at 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
More information about the linux-arm-kernel
mailing list