diff options
author | Richard Zhu <Richard.Zhu@freescale.com> | 2015-06-02 15:23:59 +0800 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:20:42 +0300 |
commit | 1b45678bae8008db9a2d426de57ef551c0014a2a (patch) | |
tree | c5e398cd888add319ccbd72a8a0c61124e11eb46 /drivers/clk/imx/clk-imx7d.c | |
parent | eb78fb25b0b74a4b7986794edc134212bb40b595 (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.c | 6 |
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]); |