[ARM] EBSA110: Add readsw/readsl/writesw/writesl
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 3 Mar 2007 11:51:31 +0000 (11:51 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 21 Apr 2007 19:34:37 +0000 (20:34 +0100)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-ebsa110/io.c
include/asm-arm/arch-ebsa110/io.h

index db38afb..bbf0d33 100644 (file)
@@ -102,6 +102,26 @@ EXPORT_SYMBOL(__readb);
 EXPORT_SYMBOL(__readw);
 EXPORT_SYMBOL(__readl);
 
+void readsw(void __iomem *addr, void *data, int len)
+{
+       void __iomem *a = __isamem_convert_addr(addr);
+
+       BUG_ON((unsigned long)addr & 1);
+
+       __raw_readsw(a, data, len);
+}
+EXPORT_SYMBOL(readsw);
+
+void readsl(void __iomem *addr, void *data, int len)
+{
+       void __iomem *a = __isamem_convert_addr(addr);
+
+       BUG_ON((unsigned long)addr & 3);
+
+       __raw_readsl(a, data, len);
+}
+EXPORT_SYMBOL(readsl);
+
 void __writeb(u8 val, void __iomem *addr)
 {
        void __iomem *a = __isamem_convert_addr(addr);
@@ -137,6 +157,26 @@ EXPORT_SYMBOL(__writeb);
 EXPORT_SYMBOL(__writew);
 EXPORT_SYMBOL(__writel);
 
+void writesw(void __iomem *addr, void *data, int len)
+{
+       void __iomem *a = __isamem_convert_addr(addr);
+
+       BUG_ON((unsigned long)addr & 1);
+
+       __raw_writesw(a, data, len);
+}
+EXPORT_SYMBOL(writesw);
+
+void writesl(void __iomem *addr, void *data, int len)
+{
+       void __iomem *a = __isamem_convert_addr(addr);
+
+       BUG_ON((unsigned long)addr & 3);
+
+       __raw_writesl(a, data, len);
+}
+EXPORT_SYMBOL(writesl);
+
 #define SUPERIO_PORT(p) \
        (((p) >> 3) == (0x3f8 >> 3) || \
         ((p) >> 3) == (0x2f8 >> 3) || \
index 722c5e0..44a4001 100644 (file)
@@ -81,4 +81,12 @@ extern void outsb(unsigned int port, const void *buf, int sz);
 extern void outsw(unsigned int port, const void *buf, int sz);
 extern void outsl(unsigned int port, const void *buf, int sz);
 
+/* can't support writesb atm */
+extern void writesw(void __iomem *addr, const void *data, int wordlen);
+extern void writesl(void __iomem *addr, const void *data, int longlen);
+
+/* can't support readsb atm */
+extern void readsw(const void __iomem *addr, void *data, int wordlen);
+extern void readsl(const void __iomem *addr, void *data, int longlen);
+
 #endif