diff options
| -rw-r--r-- | arch/arm/mach-ebsa110/io.c | 40 | ||||
| -rw-r--r-- | include/asm-arm/arch-ebsa110/io.h | 8 |
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); | |||
| 102 | EXPORT_SYMBOL(__readw); | 102 | EXPORT_SYMBOL(__readw); |
| 103 | EXPORT_SYMBOL(__readl); | 103 | EXPORT_SYMBOL(__readl); |
| 104 | 104 | ||
| 105 | void 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 | } | ||
| 113 | EXPORT_SYMBOL(readsw); | ||
| 114 | |||
| 115 | void 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 | } | ||
| 123 | EXPORT_SYMBOL(readsl); | ||
| 124 | |||
| 105 | void __writeb(u8 val, void __iomem *addr) | 125 | void __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); | |||
| 137 | EXPORT_SYMBOL(__writew); | 157 | EXPORT_SYMBOL(__writew); |
| 138 | EXPORT_SYMBOL(__writel); | 158 | EXPORT_SYMBOL(__writel); |
| 139 | 159 | ||
| 160 | void 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 | } | ||
| 168 | EXPORT_SYMBOL(writesw); | ||
| 169 | |||
| 170 | void 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 | } | ||
| 178 | EXPORT_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); | |||
| 81 | extern void outsw(unsigned int port, const void *buf, int sz); | 81 | extern void outsw(unsigned int port, const void *buf, int sz); |
| 82 | extern void outsl(unsigned int port, const void *buf, int sz); | 82 | extern void outsl(unsigned int port, const void *buf, int sz); |
| 83 | 83 | ||
| 84 | /* can't support writesb atm */ | ||
| 85 | extern void writesw(void __iomem *addr, const void *data, int wordlen); | ||
| 86 | extern void writesl(void __iomem *addr, const void *data, int longlen); | ||
| 87 | |||
| 88 | /* can't support readsb atm */ | ||
| 89 | extern void readsw(const void __iomem *addr, void *data, int wordlen); | ||
| 90 | extern void readsl(const void __iomem *addr, void *data, int longlen); | ||
| 91 | |||
| 84 | #endif | 92 | #endif |
