Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1226869 > unrolled thread
| Started by | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| First post | 2015-09-17 12:20 +0200 |
| Last post | 2015-09-20 20:30 +0200 |
| Articles | 8 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v3 0/6] ARM: berlin: add cpufreq support Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 6/6] ARM: berlin: register cpufreq-dt Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 2/6] clk: berlin: add cpuclk Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 1/6] clk: berlin: move MAX_CLKS out of drivers/clk/berlin Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
[PATCH v3 3/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q Antoine Tenart <antoine.tenart@free-electrons.com> - 2015-09-17 12:20 +0200
Re: [PATCH v3 0/6] ARM: berlin: add cpufreq support Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> - 2015-09-20 20:30 +0200
| From | Antoine Tenart <antoine.tenart@free-electrons.com> |
|---|---|
| Date | 2015-09-17 12:20 +0200 |
| Subject | [PATCH v3 0/6] ARM: berlin: add cpufreq support |
| Message-ID | <q9Esi-wC-11@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 v2:
- rebased on top of v4.3-rc1
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.2
--
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-09-17 12:20 +0200 |
| Subject | [PATCH v3 6/6] ARM: berlin: register cpufreq-dt |
| Message-ID | <q9Esi-wC-19@gated-at.bofh.it> |
| In reply to | #1226869 |
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.2
--
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-09-17 12:20 +0200 |
| Subject | [PATCH v3 2/6] clk: berlin: add cpuclk |
| Message-ID | <q9Esi-wC-23@gated-at.bofh.it> |
| In reply to | #1226869 |
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.2
--
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-09-17 12:20 +0200 |
| Subject | [PATCH v3 4/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2 |
| Message-ID | <q9Esi-wC-33@gated-at.bofh.it> |
| In reply to | #1226869 |
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.2
--
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-09-17 12:20 +0200 |
| Subject | [PATCH v3 1/6] clk: berlin: move MAX_CLKS out of drivers/clk/berlin |
| Message-ID | <q9Esj-wC-49@gated-at.bofh.it> |
| In reply to | #1226869 |
Move the MAX_CLKS definition used in the Berlin clock driver outside the driver. Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com> Acked-by: Michael Turquette <mturquette@baylibre.com> --- drivers/clk/berlin/bg2.c | 1 - drivers/clk/berlin/bg2q.c | 1 - include/dt-bindings/clock/berlin2.h | 2 ++ include/dt-bindings/clock/berlin2q.h | 2 ++ 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c index 73153fc45ee9..469a2c57e1b4 100644 --- a/drivers/clk/berlin/bg2.c +++ b/drivers/clk/berlin/bg2.c @@ -91,7 +91,6 @@ * */ -#define MAX_CLKS 41 static struct clk *clks[MAX_CLKS]; static struct clk_onecell_data clk_data; static DEFINE_SPINLOCK(lock); diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c index 221f40c2b850..a27958efab92 100644 --- a/drivers/clk/berlin/bg2q.c +++ b/drivers/clk/berlin/bg2q.c @@ -45,7 +45,6 @@ #define REG_SDIO0XIN_CLKCTL 0x0158 #define REG_SDIO1XIN_CLKCTL 0x015c -#define MAX_CLKS 27 static struct clk *clks[MAX_CLKS]; static struct clk_onecell_data clk_data; static DEFINE_SPINLOCK(lock); diff --git a/include/dt-bindings/clock/berlin2.h b/include/dt-bindings/clock/berlin2.h index 0c30800175df..97832b840beb 100644 --- a/include/dt-bindings/clock/berlin2.h +++ b/include/dt-bindings/clock/berlin2.h @@ -43,3 +43,5 @@ #define CLKID_VIDEO1 38 #define CLKID_VIDEO2 39 #define CLKID_TWD 40 + +#define MAX_CLKS 41 diff --git a/include/dt-bindings/clock/berlin2q.h b/include/dt-bindings/clock/berlin2q.h index 287fc3b4afb2..c79af928ae92 100644 --- a/include/dt-bindings/clock/berlin2q.h +++ b/include/dt-bindings/clock/berlin2q.h @@ -29,3 +29,5 @@ #define CLKID_SMEMC 24 #define CLKID_PCIE 25 #define CLKID_TWD 26 + +#define MAX_CLKS 27 -- 2.5.2 -- 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-09-17 12:20 +0200 |
| Subject | [PATCH v3 5/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2CD |
| Message-ID | <q9Esj-wC-47@gated-at.bofh.it> |
| In reply to | #1226869 |
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.2 -- 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-09-17 12:20 +0200 |
| Subject | [PATCH v3 3/6] ARM: berlin: dts: add the cpufreq-dt bindings on the BG2Q |
| Message-ID | <q9Esj-wC-51@gated-at.bofh.it> |
| In reply to | #1226869 |
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.2
--
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 | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> |
|---|---|
| Date | 2015-09-20 20:30 +0200 |
| Message-ID | <qaRx7-7Lc-11@gated-at.bofh.it> |
| In reply to | #1226869 |
On 17.09.2015 12:14, Antoine Tenart wrote: > This series adds the cpufreq support to the Berlin SoCs, using > cpufreq-dt. [...] > 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 Applied 1, 2 with Mike's and Stephen's Acked-by to berlin/driver. Applied 3, 4, 5 to berlin/dt. Applied 6 to berlin/driver again. Sebastian > 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(-) > -- 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