aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2007-03-03 06:51:31 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-04-21 15:34:37 -0400
commit27350afdfc94a78adbdee20bb00f6058a0ef1eab (patch)
treeb5f9019f4c6729cb6935f3cad43fb0ad2b899ed2
parent7ab3f8d595a1b1e5cf8d726b72fd476fe0d0226c (diff)
[ARM] EBSA110: Add readsw/readsl/writesw/writesl
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/mach-ebsa110/io.c40
-rw-r--r--include/asm-arm/arch-ebsa110/io.h8
2 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/mach-ebsa110/io.c b/arch/arm/mach-ebsa110/io.c
index db38afb2aa88..bbf0d332407e 100644
--- a/arch/arm/mach-ebsa110/io.c
+++ b/arch/arm/mach-ebsa110/io.c
@@ -102,6 +102,26 @@ EXPORT_SYMBOL(__readb);
102EXPORT_SYMBOL(__readw); 102EXPORT_SYMBOL(__readw);
103EXPORT_SYMBOL(__readl); 103EXPORT_SYMBOL(__readl);
104 104
105void readsw(void __iomem *addr, void *data, int len)
106{
107 void __iomem *a = __isamem_convert_addr(addr);
108
109 BUG_ON((unsigned long)addr & 1);
110
111 __raw_readsw(a, data, len);
112}
113EXPORT_SYMBOL(readsw);
114
115void readsl(void __iomem *addr, void *data, int len)
116{
117 void __iomem *a = __isamem_convert_addr(addr);
118
119 BUG_ON((unsigned long)addr & 3);
120
121 __raw_readsl(a, data, len);
122}
123EXPORT_SYMBOL(readsl);
124
105void __writeb(u8 val, void __iomem *addr) 125void __writeb(u8 val, void __iomem *addr)
106{ 126{
107 void __iomem *a = __isamem_convert_addr(addr); 127 void __iomem *a = __isamem_convert_addr(addr);
@@ -137,6 +157,26 @@ EXPORT_SYMBOL(__writeb);
137EXPORT_SYMBOL(__writew); 157EXPORT_SYMBOL(__writew);
138EXPORT_SYMBOL(__writel); 158EXPORT_SYMBOL(__writel);
139 159
160void writesw(void __iomem *addr, void *data, int len)
161{
162 void __iomem *a = __isamem_convert_addr(addr);
163
164 BUG_ON((unsigned long)addr & 1);
165
166 __raw_writesw(a, data, len);
167}
168EXPORT_SYMBOL(writesw);
169
170void writesl(void __iomem *addr, void *data, int len)
171{
172 void __iomem *a = __isamem_convert_addr(addr);
173
174 BUG_ON((unsigned long)addr & 3);
175
176 __raw_writesl(a, data, len);
177}
178EXPORT_SYMBOL(writesl);
179
140#define SUPERIO_PORT(p) \ 180#define SUPERIO_PORT(p) \
141 (((p) >> 3) == (0x3f8 >> 3) || \ 181 (((p) >> 3) == (0x3f8 >> 3) || \
142 ((p) >> 3) == (0x2f8 >> 3) || \ 182 ((p) >> 3) == (0x2f8 >> 3) || \
diff --git a/include/asm-arm/arch-ebsa110/io.h b/include/asm-arm/arch-ebsa110/io.h
index 722c5e086285..44a4001de807 100644
--- a/include/asm-arm/arch-ebsa110/io.h
+++ b/include/asm-arm/arch-ebsa110/io.h
@@ -81,4 +81,12 @@ extern void outsb(unsigned int port, const void *buf, int sz);
81extern void outsw(unsigned int port, const void *buf, int sz); 81extern void outsw(unsigned int port, const void *buf, int sz);
82extern void outsl(unsigned int port, const void *buf, int sz); 82extern void outsl(unsigned int port, const void *buf, int sz);
83 83
84/* can't support writesb atm */
85extern void writesw(void __iomem *addr, const void *data, int wordlen);
86extern void writesl(void __iomem *addr, const void *data, int longlen);
87
88/* can't support readsb atm */
89extern void readsw(const void __iomem *addr, void *data, int wordlen);
90extern void readsl(const void __iomem *addr, void *data, int longlen);
91
84#endif 92#endif