mbox series

[v4,0/4] Add CPU Frequency scaling support on Armada 37xx

Message ID 20171214150006.25438-1-gregory.clement@free-electrons.com
Headers show
Series Add CPU Frequency scaling support on Armada 37xx | expand

Message

Gregory CLEMENT Dec. 14, 2017, 3 p.m. UTC
Hi,

This is the forth version of a series adding the CPU Frequency support
on Armada 37xx using DVFS. It is based on the initial work of Evan
Wang and Victor Gu.

This time the only change is fixing the last white space issues found
by Viresh. This was not mandatory but it is good to start with a clean
new file.

The last patch is for arm-soc the arm-soc subsystem through mvebu and
update the device tree to support the CPU frequency scaling.

An update on the CPU clock driver is needed in order to take into
account the DVFS setting. It's the purpose of an other series already
sent, but is no dependencies between the series (for building or at
runtime).

Thanks,

Gregory

Changelog:

v1 -> v2:

 - using syscon instead of nb_pm for the binding of the North bridge
   power management unit: reported by Rob Herring

 - fix sorting inside the big LITTLE section for the Kconfig: reported
   by Viresh Kumar

 - fix the bogus freq calculation in armada37xx_cpufreq_driver_init,
   bug reported by Andre Heider

 - use dev_pm_opp_remove() on the previous opp if dev_pm_opp_add()
   failed, reported by Viresh Kumar

 - add the Tested-by flag from Andre Heider on "cpufreq: Add DVFS
   support for Armada 37xx" patch

v2 -> v3:

 - move patches "cpufreq: ARM: sort the Kconfig menu", " cpufreq:
   sort the drivers in ARM part", "cpufreq: mvebu: Use
   dev_pm_opp_remove()" in separate series

- add reviewed-by and acked-by flags on the commits

- use space instead of tab in the #define in the armada-37xx-cpufreq.c file.

v3 -> v4

 - fix white space in the armada-37xx-cpufreq.c file.

Gregory CLEMENT (4):
  dt-bindings: marvell: Add documentation for the North Bridge PM on
    Armada 37xx
  MAINTAINERS: add new entries for Armada 37xx cpufreq driver
  cpufreq: Add DVFS support for Armada 37xx
  arm64: dts: marvell: armada-37xx: add nodes allowing cpufreq support

 .../bindings/arm/marvell/armada-37xx.txt           |  19 ++
 MAINTAINERS                                        |   1 +
 arch/arm64/boot/dts/marvell/armada-372x.dtsi       |   1 +
 arch/arm64/boot/dts/marvell/armada-37xx.dtsi       |   7 +
 drivers/cpufreq/Kconfig.arm                        |   7 +
 drivers/cpufreq/Makefile                           |   1 +
 drivers/cpufreq/armada-37xx-cpufreq.c              | 241 +++++++++++++++++++++
 7 files changed, 277 insertions(+)
 create mode 100644 drivers/cpufreq/armada-37xx-cpufreq.c

Comments

Viresh Kumar Dec. 14, 2017, 3:36 p.m. UTC | #1
On 14-12-17, 16:00, Gregory CLEMENT wrote:
> This patch adds DVFS support for the Armada 37xx SoCs
> 
> There are up to four CPU frequency loads for Armada 37xx controlled by
> the hardware.
> 
> This driver associates the CPU load level to a frequency, then the
> hardware will switch while selecting a load level.
> 
> The hardware also can associate a voltage for each level (AVS support)
> but it is not yet supported
> 
> Tested-by: Andre Heider <a.heider@gmail.com>
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
>  drivers/cpufreq/Kconfig.arm           |   7 +
>  drivers/cpufreq/Makefile              |   1 +
>  drivers/cpufreq/armada-37xx-cpufreq.c | 241 ++++++++++++++++++++++++++++++++++
>  3 files changed, 249 insertions(+)
>  create mode 100644 drivers/cpufreq/armada-37xx-cpufreq.c

Thanks for taking care of very minor review comments I had. All the
patches look good now to me :)
Gregory CLEMENT Dec. 15, 2017, 3 p.m. UTC | #2
Hi,
 
 On jeu., déc. 14 2017, Gregory CLEMENT <gregory.clement@free-electrons.com> wrote:

> In order to be able to use cpu freq, we need to associate a clock to each
> CPU and to expose the power management registers.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

