[PATCH v2 00/14] ARM: imx7ulp: add cpufreq using cpufreq-dt

From: peng . fan
Date: Wed Feb 19 2020 - 03:06:08 EST

From: Peng Fan <peng.fan@xxxxxxx>

Per Stephen's comments, I drop the cpuv2 clk code, and find another
solution to change ARM clk
Included get_intermediate/target_intermedate for cpufreq-dt
Add i.MX7ULP intermedidate implementation.
Per Fabio's comments, disallow HSRUN when LDO enabled.
Add dt-bindings and pmc node


This patchset aims to use cpufreq-dt for i.MX7ULP to avoid
plaform specific cpufreq driver. i.MX7ULP has some specicial
requirements to change ARM core clock, see patch 11/13,
"cpufreq: imx-cpufreq-dt: support i.MX7ULP"

Patch [1,2]/13: add pmc bindings and node. We need read pmc registers
to get system info.
Patch [3-6]/13: i.MX7ULP clk pfd/pll code change to make sure to get the
expected pfd output clk. For RUN/HSRUN clock, we use API
imx_clk_hw_cpu to make sure RUN or HSRUN could not shutdown clock output.

Patch [7-8]/13: Make sure we could run into HSRUN mode and not when LDO

Patch 9/13: let cpufred-dt could have get_intermediate/target_intermediate
hooks to allow platform specific freq set.

Patch [10-12]/13: i.MX7ULP cpufreq support

Patch 13/13: Test dts, should not apply.

For rpmsg/vitio part, I have posted patchset, if you wanna rpmsg regulator:

Anson Huang (1):
clk: imx: Fix division by zero warning on pfdv2

Peng Fan (13):
dt-bindings: fsl: add i.MX7ULP PMC binding doc
ARM: dts: imx7ulp: add pmc node
clk: imx: pfdv2: switch to use determine_rate
clk: imx: pfdv2: determine best parent rate
clk: imx: pllv4: use prepare/unprepare
clk: imx7ulp: make it easy to change ARM core clk
ARM: imx: imx7ulp: support HSRUN mode
ARM: imx: cpuidle-imx7ulp: Stop mode disallowed when HSRUN
cpufreq: dt: Allow platform specific intermediate callbacks
cpufreq: Add i.MX7ULP to cpufreq-dt-platdev blacklist
cpufreq: imx-cpufreq-dt: support i.MX7ULP
ARM: imx7ulp: enable cpufreq
[Do not Apply] ARM: dts: imx7ulp: add cpu OPP points

.../bindings/arm/freescale/imx7ulp_pmc.yaml | 32 +++++++++
arch/arm/boot/dts/imx7ulp.dtsi | 38 ++++++++++
arch/arm/mach-imx/common.h | 1 +
arch/arm/mach-imx/cpuidle-imx7ulp.c | 14 +++-
arch/arm/mach-imx/mach-imx7ulp.c | 3 +
arch/arm/mach-imx/pm-imx7ulp.c | 25 +++++++
drivers/clk/imx/clk-imx7ulp.c | 6 +-
drivers/clk/imx/clk-pfdv2.c | 61 +++++++++++-----
drivers/clk/imx/clk-pllv4.c | 12 ++--
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
drivers/cpufreq/cpufreq-dt.c | 4 ++
drivers/cpufreq/cpufreq-dt.h | 4 ++
drivers/cpufreq/imx-cpufreq-dt.c | 83 +++++++++++++++++++++-
include/dt-bindings/clock/imx7ulp-clock.h | 5 +-
14 files changed, 257 insertions(+), 32 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/freescale/imx7ulp_pmc.yaml