From: Alexandre Belloni <alexandre.belloni@free-electrons.com> To: Nicolas Ferre <nicolas.ferre@atmel.com>, Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>, Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>, Wim Van Sebroeck <wim@iguana.be>, Guenter Roeck <linux@roeck-us.net>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-watchdog@vger.kernel.org, Alexandre Belloni <alexandre.belloni@free-electrons.com> Subject: [PATCH v5 09/10] clocksource: atmel-st: remove mach/hardware dependency Date: Thu, 12 Mar 2015 13:07:33 +0100 [thread overview] Message-ID: <1426162054-9987-10-git-send-email-alexandre.belloni@free-electrons.com> (raw) In-Reply-To: <1426162054-9987-1-git-send-email-alexandre.belloni@free-electrons.com> Remove the mach/hardware dependency to prepare the driver for multiplatform support. Also switch from setup_irq() to request_irq() Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- drivers/clocksource/timer-atmel-st.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/clocksource/timer-atmel-st.c b/drivers/clocksource/timer-atmel-st.c index 674ef2519d6b..91d6cbb7a56b 100644 --- a/drivers/clocksource/timer-atmel-st.c +++ b/drivers/clocksource/timer-atmel-st.c @@ -31,13 +31,12 @@ #include <asm/mach/time.h> -#include <mach/hardware.h> - static unsigned long last_crtr; static u32 irqmask; static struct clock_event_device clkevt; static struct regmap *regmap_st; +#define AT91_SLOW_CLOCK 32768 #define RM9200_TIMER_LATCH ((AT91_SLOW_CLOCK + HZ/2) / HZ) /* @@ -96,13 +95,6 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id) return IRQ_NONE; } -static struct irqaction at91rm9200_timer_irq = { - .name = "at91_tick", - .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, - .handler = at91rm9200_timer_interrupt, - .irq = NR_IRQS_LEGACY + AT91_ID_SYS, -}; - static cycle_t read_clk32k(struct clocksource *cs) { return read_CRTR(); @@ -193,6 +185,7 @@ static struct clock_event_device clkevt = { static void __init atmel_st_timer_init(struct device_node *node) { unsigned int val; + int irq, ret; regmap_st = syscon_node_to_regmap(node); if (IS_ERR(regmap_st)) @@ -204,12 +197,16 @@ static void __init atmel_st_timer_init(struct device_node *node) regmap_read(regmap_st, AT91_ST_SR, &val); /* Get the interrupts property */ - at91rm9200_timer_irq.irq = irq_of_parse_and_map(node, 0); - if (!at91rm9200_timer_irq.irq) + irq = irq_of_parse_and_map(node, 0); + if (!irq) panic(pr_fmt("Unable to get IRQ from DT\n")); /* Make IRQs happen for the system timer */ - setup_irq(at91rm9200_timer_irq.irq, &at91rm9200_timer_irq); + ret = request_irq(irq, at91rm9200_timer_interrupt, + IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, + "at91_tick", regmap_st); + if (ret) + panic(pr_fmt("Unable to setup IRQ\n")); /* The 32KiHz "Slow Clock" (tick every 30517.58 nanoseconds) is used * directly for the clocksource and all clockevents, after adjusting -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: alexandre.belloni@free-electrons.com (Alexandre Belloni) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 09/10] clocksource: atmel-st: remove mach/hardware dependency Date: Thu, 12 Mar 2015 13:07:33 +0100 [thread overview] Message-ID: <1426162054-9987-10-git-send-email-alexandre.belloni@free-electrons.com> (raw) In-Reply-To: <1426162054-9987-1-git-send-email-alexandre.belloni@free-electrons.com> Remove the mach/hardware dependency to prepare the driver for multiplatform support. Also switch from setup_irq() to request_irq() Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- drivers/clocksource/timer-atmel-st.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/clocksource/timer-atmel-st.c b/drivers/clocksource/timer-atmel-st.c index 674ef2519d6b..91d6cbb7a56b 100644 --- a/drivers/clocksource/timer-atmel-st.c +++ b/drivers/clocksource/timer-atmel-st.c @@ -31,13 +31,12 @@ #include <asm/mach/time.h> -#include <mach/hardware.h> - static unsigned long last_crtr; static u32 irqmask; static struct clock_event_device clkevt; static struct regmap *regmap_st; +#define AT91_SLOW_CLOCK 32768 #define RM9200_TIMER_LATCH ((AT91_SLOW_CLOCK + HZ/2) / HZ) /* @@ -96,13 +95,6 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id) return IRQ_NONE; } -static struct irqaction at91rm9200_timer_irq = { - .name = "at91_tick", - .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, - .handler = at91rm9200_timer_interrupt, - .irq = NR_IRQS_LEGACY + AT91_ID_SYS, -}; - static cycle_t read_clk32k(struct clocksource *cs) { return read_CRTR(); @@ -193,6 +185,7 @@ static struct clock_event_device clkevt = { static void __init atmel_st_timer_init(struct device_node *node) { unsigned int val; + int irq, ret; regmap_st = syscon_node_to_regmap(node); if (IS_ERR(regmap_st)) @@ -204,12 +197,16 @@ static void __init atmel_st_timer_init(struct device_node *node) regmap_read(regmap_st, AT91_ST_SR, &val); /* Get the interrupts property */ - at91rm9200_timer_irq.irq = irq_of_parse_and_map(node, 0); - if (!at91rm9200_timer_irq.irq) + irq = irq_of_parse_and_map(node, 0); + if (!irq) panic(pr_fmt("Unable to get IRQ from DT\n")); /* Make IRQs happen for the system timer */ - setup_irq(at91rm9200_timer_irq.irq, &at91rm9200_timer_irq); + ret = request_irq(irq, at91rm9200_timer_interrupt, + IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, + "at91_tick", regmap_st); + if (ret) + panic(pr_fmt("Unable to setup IRQ\n")); /* The 32KiHz "Slow Clock" (tick every 30517.58 nanoseconds) is used * directly for the clocksource and all clockevents, after adjusting -- 2.1.0
next prev parent reply other threads:[~2015-03-12 12:08 UTC|newest] Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-12 12:07 [PATCH v5 00/10] Atmel System Timer cleanups Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 01/10] ARM: at91/dt: declare atmel,at91rm9200-st as a syscon Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 01/10] ARM: at91/dt: declare atmel, at91rm9200-st " Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 02/10] mfd: syscon: Add atmel system timer registers definition Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-13 8:03 ` Lee Jones 2015-03-13 8:03 ` Lee Jones 2015-03-13 8:03 ` Lee Jones 2015-03-13 10:40 ` Alexandre Belloni 2015-03-13 10:40 ` Alexandre Belloni 2015-03-13 16:52 ` Nicolas Ferre 2015-03-13 16:52 ` Nicolas Ferre 2015-03-13 16:52 ` Nicolas Ferre 2015-03-16 8:17 ` Lee Jones 2015-03-16 8:17 ` Lee Jones 2015-03-16 8:17 ` Lee Jones 2015-03-12 12:07 ` [PATCH v5 03/10] watchdog: at91rm9200: use the system timer syscon Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-12 16:19 ` Guenter Roeck 2015-03-12 16:19 ` Guenter Roeck 2015-03-12 12:07 ` [PATCH v5 04/10] watchdog: at91rm9200: implement restart handler Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-12 16:22 ` Guenter Roeck 2015-03-12 16:22 ` Guenter Roeck 2015-03-12 12:07 ` [PATCH v5 05/10] ARM: at91: at91rm9200: remove deprecated arm_pm_restart Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 06/10] ARM: at91: properly initialize timer Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 07/10] ARM: at91: time: move the system timer driver to drivers/clocksource Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-13 10:14 ` Daniel Lezcano 2015-03-13 10:14 ` Daniel Lezcano 2015-03-13 10:14 ` Daniel Lezcano 2015-03-12 12:07 ` [PATCH v5 08/10] clocksource: atmel-st: use syscon/regmap Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-13 10:17 ` Daniel Lezcano 2015-03-13 10:17 ` Daniel Lezcano 2015-03-13 10:17 ` Daniel Lezcano 2015-03-12 12:07 ` Alexandre Belloni [this message] 2015-03-12 12:07 ` [PATCH v5 09/10] clocksource: atmel-st: remove mach/hardware dependency Alexandre Belloni 2015-03-13 10:21 ` Daniel Lezcano 2015-03-13 10:21 ` Daniel Lezcano 2015-03-13 10:21 ` Daniel Lezcano 2015-03-13 10:44 ` Alexandre Belloni 2015-03-13 10:44 ` Alexandre Belloni 2015-03-13 10:54 ` [PATCH v6 " Alexandre Belloni 2015-03-13 10:54 ` Alexandre Belloni 2015-03-12 12:07 ` [PATCH v5 10/10] ARM: at91: remove useless include Alexandre Belloni 2015-03-12 12:07 ` Alexandre Belloni 2015-03-13 10:22 ` Daniel Lezcano 2015-03-13 10:22 ` Daniel Lezcano 2015-03-13 10:22 ` Daniel Lezcano 2015-03-12 14:04 ` [PATCH v5 00/10] Atmel System Timer cleanups Nicolas Ferre 2015-03-12 14:04 ` Nicolas Ferre 2015-03-12 14:04 ` Nicolas Ferre 2015-03-13 10:23 ` Daniel Lezcano 2015-03-13 10:23 ` Daniel Lezcano 2015-03-13 10:23 ` Daniel Lezcano 2015-03-13 10:33 ` Alexandre Belloni 2015-03-13 10:33 ` Alexandre Belloni 2015-03-13 10:33 ` Daniel Lezcano 2015-03-13 10:33 ` Daniel Lezcano 2015-03-13 10:33 ` Daniel Lezcano 2015-03-13 16:36 ` Nicolas Ferre 2015-03-13 16:36 ` Nicolas Ferre 2015-03-13 16:36 ` 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=1426162054-9987-10-git-send-email-alexandre.belloni@free-electrons.com \ --to=alexandre.belloni@free-electrons.com \ --cc=boris.brezillon@free-electrons.com \ --cc=daniel.lezcano@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-watchdog@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=nicolas.ferre@atmel.com \ --cc=plagnioj@jcrosoft.com \ --cc=wim@iguana.be \ /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: linkBe 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.