Applied on mvebu/dt64

Gregory

> ---
>  arch/arm64/boot/dts/marvell/armada-372x.dtsi | 1 +
>  arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 7 +++++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/marvell/armada-372x.dtsi b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
> index 59d7557d3b1b..2554e0baea6b 100644
> --- a/arch/arm64/boot/dts/marvell/armada-372x.dtsi
> +++ b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
> @@ -56,6 +56,7 @@
>  			device_type = "cpu";
>  			compatible = "arm,cortex-a53","arm,armv8";
>  			reg = <0x1>;
> +			clocks = <&nb_periph_clk 16>;
>  			enable-method = "psci";
>  		};
>  	};
> diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> index 90c26d616a54..3056d7168e0b 100644
> --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
> @@ -65,6 +65,7 @@
>  			device_type = "cpu";
>  			compatible = "arm,cortex-a53", "arm,armv8";
>  			reg = <0>;
> +			clocks = <&nb_periph_clk 16>;
>  			enable-method = "psci";
>  		};
>  	};
> @@ -234,6 +235,12 @@
>  				};
>  			};
>  
> +			nb_pm: syscon@14000 {
> +				compatible = "marvell,armada-3700-nb-pm",
> +					     "syscon";
> +				reg = <0x14000 0x60>;
> +			};
> +
>  			pinctrl_sb: pinctrl@18800 {
>  				compatible = "marvell,armada3710-sb-pinctrl",
>  					     "syscon", "simple-mfd";
> -- 
> 2.15.1
>
Rafael J. Wysocki Dec. 17, 2017, 6:08 p.m. UTC | #3
On Thursday, December 14, 2017 4:36:31 PM CET Viresh Kumar wrote:
> On 14-12-17, 16:00, Gregory CLEMENT wrote:
> > This patch adds DVFS support for the Armada 37xx SoCs
> > 
> > There are up to four CPU frequency loads for Armada 37xx controlled by
> > the hardware.
> > 
> > This driver associates the CPU load level to a frequency, then the
> > hardware will switch while selecting a load level.
> > 
> > The hardware also can associate a voltage for each level (AVS support)
> > but it is not yet supported
> > 
> > Tested-by: Andre Heider <a.heider@gmail.com>
> > Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
> > Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> > ---
> >  drivers/cpufreq/Kconfig.arm           |   7 +
> >  drivers/cpufreq/Makefile              |   1 +
> >  drivers/cpufreq/armada-37xx-cpufreq.c | 241 ++++++++++++++++++++++++++++++++++
> >  3 files changed, 249 insertions(+)
> >  create mode 100644 drivers/cpufreq/armada-37xx-cpufreq.c
> 
> Thanks for taking care of very minor review comments I had. All the
> patches look good now to me :)

All applied, thanks!

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael J. Wysocki Dec. 17, 2017, 6:12 p.m. UTC | #4
On Sunday, December 17, 2017 7:08:53 PM CET Rafael J. Wysocki wrote:
> On Thursday, December 14, 2017 4:36:31 PM CET Viresh Kumar wrote:
> > On 14-12-17, 16:00, Gregory CLEMENT wrote:
> > > This patch adds DVFS support for the Armada 37xx SoCs
> > > 
> > > There are up to four CPU frequency loads for Armada 37xx controlled by
> > > the hardware.
> > > 
> > > This driver associates the CPU load level to a frequency, then the
> > > hardware will switch while selecting a load level.
> > > 
> > > The hardware also can associate a voltage for each level (AVS support)
> > > but it is not yet supported
> > > 
> > > Tested-by: Andre Heider <a.heider@gmail.com>
> > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
> > > Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> > > ---
> > >  drivers/cpufreq/Kconfig.arm           |   7 +
> > >  drivers/cpufreq/Makefile              |   1 +
> > >  drivers/cpufreq/armada-37xx-cpufreq.c | 241 ++++++++++++++++++++++++++++++++++
> > >  3 files changed, 249 insertions(+)
> > >  create mode 100644 drivers/cpufreq/armada-37xx-cpufreq.c
> > 
> > Thanks for taking care of very minor review comments I had. All the
> > patches look good now to me :)
> 
> All applied, thanks!
> 

Actually, all except for the [4/4] as you applied it earlier.

Thanks!

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html