From: haojian.zhuang@linaro.org (Haojian Zhuang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 04/11] ARM: integrator: use clocksource_of_init for sp804
Date: Wed, 13 Mar 2013 13:05:35 +0800 [thread overview]
Message-ID: <1363151142-32162-5-git-send-email-haojian.zhuang@linaro.org> (raw)
In-Reply-To: <1363151142-32162-1-git-send-email-haojian.zhuang@linaro.org>
Remove all code to parse sp804 in integrator platform driver. Use
clocksource_of_init() instead since these code are implemented in sp804
driver already.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
---
arch/arm/boot/dts/integrator.dtsi | 3 +++
arch/arm/boot/dts/integratorap.dts | 9 +++----
arch/arm/boot/dts/integratorcp.dts | 9 +++----
arch/arm/mach-integrator/Kconfig | 3 +++
arch/arm/mach-integrator/integrator_ap.c | 41 +-----------------------------
arch/arm/mach-integrator/integrator_cp.c | 35 ++-----------------------
drivers/clocksource/timer-sp.c | 2 ++
7 files changed, 19 insertions(+), 83 deletions(-)
diff --git a/arch/arm/boot/dts/integrator.dtsi b/arch/arm/boot/dts/integrator.dtsi
index 813b91d..749ac21 100644
--- a/arch/arm/boot/dts/integrator.dtsi
+++ b/arch/arm/boot/dts/integrator.dtsi
@@ -9,18 +9,21 @@
reg = <0x13000000 0x100>;
interrupt-parent = <&pic>;
interrupts = <5>;
+ status = "disabled";
};
timer at 13000100 {
reg = <0x13000100 0x100>;
interrupt-parent = <&pic>;
interrupts = <6>;
+ status = "disabled";
};
timer at 13000200 {
reg = <0x13000200 0x100>;
interrupt-parent = <&pic>;
interrupts = <7>;
+ status = "disabled";
};
pic at 14000000 {
diff --git a/arch/arm/boot/dts/integratorap.dts b/arch/arm/boot/dts/integratorap.dts
index c9c3fa3..112d2e0 100644
--- a/arch/arm/boot/dts/integratorap.dts
+++ b/arch/arm/boot/dts/integratorap.dts
@@ -9,11 +9,6 @@
model = "ARM Integrator/AP";
compatible = "arm,integrator-ap";
- aliases {
- arm,timer-primary = &timer2;
- arm,timer-secondary = &timer1;
- };
-
chosen {
bootargs = "root=/dev/ram0 console=ttyAM0,38400n8 earlyprintk";
};
@@ -29,10 +24,14 @@
timer1: timer at 13000100 {
compatible = "arm,integrator-timer";
+ arm,sp804-clockevent = <0>;
+ status = "ok";
};
timer2: timer at 13000200 {
compatible = "arm,integrator-timer";
+ arm,sp804-clocksource = <0>;
+ status = "ok";
};
pic: pic at 14000000 {
diff --git a/arch/arm/boot/dts/integratorcp.dts b/arch/arm/boot/dts/integratorcp.dts
index 8b11939..19b2e3e 100644
--- a/arch/arm/boot/dts/integratorcp.dts
+++ b/arch/arm/boot/dts/integratorcp.dts
@@ -9,11 +9,6 @@
model = "ARM Integrator/CP";
compatible = "arm,integrator-cp";
- aliases {
- arm,timer-primary = &timer2;
- arm,timer-secondary = &timer1;
- };
-
chosen {
bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk";
};
@@ -29,10 +24,14 @@
timer1: timer at 13000100 {
compatible = "arm,sp804", "arm,primecell";
+ arm,sp804-clockevent = <0>;
+ status = "ok";
};
timer2: timer at 13000200 {
compatible = "arm,sp804", "arm,primecell";
+ arm,sp804-clocksource = <0>;
+ status = "ok";
};
pic: pic at 14000000 {
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index abeff25..031f43a 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -5,6 +5,7 @@ menu "Integrator Options"
config ARCH_INTEGRATOR_AP
bool "Support Integrator/AP and Integrator/PP2 platforms"
select CLKSRC_MMIO
+ select CLKSRC_OF
select MIGHT_HAVE_PCI
select SERIAL_AMBA_PL010
select SERIAL_AMBA_PL010_CONSOLE
@@ -15,6 +16,8 @@ config ARCH_INTEGRATOR_AP
config ARCH_INTEGRATOR_CP
bool "Support Integrator/CP platform"
+ select CLKSRC_MMIO
+ select CLKSRC_OF
select ARCH_CINTEGRATOR
select ARM_TIMER_SP804
select PLAT_VERSATILE_CLCD
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index c2112ff..2266944 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -425,45 +425,6 @@ void __init ap_init_early(void)
#ifdef CONFIG_OF
-static void __init ap_of_timer_init(void)
-{
- struct device_node *node;
- const char *path;
- void __iomem *base;
- int err;
- int irq;
- struct clk *clk;
- unsigned long rate;
-
- clk = clk_get_sys("ap_timer", NULL);
- BUG_ON(IS_ERR(clk));
- clk_prepare_enable(clk);
- rate = clk_get_rate(clk);
-
- err = of_property_read_string(of_aliases,
- "arm,timer-primary", &path);
- if (WARN_ON(err))
- return;
- node = of_find_node_by_path(path);
- base = of_iomap(node, 0);
- if (WARN_ON(!base))
- return;
- writel(0, base + TIMER_CTRL);
- integrator_clocksource_init(rate, base);
-
- err = of_property_read_string(of_aliases,
- "arm,timer-secondary", &path);
- if (WARN_ON(err))
- return;
- node = of_find_node_by_path(path);
- base = of_iomap(node, 0);
- if (WARN_ON(!base))
- return;
- irq = irq_of_parse_and_map(node, 0);
- writel(0, base + TIMER_CTRL);
- integrator_clockevent_init(rate, base, irq);
-}
-
static const struct of_device_id fpga_irq_of_match[] __initconst = {
{ .compatible = "arm,versatile-fpga-irq", .data = fpga_irq_of_init, },
{ /* Sentinel */ }
@@ -582,7 +543,7 @@ DT_MACHINE_START(INTEGRATOR_AP_DT, "ARM Integrator/AP (Device Tree)")
.init_early = ap_init_early,
.init_irq = ap_init_irq_of,
.handle_irq = fpga_handle_irq,
- .init_time = ap_of_timer_init,
+ .init_time = clocksource_of_init,
.init_machine = ap_init_of,
.restart = integrator_restart,
.dt_compat = ap_dt_board_compat,
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 40373ec..6e1c340 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -28,6 +28,7 @@
#include <linux/of_address.h>
#include <linux/of_platform.h>
#include <linux/sys_soc.h>
+#include <linux/clocksource.h>
#include <clocksource/arm_timer.h>
#include <clocksource/timer-sp.h>
@@ -251,38 +252,6 @@ static void __init intcp_init_early(void)
#ifdef CONFIG_OF
-static void __init cp_of_timer_init(void)
-{
- struct device_node *node;
- const char *path;
- void __iomem *base;
- int err;
- int irq;
-
- err = of_property_read_string(of_aliases,
- "arm,timer-primary", &path);
- if (WARN_ON(err))
- return;
- node = of_find_node_by_path(path);
- base = of_iomap(node, 0);
- if (WARN_ON(!base))
- return;
- writel(0, base + TIMER_CTRL);
- sp804_clocksource_init(base, node->name);
-
- err = of_property_read_string(of_aliases,
- "arm,timer-secondary", &path);
- if (WARN_ON(err))
- return;
- node = of_find_node_by_path(path);
- base = of_iomap(node, 0);
- if (WARN_ON(!base))
- return;
- irq = irq_of_parse_and_map(node, 0);
- writel(0, base + TIMER_CTRL);
- sp804_clockevents_init(base, irq, node->name);
-}
-
static const struct of_device_id fpga_irq_of_match[] __initconst = {
{ .compatible = "arm,versatile-fpga-irq", .data = fpga_irq_of_init, },
{ /* Sentinel */ }
@@ -386,7 +355,7 @@ DT_MACHINE_START(INTEGRATOR_CP_DT, "ARM Integrator/CP (Device Tree)")
.init_early = intcp_init_early,
.init_irq = intcp_init_irq_of,
.handle_irq = fpga_handle_irq,
- .init_time = cp_of_timer_init,
+ .init_time = clocksource_of_init,
.init_machine = intcp_init_of,
.restart = integrator_restart,
.dt_compat = intcp_dt_board_compat,
diff --git a/drivers/clocksource/timer-sp.c b/drivers/clocksource/timer-sp.c
index 63f757d..b3d9eba 100644
--- a/drivers/clocksource/timer-sp.c
+++ b/drivers/clocksource/timer-sp.c
@@ -201,6 +201,7 @@ static struct device_node *from = NULL;
static struct of_device_id sp804_timer_match[] __initdata = {
{ .compatible = "arm,sp804", },
+ { .compatible = "arm,integrator-timer", },
{}
};
@@ -294,3 +295,4 @@ err:
iounmap(base);
}
CLOCKSOURCE_OF_DECLARE(sp804, "arm,sp804", sp804_dt_init)
+CLOCKSOURCE_OF_DECLARE(integrator, "arm,integrator-timer", sp804_dt_init)
--
1.7.10.4
next prev parent reply other threads:[~2013-03-13 5:05 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-13 5:05 [PATCH v3 00/11] add hisilicon SoC support Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 01/11] clocksource: move sp timer driver Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 02/11] clocksource: select USE_OF by default Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 03/11] clocksource: sp804: add device tree support Haojian Zhuang
2013-03-13 11:05 ` Pawel Moll
2013-03-13 11:37 ` Haojian Zhuang
2013-03-13 11:41 ` Pawel Moll
2013-03-13 14:17 ` Rob Herring
2013-03-13 14:42 ` Pawel Moll
2013-03-13 14:51 ` Rob Herring
2013-03-13 14:55 ` Pawel Moll
2013-03-13 15:11 ` Haojian Zhuang
2013-03-13 15:23 ` Pawel Moll
2013-03-13 15:25 ` Haojian Zhuang
2013-03-13 15:29 ` Pawel Moll
2013-03-13 15:39 ` Rob Herring
2013-03-13 15:41 ` Pawel Moll
2013-03-13 15:44 ` Haojian Zhuang
2013-03-13 15:42 ` Haojian Zhuang
2013-03-13 15:49 ` Pawel Moll
2013-03-13 16:35 ` Arnd Bergmann
2013-03-13 16:41 ` Pawel Moll
2013-03-15 12:20 ` Russell King - ARM Linux
2013-03-13 5:05 ` Haojian Zhuang [this message]
2013-03-13 5:05 ` [PATCH v3 05/11] ARM: highbank: use clocksource_of_init for sp804 Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 06/11] ARM: vexpress: " Haojian Zhuang
2013-03-13 11:10 ` Pawel Moll
2013-03-13 11:42 ` Haojian Zhuang
2013-03-13 11:46 ` Pawel Moll
2013-03-13 12:21 ` Haojian Zhuang
2013-03-13 14:48 ` Pawel Moll
2013-03-13 15:01 ` Haojian Zhuang
2013-03-13 15:19 ` Pawel Moll
2013-03-13 15:59 ` Haojian Zhuang
2013-03-13 16:28 ` Pawel Moll
2013-03-13 16:32 ` Rob Herring
2013-03-15 12:34 ` Russell King - ARM Linux
2013-03-15 12:58 ` Pawel Moll
2013-03-15 18:10 ` Russell King - ARM Linux
2013-03-13 5:05 ` [PATCH v3 07/11] ARM: debug: support debug ll on hisilicon soc Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 08/11] clk: hi3xxx: add clock support Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 09/11] ARM: hi3xxx: add board support with device tree Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 10/11] ARM: hi3xxx: enable hi4511 " Haojian Zhuang
2013-03-13 5:05 ` [PATCH v3 11/11] ARM: config: append arch hi3xxx into multi defconfig Haojian Zhuang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1363151142-32162-5-git-send-email-haojian.zhuang@linaro.org \
--to=haojian.zhuang@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).