summaryrefslogtreecommitdiff
path: root/drivers/clk/imx/clk-imx7d.c
diff options
context:
space:
mode:
authorRichard Zhu <Richard.Zhu@freescale.com>2015-06-02 15:23:59 +0800
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:20:42 +0300
commit1b45678bae8008db9a2d426de57ef551c0014a2a (patch)
treec5e398cd888add319ccbd72a8a0c61124e11eb46 /drivers/clk/imx/clk-imx7d.c
parenteb78fb25b0b74a4b7986794edc134212bb40b595 (diff)
MLK-11016 arm: clk: enable m4 root clk when m4 core is running
M4 root clk shouldn't be turn off when M4 core is running Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com> (cherry picked from commit 7a3734bd4d4a249d5d3e081fd6b6255da756a841)
Diffstat (limited to 'drivers/clk/imx/clk-imx7d.c')
-rw-r--r--drivers/clk/imx/clk-imx7d.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/clk/imx/clk-imx7d.c b/drivers/clk/imx/clk-imx7d.c
index 3c70b5110887..362ae49ab786 100644
--- a/drivers/clk/imx/clk-imx7d.c
+++ b/drivers/clk/imx/clk-imx7d.c
@@ -19,6 +19,7 @@
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/types.h>
+#include <soc/imx/src.h>
#include "clk.h"
@@ -892,6 +893,11 @@ static void __init imx7d_clocks_init(struct device_node *ccm_node)
for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
clk_prepare_enable(clks[clks_init_on[i]]);
+ if (imx_src_is_m4_enabled()) {
+ imx_clk_set_parent(clks[IMX7D_ARM_M4_ROOT_SRC], clks[IMX7D_PLL_SYS_MAIN_240M_CLK]);
+ imx_clk_prepare_enable(clks[IMX7D_ARM_M4_ROOT_CLK]);
+ }
+
imx_clk_set_parent(clks[IMX7D_PLL_ARM_MAIN_BYPASS], clks[IMX7D_PLL_ARM_MAIN]);
imx_clk_set_parent(clks[IMX7D_PLL_DRAM_MAIN_BYPASS], clks[IMX7D_PLL_DRAM_MAIN]);
imx_clk_set_parent(clks[IMX7D_PLL_SYS_MAIN_BYPASS], clks[IMX7D_PLL_SYS_MAIN]);