]> git.baikalelectronics.ru Git - kernel.git/commit
cpufreq: imx-cpufreq-dt: support i.MX7ULP
authorPeng Fan <peng.fan@nxp.com>
Tue, 28 Apr 2020 07:21:00 +0000 (15:21 +0800)
committerViresh Kumar <viresh.kumar@linaro.org>
Tue, 28 Apr 2020 08:56:20 +0000 (14:26 +0530)
commitd2205717dd42006d46126c24d19c792723ce8076
tree964c28ced1f1486163bff5489c9c46f527100291
parent8c93b221a251e3bdce433cecb8b8f463aca414f9
cpufreq: imx-cpufreq-dt: support i.MX7ULP

i.MX7ULP's ARM core clock design is totally different compared
with i.MX7D/8M SoCs which supported by imx-cpufreq-dt. It needs
get_intermediate and target_intermedate to configure clk MUX ready,
before let OPP configure ARM core clk.
                                          |---FIRC
     |------RUN---...---SCS(MUX2) --------|
ARM --(MUX1)                              |---SPLL_PFD0(CLK_SET_RATE_GATE)
     |------HSRUN--...--HSRUN_SCS(MUX3)---|
                                          |---SRIC

FIRC is step clk, SPLL_PFD0 is the normal clk driving ARM core.
MUX2 and MUX3 share same inputs. So if MUX2/MUX3 both sources from
SPLL_PFD0, both MUXes will lose input when configure SPLL_PFD0.
So the target_intermediate will configure MUX2/MUX3 to FIRC, to avoid
ARM core lose clk when configure SPLL_PFD0.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/imx-cpufreq-dt.c