diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2018-01-15 22:41:02 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-17 11:06:37 +0100 |
commit | cf2c9862201971d2b0fe11f5dc07abf34015c401 (patch) | |
tree | efbd5daa1db12d98d65ffab4c2222fd096dc333f /arch | |
parent | 21b932af19bd2a6912fad9664b58e30faff7dd30 (diff) | |
download | barebox-cf2c9862201971d2b0fe11f5dc07abf34015c401.tar.gz barebox-cf2c9862201971d2b0fe11f5dc07abf34015c401.tar.xz |
arm: at91: move irq_fixup to header file
This allows at91_rtt_irq_fixup() to be used outside
of the mach-at91/ directory.
Adjust all call sites to include the at91_rtt header.
Deleting one .c file is another nice side effect of this move.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-at91/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9260_devices.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9261_devices.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9263_devices.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9g45_devices.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/generic.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/at91_rtt.h | 16 | ||||
-rw-r--r-- | arch/arm/mach-at91/irq_fixup.c | 22 |
8 files changed, 21 insertions, 25 deletions
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile index 8462cba60a..8adeee9bca 100644 --- a/arch/arm/mach-at91/Makefile +++ b/arch/arm/mach-at91/Makefile @@ -1,4 +1,4 @@ -obj-y += setup.o irq_fixup.o +obj-y += setup.o ifeq ($(CONFIG_COMMON_CLK_OF_PROVIDER),) obj-y += clock.o diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c index 99919b3f82..1cb8983514 100644 --- a/arch/arm/mach-at91/at91sam9260_devices.c +++ b/arch/arm/mach-at91/at91sam9260_devices.c @@ -19,6 +19,7 @@ #include <mach/at91_pmc.h> #include <mach/at91sam9260_matrix.h> #include <mach/at91sam9_sdramc.h> +#include <mach/at91_rtt.h> #include <mach/iomux.h> #include <mach/io.h> #include <mach/cpu.h> diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index e63e0e7516..6be390937d 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c @@ -18,6 +18,7 @@ #include <mach/at91_pmc.h> #include <mach/at91sam9261_matrix.h> #include <mach/at91sam9_sdramc.h> +#include <mach/at91_rtt.h> #include <mach/board.h> #include <mach/iomux.h> #include <mach/io.h> diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index 559b77e9d8..6302684b2d 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -18,6 +18,7 @@ #include <mach/at91_pmc.h> #include <mach/at91sam9263_matrix.h> #include <mach/at91sam9_sdramc.h> +#include <mach/at91_rtt.h> #include <mach/board.h> #include <mach/iomux.h> #include <mach/io.h> diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c index bc41320405..67ca3590c3 100644 --- a/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/arch/arm/mach-at91/at91sam9g45_devices.c @@ -18,6 +18,7 @@ #include <mach/at91_pmc.h> #include <mach/at91sam9g45_matrix.h> #include <mach/at91sam9_ddrsdr.h> +#include <mach/at91_rtt.h> #include <mach/board.h> #include <mach/iomux.h> #include <mach/io.h> diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h index a47bcb2c57..deba019243 100644 --- a/arch/arm/mach-at91/generic.h +++ b/arch/arm/mach-at91/generic.h @@ -35,5 +35,3 @@ static inline struct device_d *at91_add_sam9_smc(int id, resource_size_t start, return add_generic_device("at91sam9-smc", id, NULL, start, size, IORESOURCE_MEM, NULL); } - -void at91_rtt_irq_fixup(void *base); diff --git a/arch/arm/mach-at91/include/mach/at91_rtt.h b/arch/arm/mach-at91/include/mach/at91_rtt.h index 7ec75de8bb..ad29df1918 100644 --- a/arch/arm/mach-at91/include/mach/at91_rtt.h +++ b/arch/arm/mach-at91/include/mach/at91_rtt.h @@ -16,6 +16,8 @@ #ifndef AT91_RTT_H #define AT91_RTT_H +#include <io.h> + #define AT91_RTT_MR 0x00 /* Real-time Mode Register */ #define AT91_RTT_RTPRES (0xffff << 0) /* Real-time Timer Prescaler Value */ #define AT91_RTT_ALMIEN (1 << 16) /* Alarm Interrupt Enable */ @@ -32,4 +34,18 @@ #define AT91_RTT_ALMS (1 << 0) /* Real-time Alarm Status */ #define AT91_RTT_RTTINC (1 << 1) /* Real-time Timer Increment */ + +/* + * As the RTT is powered by the backup power so if the interrupt + * is still on when the kernel start, the kernel will end up with + * dead lock interrupt that it can not clear. Because the interrupt line is + * shared with the basic timer (PIT) on AT91_ID_SYS. + */ +static inline void at91_rtt_irq_fixup(void *base) +{ + void __iomem *reg = base + AT91_RTT_MR; + u32 mr = readl(reg); + + writel(mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN), reg); +} #endif diff --git a/arch/arm/mach-at91/irq_fixup.c b/arch/arm/mach-at91/irq_fixup.c deleted file mode 100644 index 9815ac2ca5..0000000000 --- a/arch/arm/mach-at91/irq_fixup.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> - * - * Under GPLv2 only - */ - -#include <io.h> -#include <mach/at91_rtt.h> - -/* - * As the RTT is powered by the backup power so if the interrupt - * is still on when the kernel start, the kernel will end up with - * dead lock interrupt that it can not clear. Because the interrupt line is - * shared with the basic timer (PIT) on AT91_ID_SYS. - */ -void at91_rtt_irq_fixup(void *base) -{ - void __iomem *reg = base + AT91_RTT_MR; - u32 mr = readl(reg); - - writel(mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN), reg); -} |