From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 18/19] ARM: at91: move pit timer to common clk framework
Date: Tue, 8 Oct 2013 18:28:23 +0200 [thread overview]
Message-ID: <525432A7.9030104@atmel.com> (raw)
In-Reply-To: <1375949844-10545-1-git-send-email-b.brezillon@overkiz.com>
On 08/08/2013 10:17, Boris BREZILLON :
> 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 3a4bc2e..8ac976a 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);
>
>
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris BREZILLON <b.brezillon@overkiz.com>,
Grant Likely <grant.likely@linaro.org>,
Rob Herring <rob.herring@calxeda.com>,
Rob Landley <rob@landley.net>, Andrew Victor <linux@maxim.org.za>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
Russell King <linux@arm.linux.org.uk>,
Mike Turquette <mturquette@linaro.org>,
Felipe Balbi <balbi@ti.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ludovic Desroches <ludovic.desroches@atmel.com>,
Josh Wu <josh.wu@atmel.com>,
Richard Genoud <richard.genoud@gmail.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 18/19] ARM: at91: move pit timer to common clk framework
Date: Tue, 8 Oct 2013 18:28:23 +0200 [thread overview]
Message-ID: <525432A7.9030104@atmel.com> (raw)
In-Reply-To: <1375949844-10545-1-git-send-email-b.brezillon@overkiz.com>
On 08/08/2013 10:17, Boris BREZILLON :
> 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 3a4bc2e..8ac976a 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);
>
>
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Boris BREZILLON <b.brezillon@overkiz.com>,
Grant Likely <grant.likely@linaro.org>,
Rob Herring <rob.herring@calxeda.com>,
Rob Landley <rob@landley.net>, Andrew Victor <linux@maxim.org.za>,
"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
Russell King <linux@arm.linux.org.uk>,
Mike Turquette <mturquette@linaro.org>,
"Felipe Balbi" <balbi@ti.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ludovic Desroches <ludovic.desroches@atmel.com>,
Josh Wu <josh.wu@atmel.com>,
Richard Genoud <richard.genoud@gmail.com>
Cc: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 18/19] ARM: at91: move pit timer to common clk framework
Date: Tue, 8 Oct 2013 18:28:23 +0200 [thread overview]
Message-ID: <525432A7.9030104@atmel.com> (raw)
In-Reply-To: <1375949844-10545-1-git-send-email-b.brezillon@overkiz.com>
On 08/08/2013 10:17, Boris BREZILLON :
> 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 3a4bc2e..8ac976a 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);
>
>
--
Nicolas Ferre
next prev parent reply other threads:[~2013-10-08 16:28 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-08 4:53 [PATCH v3 00/19] ARM: at91: move to common clk framework Boris BREZILLON
2013-08-08 4:53 ` Boris BREZILLON
2013-08-08 4:59 ` [PATCH v3 01/19] ARM: at91: move at91_pmc.h to include/linux/clk/at91_pmc.h Boris BREZILLON
2013-08-08 4:59 ` Boris BREZILLON
2013-08-08 5:01 ` [PATCH v3 03/19] clk: at91: add PMC base support Boris BREZILLON
2013-08-08 5:01 ` Boris BREZILLON
2013-10-07 15:07 ` Nicolas Ferre
2013-10-07 15:07 ` Nicolas Ferre
2013-10-07 15:07 ` Nicolas Ferre
2013-10-07 15:57 ` boris brezillon
2013-10-07 15:57 ` boris brezillon
2013-08-08 5:02 ` [PATCH v3 02/19] ARM: at91: add Kconfig options for common clk support Boris BREZILLON
2013-08-08 5:02 ` Boris BREZILLON
2013-10-07 15:12 ` Nicolas Ferre
2013-10-07 15:12 ` Nicolas Ferre
2013-10-07 15:12 ` Nicolas Ferre
2013-10-07 16:05 ` boris brezillon
2013-10-07 16:05 ` boris brezillon
2013-10-09 9:56 ` boris brezillon
2013-10-09 9:56 ` boris brezillon
2013-10-09 10:05 ` Nicolas Ferre
2013-10-09 10:05 ` Nicolas Ferre
2013-10-09 10:05 ` Nicolas Ferre
2013-08-08 5:04 ` [PATCH v3 04/19] clk: at91: add PMC macro file for dt definitions Boris BREZILLON
2013-08-08 5:04 ` Boris BREZILLON
2013-10-07 15:17 ` Nicolas Ferre
2013-10-07 15:17 ` Nicolas Ferre
2013-10-07 15:17 ` Nicolas Ferre
2013-10-07 16:06 ` boris brezillon
2013-10-07 16:06 ` boris brezillon
2013-10-07 16:06 ` boris brezillon
2013-08-08 5:06 ` [PATCH v3 05/19] clk: at91: add PMC main clock Boris BREZILLON
2013-08-08 5:06 ` Boris BREZILLON
2013-10-07 16:51 ` Nicolas Ferre
2013-10-07 16:51 ` Nicolas Ferre
2013-10-07 16:51 ` Nicolas Ferre
2013-10-07 19:11 ` boris brezillon
2013-10-07 19:11 ` boris brezillon
2013-10-08 8:24 ` Nicolas Ferre
2013-10-08 8:24 ` Nicolas Ferre
2013-10-08 8:24 ` Nicolas Ferre
2013-10-08 9:00 ` boris brezillon
2013-10-08 9:00 ` boris brezillon
2013-10-08 9:00 ` boris brezillon
2013-08-08 6:07 ` [PATCH v3 06/19] clk: at91: add PMC pll clocks Boris BREZILLON
2013-08-08 6:07 ` Boris BREZILLON
2013-10-08 10:28 ` Nicolas Ferre
2013-10-08 10:28 ` Nicolas Ferre
2013-10-08 10:28 ` Nicolas Ferre
2013-10-08 11:45 ` boris brezillon
2013-10-08 11:45 ` boris brezillon
2013-10-08 11:45 ` boris brezillon
2013-08-08 6:09 ` [PATCH v3 07/19] clk: at91: add pll id macros for pll dt bindings Boris BREZILLON
2013-08-08 6:09 ` Boris BREZILLON
2013-10-08 10:30 ` Nicolas Ferre
2013-10-08 10:30 ` Nicolas Ferre
2013-10-08 10:30 ` Nicolas Ferre
2013-10-08 12:03 ` boris brezillon
2013-10-08 12:03 ` boris brezillon
2013-08-08 6:10 ` [PATCH v3 08/19] clk: at91: add PMC master clock Boris BREZILLON
2013-08-08 6:10 ` Boris BREZILLON
2013-08-08 6:12 ` [PATCH v3 09/19] clk: at91: add PMC system clocks Boris BREZILLON
2013-08-08 6:12 ` Boris BREZILLON
2013-10-08 15:32 ` Nicolas Ferre
2013-10-08 15:32 ` Nicolas Ferre
2013-10-08 15:32 ` Nicolas Ferre
2013-08-08 6:15 ` [PATCH v3 10/19] ARM: at91/dt: add system clk id definitions in dt-bindings include dir Boris BREZILLON
2013-08-08 6:15 ` Boris BREZILLON
2013-10-08 15:36 ` Nicolas Ferre
2013-10-08 15:36 ` Nicolas Ferre
2013-10-08 15:36 ` Nicolas Ferre
2013-08-08 6:16 ` [PATCH v3 11/19] clk: at91: add PMC peripheral clocks Boris BREZILLON
2013-08-08 6:16 ` Boris BREZILLON
2013-10-08 15:43 ` Nicolas Ferre
2013-10-08 15:43 ` Nicolas Ferre
2013-10-08 15:43 ` Nicolas Ferre
2013-08-08 7:10 ` [PATCH v3 12/19] clk: at91: add peripheral clk macros for peripheral clk dt bindings Boris BREZILLON
2013-08-08 7:10 ` Boris BREZILLON
2013-10-08 15:44 ` Nicolas Ferre
2013-10-08 15:44 ` Nicolas Ferre
2013-10-08 15:44 ` Nicolas Ferre
2013-10-08 16:01 ` boris brezillon
2013-10-08 16:01 ` boris brezillon
2013-10-08 16:15 ` Nicolas Ferre
2013-10-08 16:15 ` Nicolas Ferre
2013-10-08 16:15 ` Nicolas Ferre
2013-10-08 16:19 ` boris brezillon
2013-10-08 16:19 ` boris brezillon
2013-08-08 7:12 ` [PATCH v3 13/19] clk: at91: add PMC programmable clocks Boris BREZILLON
2013-08-08 7:12 ` Boris BREZILLON
2013-10-08 16:02 ` Nicolas Ferre
2013-10-08 16:02 ` Nicolas Ferre
2013-10-08 16:02 ` Nicolas Ferre
2013-10-08 16:06 ` Nicolas Ferre
2013-10-08 16:06 ` Nicolas Ferre
2013-10-08 16:06 ` Nicolas Ferre
2013-08-08 7:14 ` [PATCH v3 14/19] clk: at91: add PMC utmi clock Boris BREZILLON
2013-08-08 7:14 ` Boris BREZILLON
2013-10-08 16:08 ` Nicolas Ferre
2013-10-08 16:08 ` Nicolas Ferre
2013-10-08 16:08 ` Nicolas Ferre
2013-08-08 7:15 ` [PATCH v3 15/19] clk: at91: add PMC usb clock Boris BREZILLON
2013-08-08 7:15 ` Boris BREZILLON
2013-10-08 16:20 ` Nicolas Ferre
2013-10-08 16:20 ` Nicolas Ferre
2013-10-08 16:20 ` Nicolas Ferre
2013-08-08 7:17 ` [PATCH v3 16/19] clk: at91: add PMC smd clock Boris BREZILLON
2013-08-08 7:17 ` Boris BREZILLON
2013-10-08 16:22 ` Nicolas Ferre
2013-10-08 16:22 ` Nicolas Ferre
2013-10-08 16:22 ` Nicolas Ferre
2013-08-08 7:19 ` [PATCH v3 17/19] clk: at91: add PMC clk device tree binding doc Boris BREZILLON
2013-08-08 7:19 ` Boris BREZILLON
2013-10-08 9:44 ` Nicolas Ferre
2013-10-08 9:44 ` Nicolas Ferre
2013-10-08 9:44 ` Nicolas Ferre
2013-10-08 12:37 ` boris brezillon
2013-10-08 12:37 ` boris brezillon
2013-10-08 12:37 ` boris brezillon
2013-10-08 12:42 ` Nicolas Ferre
2013-10-08 12:42 ` Nicolas Ferre
2013-10-08 12:42 ` Nicolas Ferre
2013-08-08 8:17 ` [PATCH v3 18/19] ARM: at91: move pit timer to common clk framework Boris BREZILLON
2013-08-08 8:17 ` Boris BREZILLON
2013-10-08 16:28 ` Nicolas Ferre [this message]
2013-10-08 16:28 ` Nicolas Ferre
2013-10-08 16:28 ` Nicolas Ferre
2013-08-08 8:19 ` [PATCH v3 19/19] ARM: at91: add new compatible strings for pmc driver Boris BREZILLON
2013-08-08 8:19 ` Boris BREZILLON
2013-10-08 16:29 ` Nicolas Ferre
2013-10-08 16:29 ` Nicolas Ferre
2013-10-08 16:29 ` Nicolas Ferre
2013-08-20 10:21 ` [PATCH v3 00/19] ARM: at91: move to common clk framework boris brezillon
2013-08-20 10:21 ` boris brezillon
2013-10-07 20:06 ` Mike Turquette
2013-10-07 20:06 ` Mike Turquette
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=525432A7.9030104@atmel.com \
--to=nicolas.ferre@atmel.com \
--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.