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 |