mbox series

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

Message ID 1582099197-20327-1-git-send-email-peng.fan@nxp.com (mailing list archive)
Headers show
Series ARM: imx7ulp: add cpufreq using cpufreq-dt | expand

Message

Peng Fan Feb. 19, 2020, 7:59 a.m. UTC
From: Peng Fan <peng.fan@nxp.com>

V2:
 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

V1:
 https://patchwork.kernel.org/patch/11364609/

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
  enabled.

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:
https://patchwork.kernel.org/cover/11390481/

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

Comments

Peng Fan March 2, 2020, 1:40 a.m. UTC | #1
Hi Shawn,

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

Is it possible for you to pick up patch 1~8, 12? Or any comments?

Thanks,
Peng.

> 
> From: Peng Fan <peng.fan@nxp.com>
> 
> V2:
>  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
> 
> V1:
>  https://patchwork.kernel.org/patch/11364609/
> 
> 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
>   enabled.
> 
> 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:
> https://patchwork.kernel.org/cover/11390481/
> 
> 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
> 
> --
> 2.16.4
Fabio Estevam March 2, 2020, 5:48 p.m. UTC | #2
Hi Peng,

On Sun, Mar 1, 2020 at 10:40 PM Peng Fan <peng.fan@nxp.com> wrote:
>
> Hi Shawn,
>
> > Subject: [PATCH v2 00/14] ARM: imx7ulp: add cpufreq using cpufreq-dt
>
> Is it possible for you to pick up patch 1~8, 12? Or any comments?

I haven't tested this series, but just wanted to be sure that 720MHz
operational point will not be populated on a system in LDO-enabled
mode.

Please confirm.

Thanks
Peng Fan March 3, 2020, 1:08 a.m. UTC | #3
Hi Fabio,

> Subject: Re: [PATCH v2 00/14] ARM: imx7ulp: add cpufreq using cpufreq-dt
> 
> Hi Peng,
> 
> On Sun, Mar 1, 2020 at 10:40 PM Peng Fan <peng.fan@nxp.com> wrote:
> >
> > Hi Shawn,
> >
> > > Subject: [PATCH v2 00/14] ARM: imx7ulp: add cpufreq using cpufreq-dt
> >
> > Is it possible for you to pick up patch 1~8, 12? Or any comments?
> 
> I haven't tested this series, but just wanted to be sure that 720MHz
> operational point will not be populated on a system in LDO-enabled mode.
> 
> Please confirm.

Currently I added a check to disable HSRUN mode when LDO-enabled.

Thanks,
Peng.

> 
> Thanks