aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2008-03-27 14:51:41 -0400
committerNicolas Pitre <nico@marvell.com>2008-03-27 14:51:41 -0400
commitb590bc5cd0ced1019f02ca7c9b8594482304987f (patch)
tree381df16e64f65ef0ae604f39fc8f0f26baa7bdb6
parentda14d88e90d476b315e5e9c3e3ffa940cb670c6d (diff)
Orion: move I/O macros out of orion.h
Move the Orion register accessor macros out of orion.h, to prevent them from ending up in the decompressor image (Orion uncompress.h includes orion.h.) Move them into io.h, which seems a better place for this kind of stuff. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Reviewed-by: Tzachi Perelstein <tzachi@marvell.com> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Nicolas Pitre <nico@marvell.com>
-rw-r--r--arch/arm/mach-orion/addr-map.c1
-rw-r--r--arch/arm/mach-orion/gpio.c1
-rw-r--r--arch/arm/mach-orion/irq.c1
-rw-r--r--include/asm-arm/arch-orion/io.h15
-rw-r--r--include/asm-arm/arch-orion/orion.h20
5 files changed, 19 insertions, 19 deletions
diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c
index ca641db6214d..ecca987b57e9 100644
--- a/arch/arm/mach-orion/addr-map.c
+++ b/arch/arm/mach-orion/addr-map.c
@@ -14,6 +14,7 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/mbus.h> 15#include <linux/mbus.h>
16#include <asm/hardware.h> 16#include <asm/hardware.h>
17#include <asm/io.h>
17#include "common.h" 18#include "common.h"
18 19
19/* 20/*
diff --git a/arch/arm/mach-orion/gpio.c b/arch/arm/mach-orion/gpio.c
index f713818c66a3..5a7d9cc9b800 100644
--- a/arch/arm/mach-orion/gpio.c
+++ b/arch/arm/mach-orion/gpio.c
@@ -16,6 +16,7 @@
16#include <linux/spinlock.h> 16#include <linux/spinlock.h>
17#include <linux/bitops.h> 17#include <linux/bitops.h>
18#include <asm/gpio.h> 18#include <asm/gpio.h>
19#include <asm/io.h>
19#include <asm/arch/orion.h> 20#include <asm/arch/orion.h>
20#include "common.h" 21#include "common.h"
21 22
diff --git a/arch/arm/mach-orion/irq.c b/arch/arm/mach-orion/irq.c
index 855793afcca8..dc8cb15a817f 100644
--- a/arch/arm/mach-orion/irq.c
+++ b/arch/arm/mach-orion/irq.c
@@ -14,6 +14,7 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <asm/gpio.h> 16#include <asm/gpio.h>
17#include <asm/io.h>
17#include <asm/arch/orion.h> 18#include <asm/arch/orion.h>
18#include <asm/plat-orion/irq.h> 19#include <asm/plat-orion/irq.h>
19#include "common.h" 20#include "common.h"
diff --git a/include/asm-arm/arch-orion/io.h b/include/asm-arm/arch-orion/io.h
index e0b8c39b9167..42abd297ae5f 100644
--- a/include/asm-arm/arch-orion/io.h
+++ b/include/asm-arm/arch-orion/io.h
@@ -24,4 +24,19 @@ static inline void __iomem *__io(unsigned long addr)
24#define __io(a) __io(a) 24#define __io(a) __io(a)
25#define __mem_pci(a) (a) 25#define __mem_pci(a) (a)
26 26
27
28/*****************************************************************************
29 * Helpers to access Orion registers
30 ****************************************************************************/
31#define orion_read(r) __raw_readl(r)
32#define orion_write(r, val) __raw_writel(val, r)
33
34/*
35 * These are not preempt-safe. Locks, if needed, must be taken
36 * care of by the caller.
37 */
38#define orion_setbits(r, mask) orion_write((r), orion_read(r) | (mask))
39#define orion_clrbits(r, mask) orion_write((r), orion_read(r) & ~(mask))
40
41
27#endif 42#endif
diff --git a/include/asm-arm/arch-orion/orion.h b/include/asm-arm/arch-orion/orion.h
index 95f67081bb9c..d0b32c379ae4 100644
--- a/include/asm-arm/arch-orion/orion.h
+++ b/include/asm-arm/arch-orion/orion.h
@@ -156,23 +156,5 @@
156 156
157#define TIMER_VIRT_BASE (ORION_BRIDGE_VIRT_BASE | 0x300) 157#define TIMER_VIRT_BASE (ORION_BRIDGE_VIRT_BASE | 0x300)
158 158
159#ifndef __ASSEMBLY__
160 159
161/******************************************************************************* 160#endif
162 * Helpers to access Orion registers
163 ******************************************************************************/
164#include <asm/types.h>
165#include <asm/io.h>
166
167#define orion_read(r) __raw_readl(r)
168#define orion_write(r, val) __raw_writel(val, r)
169
170/*
171 * These are not preempt safe. Locks, if needed, must be taken care by caller.
172 */
173#define orion_setbits(r, mask) orion_write((r), orion_read(r) | (mask))
174#define orion_clrbits(r, mask) orion_write((r), orion_read(r) & ~(mask))
175
176#endif /* __ASSEMBLY__ */
177
178#endif /* __ASM_ARCH_ORION_H__ */