[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190618114815.GJ28892@ulmo>
Date: Tue, 18 Jun 2019 13:48:15 +0200
From: Thierry Reding <thierry.reding@...il.com>
To: Sowjanya Komatineni <skomatineni@...dia.com>
Cc: jonathanh@...dia.com, tglx@...utronix.de, jason@...edaemon.net,
marc.zyngier@....com, linus.walleij@...aro.org, stefan@...er.ch,
mark.rutland@....com, pdeschrijver@...dia.com, pgaikwad@...dia.com,
sboyd@...nel.org, linux-clk@...r.kernel.org,
linux-gpio@...r.kernel.org, jckuo@...dia.com, josephl@...dia.com,
talho@...dia.com, linux-tegra@...r.kernel.org,
linux-kernel@...r.kernel.org, mperttunen@...dia.com,
spatra@...dia.com, robh+dt@...nel.org, digetx@...il.com,
devicetree@...r.kernel.org
Subject: Re: [PATCH V3 07/17] clk: tegra: save and restore CPU and System
clocks context
On Tue, Jun 18, 2019 at 12:46:21AM -0700, Sowjanya Komatineni wrote:
> During system suspend state, core power goes off and looses all the
> CAR controller register settings.
>
> This patch creates APIs for saving and restoring the context of Tegra
> CPUG, CPULP and SCLK.
>
> CPU and System clock context includes
> - CPUG, CPULP, and SCLK burst policy settings for clock sourcea of all
> their normal states.
> - SCLK divisor and System clock rate for restoring SCLK, AHB and APB
> rates on resume.
> - OSC_DIV settings which are used as reference clock input to some PLLs.
> - SPARE_REG and CLK_MASK settings.
>
> These APIs are used in Tegra210 clock driver during suspend and resume
> operation.
>
> Signed-off-by: Sowjanya Komatineni <skomatineni@...dia.com>
> ---
> drivers/clk/tegra/clk-tegra-super-gen4.c | 4 --
> drivers/clk/tegra/clk.c | 80 ++++++++++++++++++++++++++++++++
> drivers/clk/tegra/clk.h | 14 ++++++
> 3 files changed, 94 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/clk/tegra/clk-tegra-super-gen4.c b/drivers/clk/tegra/clk-tegra-super-gen4.c
> index cdfe7c9697e1..ed69ec4d883e 100644
> --- a/drivers/clk/tegra/clk-tegra-super-gen4.c
> +++ b/drivers/clk/tegra/clk-tegra-super-gen4.c
> @@ -19,10 +19,6 @@
> #define PLLX_MISC2 0x514
> #define PLLX_MISC3 0x518
>
> -#define CCLKG_BURST_POLICY 0x368
> -#define CCLKLP_BURST_POLICY 0x370
> -#define SCLK_BURST_POLICY 0x028
> -#define SYSTEM_CLK_RATE 0x030
> #define SCLK_DIVIDER 0x2c
>
> static DEFINE_SPINLOCK(sysrate_lock);
> diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c
> index 573e3c967ae1..26690663157a 100644
> --- a/drivers/clk/tegra/clk.c
> +++ b/drivers/clk/tegra/clk.c
> @@ -70,6 +70,12 @@ static struct clk **clks;
> static int clk_num;
> static struct clk_onecell_data clk_data;
>
> +static u32 cclkg_burst_policy_ctx[2];
> +static u32 cclklp_burst_policy_ctx[2];
> +static u32 sclk_burst_policy_ctx[2];
> +static u32 sys_clk_divisor_ctx, system_rate_ctx;
> +static u32 spare_ctx, misc_clk_enb_ctx, clk_arm_ctx;
> +
> /* Handlers for SoC-specific reset lines */
> static int (*special_reset_assert)(unsigned long);
> static int (*special_reset_deassert)(unsigned long);
> @@ -199,6 +205,80 @@ const struct tegra_clk_periph_regs *get_reg_bank(int clkid)
> }
> }
>
> +void tegra_cclkg_burst_policy_save_context(void)
> +{
> + int i;
This here (and the same goes for the other functions below) can be
unsigned int.
Otherwise:
Acked-by: Thierry Reding <treding@...dia.com>
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists