summaryrefslogtreecommitdiffstats
path: root/drivers/clk/ti
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2020-11-16 12:57:13 +0200
committerTony Lindgren <tony@atomide.com>2020-11-16 13:00:20 +0200
commitd36edb048f48babb3fbf9a4b249df115b7fab152 (patch)
tree1b57a6f043537bbc9257c6fb341150ffc4a3d20f /drivers/clk/ti
parent133ad7ab7005dc951fb66d3de9e29a8259fe9744 (diff)
downloadlinux-stable-d36edb048f48babb3fbf9a4b249df115b7fab152.tar.gz
linux-stable-d36edb048f48babb3fbf9a4b249df115b7fab152.tar.bz2
linux-stable-d36edb048f48babb3fbf9a4b249df115b7fab152.zip
clk: ti: am437x: Keep am4 l3 main clock always on for genpd
In order for suspend and resume to work with genpd on am4, we must keep l3 main clock always on. Otherwise prm_omap driver will shut down the l3 main clock on suspend when simple-pm-bus and GENPD_FLAG_PM_CLK are used. Note that we already keep the l3 main clock always on with the legacy platform code. Later on we may want to start managing the l3 main clock with a dedicated interconnect driver instead of using simple-pm-bus and GENPD_FLAG_PM_CLK. Cc: linux-clk@vger.kernel.org Cc: Michael Turquette <mturquette@baylibre.com> Cc: Stephen Boyd <sboyd@kernel.org> Cc: Tero Kristo <t-kristo@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'drivers/clk/ti')
-rw-r--r--drivers/clk/ti/clk-43xx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/clk/ti/clk-43xx.c b/drivers/clk/ti/clk-43xx.c
index e5538d577ce5..46c0add99570 100644
--- a/drivers/clk/ti/clk-43xx.c
+++ b/drivers/clk/ti/clk-43xx.c
@@ -272,6 +272,11 @@ static struct ti_dt_clk am43xx_clks[] = {
{ .node_name = NULL },
};
+static const char *enable_init_clks[] = {
+ /* AM4_L3_L3_MAIN_CLKCTRL, needed during suspend */
+ "l3-clkctrl:0000:0",
+};
+
int __init am43xx_dt_clk_init(void)
{
struct clk *clk1, *clk2;
@@ -283,6 +288,9 @@ int __init am43xx_dt_clk_init(void)
omap2_clk_disable_autoidle_all();
+ omap2_clk_enable_init_clocks(enable_init_clks,
+ ARRAY_SIZE(enable_init_clks));
+
ti_clk_add_aliases();
/*