diff options
-rw-r--r-- | arch/sh/boards/renesas/r7780rp/setup.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/sh/boards/renesas/r7780rp/setup.c b/arch/sh/boards/renesas/r7780rp/setup.c index 2a9ac6bcd8d6..0fdc0bc19145 100644 --- a/arch/sh/boards/renesas/r7780rp/setup.c +++ b/arch/sh/boards/renesas/r7780rp/setup.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/pata_platform.h> | 18 | #include <linux/pata_platform.h> |
19 | #include <linux/types.h> | ||
19 | #include <net/ax88796.h> | 20 | #include <net/ax88796.h> |
20 | #include <asm/machvec.h> | 21 | #include <asm/machvec.h> |
21 | #include <asm/r7780rp.h> | 22 | #include <asm/r7780rp.h> |
@@ -223,6 +224,34 @@ static void r7780rp_power_off(void) | |||
223 | ctrl_outw(0x0001, PA_POFF); | 224 | ctrl_outw(0x0001, PA_POFF); |
224 | } | 225 | } |
225 | 226 | ||
227 | static inline unsigned char is_ide_ioaddr(unsigned long addr) | ||
228 | { | ||
229 | return ((cf_ide_resources[0].start <= addr && | ||
230 | addr <= cf_ide_resources[0].end) || | ||
231 | (cf_ide_resources[1].start <= addr && | ||
232 | addr <= cf_ide_resources[1].end)); | ||
233 | } | ||
234 | |||
235 | void highlander_writeb(u8 b, void __iomem *addr) | ||
236 | { | ||
237 | unsigned long tmp = (unsigned long __force)addr; | ||
238 | |||
239 | if (is_ide_ioaddr(tmp)) | ||
240 | ctrl_outw((u16)b, tmp); | ||
241 | else | ||
242 | ctrl_outb(b, tmp); | ||
243 | } | ||
244 | |||
245 | u8 highlander_readb(void __iomem *addr) | ||
246 | { | ||
247 | unsigned long tmp = (unsigned long __force)addr; | ||
248 | |||
249 | if (is_ide_ioaddr(tmp)) | ||
250 | return ctrl_inw(tmp) & 0xff; | ||
251 | else | ||
252 | return ctrl_inb(tmp); | ||
253 | } | ||
254 | |||
226 | /* | 255 | /* |
227 | * Initialize the board | 256 | * Initialize the board |
228 | */ | 257 | */ |
@@ -307,4 +336,6 @@ static struct sh_machine_vector mv_highlander __initmv = { | |||
307 | .mv_setup = highlander_setup, | 336 | .mv_setup = highlander_setup, |
308 | .mv_init_irq = highlander_init_irq, | 337 | .mv_init_irq = highlander_init_irq, |
309 | .mv_irq_demux = highlander_irq_demux, | 338 | .mv_irq_demux = highlander_irq_demux, |
339 | .mv_readb = highlander_readb, | ||
340 | .mv_writeb = highlander_writeb, | ||
310 | }; | 341 | }; |