Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1209213 > unrolled thread
| Started by | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| First post | 2015-08-18 13:50 +0200 |
| Last post | 2015-08-19 10:20 +0200 |
| Articles | 9 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 13:50 +0200
[PATCH v2 6/6] ARM: berlin: register cpufreq-dt Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 13:50 +0200
[PATCH v2 2/6] clk: berlin: add cpuclk Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 13:50 +0200
[PATCH v2 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 13:50 +0200
[PATCH v2 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 13:50 +0200
Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support Viresh Kumar <viresh.kumar@linaro.org> - 2015-08-18 15:00 +0200
Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-18 16:40 +0200
Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support Viresh Kumar <viresh.kumar@linaro.org> - 2015-08-18 17:00 +0200
Re: [PATCH v2 0/6] ARM: berlin: add cpufreq support Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-08-19 10:20 +0200
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 13:50 +0200 |
| Subject | [PATCH v2 0/6] ARM: berlin: add cpufreq support |
| Message-ID | <pYNyW-55G-7@gated-at.bofh.it> |
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). Tested on a BG2Q DMP. Thanks, Antoine Changes since v1: - added the BG2 and BG2CD support - moved MAX_CLKS out of the Berlin clk driver - reordered the patches Antoine Tenart (6): clk: berlin: move MAX_CLKS out of drivers/clk/berlin clk: berlin: add cpuclk ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD ARM: berlin: register cpufreq-dt arch/arm/boot/dts/berlin2.dtsi | 10 ++++++++++ arch/arm/boot/dts/berlin2cd.dtsi | 8 ++++++++ arch/arm/boot/dts/berlin2q.dtsi | 11 +++++++++++ arch/arm/mach-berlin/berlin.c | 6 ++++++ drivers/clk/berlin/bg2.c | 1 - drivers/clk/berlin/bg2q.c | 13 ++++++------- include/dt-bindings/clock/berlin2.h | 2 ++ include/dt-bindings/clock/berlin2q.h | 3 +++ 8 files changed, 46 insertions(+), 8 deletions(-) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 13:50 +0200 |
| Subject | [PATCH v2 6/6] ARM: berlin: register cpufreq-dt |
| Message-ID | <pYNyW-55G-11@gated-at.bofh.it> |
| In reply to | #1209213 |
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 13:50 +0200 |
| Subject | [PATCH v2 2/6] clk: berlin: add cpuclk |
| Message-ID | <pYNyW-55G-21@gated-at.bofh.it> |
| In reply to | #1209213 |
Add cpuclk in the Berlin BG2Q clock driver. This clk has a divider
fixed to 1.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
---
drivers/clk/berlin/bg2q.c | 12 ++++++------
include/dt-bindings/clock/berlin2q.h | 3 ++-
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index a27958efab92..c2f48f3773e8 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -355,13 +355,13 @@ static void __init berlin2q_clock_setup(struct device_node *np)
gd->bit_idx, 0, &lock);
}
- /*
- * twdclk is derived from cpu/3
- * TODO: use cpupll until cpuclk is not available
- */
+ /* cpuclk divider is fixed to 1 */
+ clks[CLKID_CPU] =
+ clk_register_fixed_factor(NULL, "cpu", clk_names[CPUPLL],
+ 0, 1, 1);
+ /* twdclk is derived from cpu/3 */
clks[CLKID_TWD] =
- clk_register_fixed_factor(NULL, "twd", clk_names[CPUPLL],
- 0, 1, 3);
+ clk_register_fixed_factor(NULL, "twd", "cpu", 0, 1, 3);
/* check for errors on leaf clocks */
for (n = 0; n < MAX_CLKS; n++) {
diff --git a/include/dt-bindings/clock/berlin2q.h b/include/dt-bindings/clock/berlin2q.h
index c79af928ae92..771d8739f67a 100644
--- a/include/dt-bindings/clock/berlin2q.h
+++ b/include/dt-bindings/clock/berlin2q.h
@@ -29,5 +29,6 @@
#define CLKID_SMEMC 24
#define CLKID_PCIE 25
#define CLKID_TWD 26
+#define CLKID_CPU 27
-#define MAX_CLKS 27
+#define MAX_CLKS 28
--
2.5.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 13:50 +0200 |
| Subject | [PATCH v2 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD |
| Message-ID | <pYNyW-55G-25@gated-at.bofh.it> |
| In reply to | #1209213 |
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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 13:50 +0200 |
| Subject | [PATCH v2 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 |
| Message-ID | <pYNyX-55G-31@gated-at.bofh.it> |
| In reply to | #1209213 |
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Viresh Kumar <viresh.kumar@linaro.org> |
|---|---|
| Date | 2015-08-18 15:00 +0200 |
| Message-ID | <pYOEG-6Gh-9@gated-at.bofh.it> |
| In reply to | #1209213 |
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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-18 16:40 +0200 |
| Message-ID | <pYQdr-BV-1@gated-at.bofh.it> |
| In reply to | #1209239 |
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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Viresh Kumar <viresh.kumar@linaro.org> |
|---|---|
| Date | 2015-08-18 17:00 +0200 |
| Message-ID | <pYQwO-YL-9@gated-at.bofh.it> |
| In reply to | #1209286 |
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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-08-19 10:20 +0200 |
| Message-ID | <pZ6Lf-eM-5@gated-at.bofh.it> |
| In reply to | #1209293 |
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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web