mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Boris BREZILLON <b.brezillon@overkiz.com>
To: Nicolas Ferre <nicolas.ferre@atmel.com>,
	Russell King <linux@arm.linux.org.uk>,
	Mike Turquette <mturquette@linaro.org>,
	Felipe Balbi <balbi@ti.com>, Jason Cooper <jason@lakedaemon.net>
Cc: Boris BREZILLON <b.brezillon@overkiz.com>,
	devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-usb@vger.kernel.org
Subject: [PATCH v6 15/16] ARM: at91: move pit timer to common clk framework
Date: Thu, 28 Nov 2013 14:55:11 +0100	[thread overview]
Message-ID: <1385646911-8462-1-git-send-email-b.brezillon@overkiz.com> (raw)
In-Reply-To: <1385642184-6467-1-git-send-email-b.brezillon@overkiz.com>

Use device tree to get the source clock of the PIT (Periodic Interval Timer).
If the clock is not found in device tree (or dt is not enabled) we'll try to
get it using clk_lookup definitions.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 arch/arm/mach-at91/at91sam926x_time.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
index bb39232..0f04ffe 100644
--- a/arch/arm/mach-at91/at91sam926x_time.c
+++ b/arch/arm/mach-at91/at91sam926x_time.c
@@ -39,6 +39,7 @@
 static u32 pit_cycle;		/* write-once */
 static u32 pit_cnt;		/* access only w/system irq blocked */
 static void __iomem *pit_base_addr __read_mostly;
+static struct clk *mck;
 
 static inline unsigned int pit_read(unsigned int reg_offset)
 {
@@ -195,10 +196,14 @@ static int __init of_at91sam926x_pit_init(void)
 	if (!pit_base_addr)
 		goto node_err;
 
+	mck = of_clk_get(np, 0);
+
 	/* Get the interrupts property */
 	ret = irq_of_parse_and_map(np, 0);
 	if (!ret) {
 		pr_crit("AT91: PIT: Unable to get IRQ from DT\n");
+		if (!IS_ERR(mck))
+			clk_put(mck);
 		goto ioremap_err;
 	}
 	at91sam926x_pit_irq.irq = ret;
@@ -230,6 +235,8 @@ void __init at91sam926x_pit_init(void)
 	unsigned	bits;
 	int		ret;
 
+	mck = ERR_PTR(-ENOENT);
+
 	/* For device tree enabled device: initialize here */
 	of_at91sam926x_pit_init();
 
@@ -237,7 +244,12 @@ void __init at91sam926x_pit_init(void)
 	 * Use our actual MCK to figure out how many MCK/16 ticks per
 	 * 1/HZ period (instead of a compile-time constant LATCH).
 	 */
-	pit_rate = clk_get_rate(clk_get(NULL, "mck")) / 16;
+	if (IS_ERR(mck))
+		mck = clk_get(NULL, "mck");
+
+	if (IS_ERR(mck))
+		panic("AT91: PIT: Unable to get mck clk\n");
+	pit_rate = clk_get_rate(mck) / 16;
 	pit_cycle = (pit_rate + HZ/2) / HZ;
 	WARN_ON(((pit_cycle - 1) & ~AT91_PIT_PIV) != 0);
 
-- 
1.7.9.5


  parent reply	other threads:[~2013-11-28 13:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-28 12:36 [PATCH v6 00/16] ARM: at91: move " Boris BREZILLON
2013-11-28 12:38 ` [PATCH v6 01/16] ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.h Boris BREZILLON
2013-11-28 12:39 ` [PATCH v6 02/16] ARM: at91: add Kconfig options for common clk support Boris BREZILLON
2013-11-28 12:40 ` [PATCH v6 03/16] clk: at91: add PMC base support Boris BREZILLON
2013-11-28 12:40 ` [PATCH v6 04/16] clk: at91: add PMC macro file for dt definitions Boris BREZILLON
2013-11-28 12:42 ` [PATCH v6 05/16] clk: at91: add PMC main clock Boris BREZILLON
2013-11-28 12:43 ` [PATCH v6 06/16] clk: at91: add PMC pll clocks Boris BREZILLON
2013-11-28 12:43 ` [PATCH v6 07/16] clk: at91: add PMC master clock Boris BREZILLON
2013-11-28 12:45 ` [PATCH v6 08/16] clk: at91: add PMC system clocks Boris BREZILLON
2013-11-28 12:46 ` [PATCH v6 09/16] clk: at91: add PMC peripheral clocks Boris BREZILLON
2013-11-28 13:37 ` [PATCH v6 10/16] clk: at91: add PMC programmable clocks Boris BREZILLON
2013-11-28 13:39 ` [PATCH v6 11/16] clk: at91: add PMC utmi clock Boris BREZILLON
2013-11-28 13:45 ` [PATCH v6 12/16] clk: at91: add PMC usb clock Boris BREZILLON
2013-11-28 13:46 ` [PATCH v6 13/16] clk: at91: add PMC smd clock Boris BREZILLON
2013-11-28 13:53 ` [PATCH v6 14/16] dt: binding: add at91 clks dt bindings documentation Boris BREZILLON
2013-11-28 13:55 ` Boris BREZILLON [this message]
2013-11-28 13:55 ` [PATCH v6 16/16] ARM: at91: add new compatible strings for pmc driver Boris BREZILLON
2013-11-30 23:05 ` [PATCH v6 00/16] ARM: at91: move to common clk framework Mike Turquette
2013-12-02 11:43   ` boris brezillon
2013-12-02 13:03     ` boris brezillon
2013-12-02 13:10   ` Nicolas Ferre

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=1385646911-8462-1-git-send-email-b.brezillon@overkiz.com \
    --to=b.brezillon@overkiz.com \
    --cc=balbi@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mturquette@linaro.org \
    --cc=nicolas.ferre@atmel.com \
    /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

Powered by JetHome