All of lore.kernel.org
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 15/15] ARM: ux500: Enable PRCMU Timer 4 (clocksource) via Device Tree
Date: Thu, 19 Apr 2012 21:36:44 +0100	[thread overview]
Message-ID: <1334867804-31942-16-git-send-email-lee.jones@linaro.org> (raw)
In-Reply-To: <1334867804-31942-1-git-send-email-lee.jones@linaro.org>

In dbx500 based devices the PRCMU Timer 4 is used as a clocksource
and sched_clock. Here we fetch all necessary addressing information
required for correct PRCMU initialisation from the Device Tree
instead of using hard-coded values.

CC: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm/boot/dts/db8500.dtsi |    8 +++++++-
 arch/arm/mach-ux500/timer.c   |   24 ++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/dts/db8500.dtsi b/arch/arm/boot/dts/db8500.dtsi
index f633210..9a62f86 100644
--- a/arch/arm/boot/dts/db8500.dtsi
+++ b/arch/arm/boot/dts/db8500.dtsi
@@ -189,7 +189,13 @@
 			reg = <0x80157000 0x1000>;
 			interrupts = <46 47>;
 			#address-cells = <1>;
-			#size-cells = <0>;
+			#size-cells = <1>;
+			ranges;
+
+				prcmu-timer-4 at 80157450 {
+				compatible = "stericsson,db8500-prcmu-timer-4";
+				reg = <0x80157450 0xC>;
+			};
 
 			ab8500 at 5 {
 				compatible = "stericsson,ab8500";
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c
index d37df98..885c742 100644
--- a/arch/arm/mach-ux500/timer.c
+++ b/arch/arm/mach-ux500/timer.c
@@ -8,6 +8,7 @@
 #include <linux/errno.h>
 #include <linux/clksrc-dbx500-prcmu.h>
 #include <linux/of.h>
+#include <linux/of_address.h>
 
 #include <asm/smp_twd.h>
 
@@ -43,10 +44,17 @@ static void __init ux500_twd_init(void)
 #define ux500_twd_init()	do { } while(0)
 #endif
 
+const static struct of_device_id prcmu_timer_of_match[] __initconst = {
+	{ .compatible = "stericsson,db8500-prcmu-timer-4", },
+	{ },
+};
+
 static void __init ux500_timer_init(void)
 {
 	void __iomem *mtu_timer_base;
 	void __iomem *prcmu_timer_base;
+	void __iomem *tmp_base;
+	struct device_node *np;
 
 	if (cpu_is_u5500()) {
 		mtu_timer_base = __io_address(U5500_MTU0_BASE);
@@ -58,6 +66,22 @@ static void __init ux500_timer_init(void)
 		ux500_unknown_soc();
 	}
 
+	/* TODO: Once MTU has been DT:ed place code above into else. */
+	if (of_have_populated_dt()) {
+		np = of_find_matching_node(NULL, prcmu_timer_of_match);
+		if (!np)
+			goto dt_fail;
+
+		tmp_base = of_iomap(np, 0);
+		if (!tmp_base)
+			goto dt_fail;
+
+		prcmu_timer_base = tmp_base;
+	}
+
+dt_fail:
+	/* Doing it the old fashioned way. */
+
 	/*
 	 * Here we register the timerblocks active in the system.
 	 * Localtimers (twd) is started when both cpu is up and running.
-- 
1.7.9.1

  parent reply	other threads:[~2012-04-19 20:36 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-19 20:36 [PATCH 0/16 v2] Another round of Device Tree enablement for Snowball Lee Jones
2012-04-19 20:36 ` [PATCH 01/15] ARM: ux500: Enable the external bus with Device Tree Lee Jones
2012-04-23 11:36   ` Linus Walleij
2012-04-19 20:36 ` [PATCH 02/15] drivers/gpio: gpio-nomadik: Add support for irqdomains Lee Jones
2012-04-23 12:25   ` Linus Walleij
2012-05-17 23:35     ` Grant Likely
2012-04-19 20:36 ` [PATCH 03/15] ARM: ux500: Use correct format for dynamic IRQ assignment Lee Jones
2012-04-23 13:13   ` Linus Walleij
2012-04-24  7:55     ` Lee Jones
2012-04-19 20:36 ` [PATCH 04/15] drivers/net: Do not free an IRQ if its request failed Lee Jones
2012-04-19 20:36   ` Lee Jones
2012-05-04 14:10   ` Lee Jones
2012-05-04 14:10     ` Lee Jones
2012-05-04 18:22     ` Linus Walleij
2012-05-04 18:22       ` Linus Walleij
2012-05-04 21:18       ` Lee Jones
2012-05-04 21:18         ` Lee Jones
2012-04-19 20:36 ` [PATCH 05/15] ARM: ux500: New DT:ed snowball_platform_devs for one-by-one device enablement Lee Jones
2012-04-24 10:05   ` Lee Jones
2012-04-25 10:50     ` Linus Walleij
2012-05-28  4:54       ` Lee Jones
2012-05-29  2:01         ` Linus Walleij
2012-04-19 20:36 ` [PATCH 06/15] ARM: ux500: New DT:ed u8500_init_devices " Lee Jones
2012-04-19 20:36 ` [PATCH 07/15] ARM: ux500: Enable the SMSC9115 on Snowball via Device Tree Lee Jones
2012-04-24  7:53   ` Linus Walleij
2012-04-24  9:58     ` [PATCH 7.1/15] " Lee Jones
2012-04-25 10:43       ` Linus Walleij
2012-04-24  9:59     ` [PATCH 7.2/15] ARM: ux500: Disable SMSC911x platform code registration when DT is enabled Lee Jones
2012-05-03 12:57       ` Arnd Bergmann
2012-05-03 17:14         ` Linus Walleij
2012-05-16  7:12           ` Lee Jones
2012-05-16  7:38             ` Linus Walleij
2012-05-16  7:48               ` Lee Jones
2012-05-16  7:55                 ` Linus Walleij
2012-05-16  8:01                   ` Lee Jones
2012-05-16  8:03           ` Lee Jones
2012-04-24  9:48   ` [PATCH 07/15] ARM: ux500: Enable the SMSC9115 on Snowball via Device Tree Lee Jones
2012-04-24  9:51     ` Lee Jones
2012-04-19 20:36 ` [PATCH 08/15] drivers/mmc: MMCI: Use correct GPIO binding for IRQ requests Lee Jones
2012-04-24  7:51   ` Linus Walleij
2012-04-24  7:58     ` Lee Jones
2012-04-25  8:41       ` Linus Walleij
2012-04-19 20:36 ` [PATCH 09/15] ARM: ux500: Correctly describe SMSC9115 for Snowball in DT Lee Jones
2012-04-24  7:54   ` Linus Walleij
2012-04-24  7:59     ` Lee Jones
2012-04-19 20:36 ` [PATCH 10/15] drivers/gpio: represent gpio-nomadik as an IRQ controller in DT documentation Lee Jones
2012-04-24  7:57   ` Linus Walleij
2012-04-24  8:00     ` Lee Jones
2012-04-19 20:36 ` [PATCH 11/15] ARM: ux500: Do not attempt to register non-existent i2c devices on Snowball Lee Jones
2012-04-24  8:05   ` Linus Walleij
2012-04-19 20:36 ` [PATCH 12/15] mfd/db8500-prcmu: Register as a platform driver instead of only probing Lee Jones
2012-04-24  8:07   ` Linus Walleij
2012-05-04 14:00     ` Lee Jones
2012-05-09 15:20     ` Samuel Ortiz
2012-04-19 20:36 ` [PATCH 13/15] ARM: ux500: Fork cpu-db8500 platform_devs for sequential DT enablement Lee Jones
2012-04-19 20:36 ` [PATCH 14/15] mfd/db8500-prcmu: Add Device Tree support and enable ux500 platforms Lee Jones
2012-04-24  8:18   ` Linus Walleij
2012-05-04 14:00     ` Lee Jones
2012-05-09 15:08     ` Samuel Ortiz
2012-04-19 20:36 ` Lee Jones [this message]
2012-04-24  8:19   ` [PATCH 15/15] ARM: ux500: Enable PRCMU Timer 4 (clocksource) via Device Tree Linus Walleij
2012-04-24 10:02     ` [PATCH 15.1/15] ARM: ux500: Configure the PRCMU Timer for db8500 based devices in DT Lee Jones
2012-04-24 10:03     ` [PATCH 15.2/15] ARM: ux500: Enable PRCMU Timer 4 (clocksource) for Device Tree Lee Jones

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=1334867804-31942-16-git-send-email-lee.jones@linaro.org \
    --to=lee.jones@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.