Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
- Loading branch information
1 parent
76d36c2
commit f803c5b
Showing
6 changed files
with
359 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
patches/cpufreq/0001-ARM-OMAP3-do-not-register-non-dt-OPP-tables-for-devi.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
From f3fad9982ad2ca7b6d5e96a6ab205038f30c8206 Mon Sep 17 00:00:00 2001 | ||
From: Nishanth Menon <nm@ti.com> | ||
Date: Wed, 16 Oct 2013 10:39:01 -0500 | ||
Subject: [PATCH 1/3] ARM: OMAP3+: do not register non-dt OPP tables for device | ||
tree boot | ||
|
||
OMAP3+ supports both device tree and non-device tree boot. | ||
Device tree bindings for OMAP3+ is supposed to be added via dts following: | ||
Documentation/devicetree/bindings/power/opp.txt | ||
|
||
Since we now have device tree entries for OMAP3+ cpu OPPs, | ||
The current code wrongly adds duplicate OPPs. So, dont register OPPs | ||
when booting using device tree. | ||
|
||
Signed-off-by: Nishanth Menon <nm@ti.com> | ||
--- | ||
arch/arm/mach-omap2/opp.c | 4 ++++ | ||
1 file changed, 4 insertions(+) | ||
|
||
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c | ||
index bd41d59..82fd8c7 100644 | ||
--- a/arch/arm/mach-omap2/opp.c | ||
+++ b/arch/arm/mach-omap2/opp.c | ||
@@ -17,6 +17,7 @@ | ||
* GNU General Public License for more details. | ||
*/ | ||
#include <linux/module.h> | ||
+#include <linux/of.h> | ||
#include <linux/opp.h> | ||
#include <linux/cpu.h> | ||
|
||
@@ -40,6 +41,9 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, | ||
{ | ||
int i, r; | ||
|
||
+ if (of_have_populated_dt()) | ||
+ return -EINVAL; | ||
+ | ||
if (!opp_def || !opp_def_size) { | ||
pr_err("%s: invalid params!\n", __func__); | ||
return -EINVAL; | ||
-- | ||
1.8.5.1 | ||
|
141 changes: 141 additions & 0 deletions
141
patches/cpufreq/0002-ARM-OMAP2-add-missing-lateinit-hook-for-calling-pm-l.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
From 2f2fc7e61c326c333420c5e25437f30f27c650b1 Mon Sep 17 00:00:00 2001 | ||
From: Nishanth Menon <nm@ti.com> | ||
Date: Wed, 16 Oct 2013 10:39:02 -0500 | ||
Subject: [PATCH 2/3] ARM: OMAP2+: add missing lateinit hook for calling pm | ||
late init | ||
|
||
AM335x, AM43xx, OMAP5 and DRA7 have missing late init hook. Introduce | ||
SoC specific hook with a call to OMAP2+ generic lateinit hook. This | ||
allows the generic late initializations such as cpufreq hooks to be | ||
active. | ||
|
||
Based on out-of-tree patches that need to be introduced in | ||
mainline, this introduction allows us to provide the foundation for | ||
further SoC specific features as they are developed. | ||
|
||
Cc: Benoit Cousson <bcousson@baylibre.com> | ||
Cc: Kevin Hilman <khilman@deeprootsystems.com> | ||
Cc: Paul Walmsley <paul@pwsan.com> | ||
Cc: Tony Lindgren <tony@atomide.com> | ||
Signed-off-by: Nishanth Menon <nm@ti.com> | ||
--- | ||
arch/arm/mach-omap2/board-generic.c | 4 ++++ | ||
arch/arm/mach-omap2/common.h | 4 ++++ | ||
arch/arm/mach-omap2/io.c | 20 ++++++++++++++++++++ | ||
3 files changed, 28 insertions(+) | ||
|
||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c | ||
index 87162e1..c0b0848 100644 | ||
--- a/arch/arm/mach-omap2/board-generic.c | ||
+++ b/arch/arm/mach-omap2/board-generic.c | ||
@@ -180,6 +180,7 @@ DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)") | ||
.init_irq = omap_intc_of_init, | ||
.handle_irq = omap3_intc_handle_irq, | ||
.init_machine = omap_generic_init, | ||
+ .init_late = am33xx_init_late, | ||
.init_time = omap3_gptimer_timer_init, | ||
.dt_compat = am33xx_boards_compat, | ||
.restart = am33xx_restart, | ||
@@ -219,6 +220,7 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") | ||
.init_early = omap5_init_early, | ||
.init_irq = omap_gic_of_init, | ||
.init_machine = omap_generic_init, | ||
+ .init_late = omap5_init_late, | ||
.init_time = omap5_realtime_timer_init, | ||
.dt_compat = omap5_boards_compat, | ||
.restart = omap44xx_restart, | ||
@@ -234,6 +236,7 @@ static const char *am43_boards_compat[] __initdata = { | ||
DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") | ||
.map_io = am33xx_map_io, | ||
.init_early = am43xx_init_early, | ||
+ .init_late = am43xx_init_late, | ||
.init_irq = omap_gic_of_init, | ||
.init_machine = omap_generic_init, | ||
.init_time = omap3_sync32k_timer_init, | ||
@@ -252,6 +255,7 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)") | ||
.smp = smp_ops(omap4_smp_ops), | ||
.map_io = omap5_map_io, | ||
.init_early = dra7xx_init_early, | ||
+ .init_late = dra7xx_init_late, | ||
.init_irq = omap_gic_of_init, | ||
.init_machine = omap_generic_init, | ||
.init_time = omap5_realtime_timer_init, | ||
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h | ||
index 4a5684b..352fa9d 100644 | ||
--- a/arch/arm/mach-omap2/common.h | ||
+++ b/arch/arm/mach-omap2/common.h | ||
@@ -98,6 +98,7 @@ void am35xx_init_early(void); | ||
void ti81xx_init_early(void); | ||
void am33xx_init_early(void); | ||
void am43xx_init_early(void); | ||
+void am43xx_init_late(void); | ||
void omap4430_init_early(void); | ||
void omap5_init_early(void); | ||
void omap3_init_late(void); /* Do not use this one */ | ||
@@ -109,8 +110,11 @@ void omap35xx_init_late(void); | ||
void omap3630_init_late(void); | ||
void am35xx_init_late(void); | ||
void ti81xx_init_late(void); | ||
+void am33xx_init_late(void); | ||
+void omap5_init_late(void); | ||
int omap2_common_pm_late_init(void); | ||
void dra7xx_init_early(void); | ||
+void dra7xx_init_late(void); | ||
|
||
#ifdef CONFIG_SOC_BUS | ||
void omap_soc_device_init(void); | ||
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c | ||
index ff2113c..a2cbb44 100644 | ||
--- a/arch/arm/mach-omap2/io.c | ||
+++ b/arch/arm/mach-omap2/io.c | ||
@@ -583,6 +583,11 @@ void __init am33xx_init_early(void) | ||
omap_hwmod_init_postsetup(); | ||
omap_clk_init = am33xx_clk_init; | ||
} | ||
+ | ||
+void __init am33xx_init_late(void) | ||
+{ | ||
+ omap_common_late_init(); | ||
+} | ||
#endif | ||
|
||
#ifdef CONFIG_SOC_AM43XX | ||
@@ -596,6 +601,11 @@ void __init am43xx_init_early(void) | ||
omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE), NULL); | ||
omap3xxx_check_revision(); | ||
} | ||
+ | ||
+void __init am43xx_init_late(void) | ||
+{ | ||
+ omap_common_late_init(); | ||
+} | ||
#endif | ||
|
||
#ifdef CONFIG_ARCH_OMAP4 | ||
@@ -651,6 +661,11 @@ void __init omap5_init_early(void) | ||
omap54xx_hwmod_init(); | ||
omap_hwmod_init_postsetup(); | ||
} | ||
+ | ||
+void __init omap5_init_late(void) | ||
+{ | ||
+ omap_common_late_init(); | ||
+} | ||
#endif | ||
|
||
#ifdef CONFIG_SOC_DRA7XX | ||
@@ -671,6 +686,11 @@ void __init dra7xx_init_early(void) | ||
dra7xx_hwmod_init(); | ||
omap_hwmod_init_postsetup(); | ||
} | ||
+ | ||
+void __init dra7xx_init_late(void) | ||
+{ | ||
+ omap_common_late_init(); | ||
+} | ||
#endif | ||
|
||
|
||
-- | ||
1.8.5.1 | ||
|
54 changes: 54 additions & 0 deletions
54
patches/cpufreq/0003-ARM-OMAP3-use-cpu0-cpufreq-driver-in-device-tree-sup.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
From 3a407adb926109e8e7024db84d97b6db0964d0a1 Mon Sep 17 00:00:00 2001 | ||
From: Nishanth Menon <nm@ti.com> | ||
Date: Wed, 16 Oct 2013 10:39:03 -0500 | ||
Subject: [PATCH 3/3] ARM: OMAP3+: use cpu0-cpufreq driver in device tree | ||
supported boot | ||
|
||
With OMAP3+ and AM33xx supported SoC having defined CPU device tree | ||
entries with operating-points and clock nodes defined, we can now use | ||
the SoC generic cpufreq-cpu0 driver by registering appropriate device. | ||
|
||
Cc: Benoit Cousson <bcousson@baylibre.com> | ||
Cc: Kevin Hilman <khilman@deeprootsystems.com> | ||
Cc: Paul Walmsley <paul@pwsan.com> | ||
Cc: Tony Lindgren <tony@atomide.com> | ||
Signed-off-by: Nishanth Menon <nm@ti.com> | ||
--- | ||
arch/arm/mach-omap2/pm.c | 12 +++++++++--- | ||
1 file changed, 9 insertions(+), 3 deletions(-) | ||
|
||
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c | ||
index e742118..360b2da 100644 | ||
--- a/arch/arm/mach-omap2/pm.c | ||
+++ b/arch/arm/mach-omap2/pm.c | ||
@@ -266,7 +266,12 @@ static void __init omap4_init_voltages(void) | ||
|
||
static inline void omap_init_cpufreq(void) | ||
{ | ||
- struct platform_device_info devinfo = { .name = "omap-cpufreq", }; | ||
+ struct platform_device_info devinfo = { }; | ||
+ | ||
+ if (!of_have_populated_dt()) | ||
+ devinfo.name = "omap-cpufreq"; | ||
+ else | ||
+ devinfo.name = "cpufreq-cpu0"; | ||
platform_device_register_full(&devinfo); | ||
} | ||
|
||
@@ -300,10 +305,11 @@ int __init omap2_common_pm_late_init(void) | ||
/* Smartreflex device init */ | ||
omap_devinit_smartreflex(); | ||
|
||
- /* cpufreq dummy device instantiation */ | ||
- omap_init_cpufreq(); | ||
} | ||
|
||
+ /* cpufreq dummy device instantiation */ | ||
+ omap_init_cpufreq(); | ||
+ | ||
#ifdef CONFIG_SUSPEND | ||
suspend_set_ops(&omap_pm_ops); | ||
#endif | ||
-- | ||
1.8.5.1 | ||
|
75 changes: 75 additions & 0 deletions
75
patches/cpufreq/0004-ARM-dts-OMAP3-add-clock-nodes-for-CPU.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
From 7c19e9b9b040242dc0284c20302eb85e0ae6c0e1 Mon Sep 17 00:00:00 2001 | ||
From: Nishanth Menon <nm@ti.com> | ||
Date: Wed, 16 Oct 2013 10:39:08 -0500 | ||
Subject: [PATCH 4/4] ARM: dts: OMAP3: add clock nodes for CPU | ||
|
||
OMAP34xx and OMAP36xx platforms use dpll1 clock. Add same to common | ||
definition. | ||
|
||
AM33XX, OMAP443x, OMAP446x and OMAP447x platforms use dpll_mpu clock | ||
Add same to common definition. | ||
|
||
OMAP5, DRA7 platforms use dpll_mpu_ck clock for CPU. Add same to common | ||
definition. | ||
|
||
Cc: Benoit Cousson <bcousson@baylibre.com> | ||
[nm@ti.com: keep in sync with clock node changes] | ||
[j-keerthy@ti.com: OMAP5 and DRA7 nodes] | ||
Signed-off-by: J Keerthy <j-keerthy@ti.com> | ||
Signed-off-by: Nishanth Menon <nm@ti.com> | ||
--- | ||
arch/arm/boot/dts/am33xx.dtsi | 4 ++++ | ||
arch/arm/boot/dts/omap3.dtsi | 5 +++++ | ||
arch/arm/boot/dts/omap4.dtsi | 5 +++++ | ||
3 files changed, 14 insertions(+) | ||
|
||
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi | ||
index 9f9d1b6..3dd2af6 100644 | ||
--- a/arch/arm/boot/dts/am33xx.dtsi | ||
+++ b/arch/arm/boot/dts/am33xx.dtsi | ||
@@ -55,6 +55,10 @@ | ||
275000 1125000 | ||
>; | ||
voltage-tolerance = <2>; /* 2 percentage */ | ||
+ | ||
+ clocks = <&dpll_mpu_ck>; | ||
+ clock-names = "cpu"; | ||
+ | ||
clock-latency = <300000>; /* From omap-cpufreq driver */ | ||
}; | ||
}; | ||
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi | ||
index b41bd57..6a038ef 100644 | ||
--- a/arch/arm/boot/dts/omap3.dtsi | ||
+++ b/arch/arm/boot/dts/omap3.dtsi | ||
@@ -32,6 +32,11 @@ | ||
compatible = "arm,cortex-a8"; | ||
device_type = "cpu"; | ||
reg = <0x0>; | ||
+ | ||
+ clocks = <&dpll1_ck>; | ||
+ clock-names = "cpu"; | ||
+ | ||
+ clock-latency = <300000>; /* From omap-cpufreq driver */ | ||
}; | ||
}; | ||
|
||
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi | ||
index 22d9f2b..b0f0aa1 100644 | ||
--- a/arch/arm/boot/dts/omap4.dtsi | ||
+++ b/arch/arm/boot/dts/omap4.dtsi | ||
@@ -32,6 +32,11 @@ | ||
device_type = "cpu"; | ||
next-level-cache = <&L2>; | ||
reg = <0x0>; | ||
+ | ||
+ clocks = <&dpll_mpu_ck>; | ||
+ clock-names = "cpu"; | ||
+ | ||
+ clock-latency = <300000>; /* From omap-cpufreq driver */ | ||
}; | ||
cpu@1 { | ||
compatible = "arm,cortex-a9"; | ||
-- | ||
1.8.5.1 | ||
|
44 changes: 44 additions & 0 deletions
44
patches/cpufreq/0005-hack-boneblack-enable-1Ghz-operation.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
From ebb84cf959ef769260ebc7ad4c8b8e242de4a662 Mon Sep 17 00:00:00 2001 | ||
From: Robert Nelson <robertcnelson@gmail.com> | ||
Date: Thu, 12 Dec 2013 13:03:55 -0600 | ||
Subject: [PATCH 5/5] hack: boneblack: enable 1Ghz operation | ||
|
||
Signed-off-by: Robert Nelson <robertcnelson@gmail.com> | ||
--- | ||
arch/arm/boot/dts/am335x-boneblack.dts | 20 ++++++++++++++++++++ | ||
1 file changed, 20 insertions(+) | ||
|
||
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts | ||
index 61842c1..e64b61d 100644 | ||
--- a/arch/arm/boot/dts/am335x-boneblack.dts | ||
+++ b/arch/arm/boot/dts/am335x-boneblack.dts | ||
@@ -10,6 +10,26 @@ | ||
#include "am33xx.dtsi" | ||
#include "am335x-bone-common.dtsi" | ||
|
||
+/ { | ||
+ cpus { | ||
+ cpu@0 { | ||
+ cpu0-supply = <&dcdc2_reg>; | ||
+ /* | ||
+ * To consider voltage drop between PMIC and SoC, | ||
+ * tolerance value is reduced to 2% from 4% and | ||
+ * voltage value is increased as a precaution. | ||
+ */ | ||
+ operating-points = < | ||
+ /* kHz uV */ | ||
+ 1000000 1350000 | ||
+ 800000 1300000 | ||
+ 600000 1112000 | ||
+ 300000 969000 | ||
+ >; | ||
+ }; | ||
+ }; | ||
+}; | ||
+ | ||
&hdmi { | ||
status = "okay"; | ||
}; | ||
-- | ||
1.8.5.1 | ||
|