* [PATCH v2 3/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q
2015-08-18 11:46 [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart
@ 2015-08-18 11:46 ` Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 Antoine Tenart
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Antoine Tenart @ 2015-08-18 11:46 UTC (permalink / raw)
To: sebastian.hesselbarth
Cc: zmxu, jszhang, linux-pm, Antoine Tenart, linux-kernel,
linux-arm-kernel
The BG2Q uses cpugreq-dt. Add the corresponding bindings. The operating
points can be updated by the bootloader.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
---
arch/arm/boot/dts/berlin2q.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 63a48490e2f9..58f6792c0d77 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -53,6 +53,17 @@
device_type = "cpu";
next-level-cache = <&l2>;
reg = <0>;
+
+ clocks = <&chip_clk CLKID_CPU>;
+ clock-latency = <100000>;
+ /* Can be modified by the bootloader */
+ operating-points = <
+ /* kHz uV */
+ 1200000 1200000
+ 1000000 1200000
+ 800000 1200000
+ 600000 1200000
+ >;
};
cpu@1 {
--
2.5.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2
2015-08-18 11:46 [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 3/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q Antoine Tenart
@ 2015-08-18 11:46 ` Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD Antoine Tenart
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Antoine Tenart @ 2015-08-18 11:46 UTC (permalink / raw)
To: sebastian.hesselbarth
Cc: Antoine Tenart, zmxu, jszhang, linux-arm-kernel, linux-pm,
linux-kernel
The BG2 uses cpugreq-dt. Add the corresponding bindings.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
---
arch/arm/boot/dts/berlin2.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index ef811de09908..d80dc82729b8 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -57,6 +57,16 @@
device_type = "cpu";
next-level-cache = <&l2>;
reg = <0>;
+
+ clocks = <&chip_clk CLKID_CPU>;
+ clock-latency = <100000>;
+ operating-points = <
+ /* kHz uV */
+ 1200000 1200000
+ 1000000 1200000
+ 800000 1200000
+ 600000 1200000
+ >;
};
cpu@1 {
--
2.5.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v2 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD
2015-08-18 11:46 [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 3/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 Antoine Tenart
@ 2015-08-18 11:46 ` Antoine Tenart
2015-08-18 11:46 ` [PATCH v2 6/6] ARM: berlin: register cpufreq-dt Antoine Tenart
2015-08-18 12:56 ` [PATCH v2 0/6] ARM: berlin: add cpufreq support Viresh Kumar
4 siblings, 0 replies; 9+ messages in thread
From: Antoine Tenart @ 2015-08-18 11:46 UTC (permalink / raw)
To: sebastian.hesselbarth
Cc: Antoine Tenart, zmxu, jszhang, linux-arm-kernel, linux-pm,
linux-kernel
The BG2CD uses cpugreq-dt. Add the corresponding bindings.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
---
arch/arm/boot/dts/berlin2cd.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 900213d78a32..3c7a7404f10c 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -56,6 +56,14 @@
device_type = "cpu";
next-level-cache = <&l2>;
reg = <0>;
+
+ clocks = <&chip_clk CLKID_CPU>;
+ clock-latency = <100000>;
+ operating-points = <
+ /* kHz uV */
+ 800000 1200000
+ 600000 1200000
+ >;
};
};
--
2.5.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 6/6] ARM: berlin: register cpufreq-dt
2015-08-18 11:46 [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart
` (2 preceding siblings ...)
2015-08-18 11:46 ` [PATCH v2 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD Antoine Tenart
@ 2015-08-18 11:46 ` Antoine Tenart
2015-08-18 12:56 ` [PATCH v2 0/6] ARM: berlin: add cpufreq support Viresh Kumar
4 siblings, 0 replies; 9+ messages in thread
From: Antoine Tenart @ 2015-08-18 11:46 UTC (permalink / raw)
To: sebastian.hesselbarth
Cc: Antoine Tenart, zmxu, jszhang, linux-arm-kernel, linux-pm,
linux-kernel
The Berlin SoCs use cpufreq-dt for cpufreq. Register a platform device.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
---
arch/arm/mach-berlin/berlin.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/mach-berlin/berlin.c b/arch/arm/mach-berlin/berlin.c
index ac181c6797ee..25d73870ccca 100644
--- a/arch/arm/mach-berlin/berlin.c
+++ b/arch/arm/mach-berlin/berlin.c
@@ -18,6 +18,11 @@
#include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h>
+static void __init berlin_init_late(void)
+{
+ platform_device_register_simple("cpufreq-dt", -1, NULL, 0);
+}
+
static const char * const berlin_dt_compat[] = {
"marvell,berlin",
NULL,
@@ -25,6 +30,7 @@ static const char * const berlin_dt_compat[] = {
DT_MACHINE_START(BERLIN_DT, "Marvell Berlin")
.dt_compat = berlin_dt_compat,
+ .init_late = berlin_init_late,
/*
* with DT probing for L2CCs, berlin_init_machine can be removed.
* Note: 88DE3005 (Armada 1500-mini) uses pl310 l2cc
--
2.5.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support
2015-08-18 11:46 [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart
` (3 preceding siblings ...)
2015-08-18 11:46 ` [PATCH v2 6/6] ARM: berlin: register cpufreq-dt Antoine Tenart
@ 2015-08-18 12:56 ` Viresh Kumar
2015-08-18 14:39 ` Antoine Tenart
4 siblings, 1 reply; 9+ messages in thread
From: Viresh Kumar @ 2015-08-18 12:56 UTC (permalink / raw)
To: Antoine Tenart
Cc: sebastian.hesselbarth, zmxu, jszhang,
linux-arm-kernel@lists.infradead.org, Linux PM list,
linux-kernel@vger.kernel.org
On Tue, Aug 18, 2015 at 5:16 PM, Antoine Tenart
<antoine.tenart@free-electrons.com> wrote:
> Hi,
>
> This series adds the cpufreq support to the Berlin SoCs, using
> cpufreq-dt.
>
> First, the cpuclk clock is added to the BG2Q clock driver. This clock
> has a divider fixed to 1, so we use a fixed factor clock here.
>
> Then register a platform device for cpufreq-dt.
>
> I also added the OPP table definition in the BG2Q, BG2 and BG2CD device
> trees. When using a BG2Q, some bootloaders may update this table when
> booting (mine doesn't).
You can switch to OPP-v2 bindings if you want. Just have a look, they are
much more powerful.. Should be in linux-next/master.
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support
2015-08-18 12:56 ` [PATCH v2 0/6] ARM: berlin: add cpufreq support Viresh Kumar
@ 2015-08-18 14:39 ` Antoine Tenart
2015-08-18 14:59 ` Viresh Kumar
0 siblings, 1 reply; 9+ messages in thread
From: Antoine Tenart @ 2015-08-18 14:39 UTC (permalink / raw)
To: Viresh Kumar
Cc: Antoine Tenart, sebastian.hesselbarth, zmxu, jszhang,
linux-arm-kernel@lists.infradead.org, Linux PM list,
linux-kernel@vger.kernel.org
Hi,
On Tue, Aug 18, 2015 at 06:26:42PM +0530, Viresh Kumar wrote:
> On Tue, Aug 18, 2015 at 5:16 PM, Antoine Tenart
> <antoine.tenart@free-electrons.com> wrote:
> >
> > This series adds the cpufreq support to the Berlin SoCs, using
> > cpufreq-dt.
> >
> > First, the cpuclk clock is added to the BG2Q clock driver. This clock
> > has a divider fixed to 1, so we use a fixed factor clock here.
> >
> > Then register a platform device for cpufreq-dt.
> >
> > I also added the OPP table definition in the BG2Q, BG2 and BG2CD device
> > trees. When using a BG2Q, some bootloaders may update this table when
> > booting (mine doesn't).
>
> You can switch to OPP-v2 bindings if you want. Just have a look, they are
> much more powerful.. Should be in linux-next/master.
Nice!
However, it seems the OPP-v2 table takes precedence over the old one.
When a default OPP-v2 table is supplied in the device tree, if the
bootloader supplies an OPP table the old way it won't be taken into
account.
So if I understood correctly, this won't work here for the BG2Q.
Antoine
--
Antoine Ténart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support
2015-08-18 14:39 ` Antoine Tenart
@ 2015-08-18 14:59 ` Viresh Kumar
2015-08-19 8:17 ` Antoine Tenart
0 siblings, 1 reply; 9+ messages in thread
From: Viresh Kumar @ 2015-08-18 14:59 UTC (permalink / raw)
To: Antoine Tenart
Cc: sebastian.hesselbarth, zmxu, jszhang,
linux-arm-kernel@lists.infradead.org, Linux PM list,
linux-kernel@vger.kernel.org
On 18-08-15, 16:39, Antoine Tenart wrote:
> However, it seems the OPP-v2 table takes precedence over the old one.
> When a default OPP-v2 table is supplied in the device tree, if the
> bootloader supplies an OPP table the old way it won't be taken into
> account.
>
> So if I understood correctly, this won't work here for the BG2Q.
Didn't understood it completely. Are you saying that your dtb will
have two operating-points tables ?
The deal is that for any device, parsing of opp-v2 will be attempted
first. If its not available, then opp-v1 will be tried. But this is
per-device. So, one device can have opp-v2 tables and other one can do
v1 type.
--
viresh
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support
2015-08-18 14:59 ` Viresh Kumar
@ 2015-08-19 8:17 ` Antoine Tenart
0 siblings, 0 replies; 9+ messages in thread
From: Antoine Tenart @ 2015-08-19 8:17 UTC (permalink / raw)
To: Viresh Kumar
Cc: Antoine Tenart, sebastian.hesselbarth, zmxu, jszhang,
linux-arm-kernel@lists.infradead.org, Linux PM list,
linux-kernel@vger.kernel.org
On Tue, Aug 18, 2015 at 08:29:25PM +0530, Viresh Kumar wrote:
> On 18-08-15, 16:39, Antoine Tenart wrote:
> > However, it seems the OPP-v2 table takes precedence over the old one.
> > When a default OPP-v2 table is supplied in the device tree, if the
> > bootloader supplies an OPP table the old way it won't be taken into
> > account.
> >
> > So if I understood correctly, this won't work here for the BG2Q.
>
> Didn't understood it completely. Are you saying that your dtb will
> have two operating-points tables ?
Yes. If the device tree has an OPP-v2 table and the bootloader modify it
to add an old OPP table at boot, the one added by the bootloader won't
be taken into account by the kernel.
> The deal is that for any device, parsing of opp-v2 will be attempted
> first. If its not available, then opp-v1 will be tried. But this is
> per-device. So, one device can have opp-v2 tables and other one can do
> v1 type.
Sure. OPP-v2 tables can be used for devices having an up-to-date
bootloader or if the bootloader do not modify the device tree at boot
time to add an (old) OPP table.
Antoine
--
Antoine Ténart, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 9+ messages in thread