aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSoren Brinkmann <soren.brinkmann@xilinx.com>2014-02-19 18:14:44 -0500
committerDaniel Lezcano <daniel.lezcano@linaro.org>2014-03-11 18:10:28 -0400
commitcd325295871fbd172340a73f323f6a19c0b0525d (patch)
tree3bd7a66de2372abb25079a37d329ca2338f9f50d /arch/arm
parent61f1fc7e9258a169ac8afb5ddf657a181e60d052 (diff)
arm: zynq: Add support for cpufreq
The generic cpufreq-cpu0 driver can scale the CPU frequency on Zynq SOCs. Add the required platform device to the BSP and appropriate OPPs to the dts. Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: devicetree@vger.kernel.org Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/zynq-7000.dtsi6
-rw-r--r--arch/arm/mach-zynq/Kconfig2
-rw-r--r--arch/arm/mach-zynq/common.c3
3 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index 8b67b19392ec..789d0bacc110 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -24,6 +24,12 @@
24 device_type = "cpu"; 24 device_type = "cpu";
25 reg = <0>; 25 reg = <0>;
26 clocks = <&clkc 3>; 26 clocks = <&clkc 3>;
27 operating-points = <
28 /* kHz uV */
29 666667 1000000
30 333334 1000000
31 222223 1000000
32 >;
27 }; 33 };
28 34
29 cpu@1 { 35 cpu@1 {
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
index f84fab14f0b7..f03e75bd0b2b 100644
--- a/arch/arm/mach-zynq/Kconfig
+++ b/arch/arm/mach-zynq/Kconfig
@@ -2,6 +2,8 @@ config ARCH_ZYNQ
2 bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7 2 bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
3 select ARM_AMBA 3 select ARM_AMBA
4 select ARM_GIC 4 select ARM_GIC
5 select ARCH_HAS_CPUFREQ
6 select ARCH_HAS_OPP
5 select COMMON_CLK 7 select COMMON_CLK
6 select CPU_V7 8 select CPU_V7
7 select GENERIC_CLOCKEVENTS 9 select GENERIC_CLOCKEVENTS
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index 1db2a5ca9ab8..644468151c04 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -51,6 +51,8 @@ static struct platform_device zynq_cpuidle_device = {
51 */ 51 */
52static void __init zynq_init_machine(void) 52static void __init zynq_init_machine(void)
53{ 53{
54 struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
55
54 /* 56 /*
55 * 64KB way size, 8-way associativity, parity disabled 57 * 64KB way size, 8-way associativity, parity disabled
56 */ 58 */
@@ -59,6 +61,7 @@ static void __init zynq_init_machine(void)
59 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 61 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
60 62
61 platform_device_register(&zynq_cpuidle_device); 63 platform_device_register(&zynq_cpuidle_device);
64 platform_device_register_full(&devinfo);
62} 65}
63 66
64static void __init zynq_timer_init(void) 67static void __init zynq_timer_init(void)