From dd2645220c5b6fa156919163f31b1d7b8c8774ca Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Fri, 2 Nov 2007 14:17:19 +0900 Subject: [PATCH] --- yaml --- r: 73085 b: refs/heads/master c: b5751e2e00cb88b34ac1ebfa9ec4496db4dee098 h: refs/heads/master i: 73083: 9f04310cdb19adfb8af8840d217c14f36af26fb5 v: v3 --- [refs] | 2 +- trunk/arch/sh/boards/renesas/r7780rp/setup.c | 31 ++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index fba2199655fd..60d8540d6b84 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f38c5a696a1e775c70d8764b1b9c1a4e267448d3 +refs/heads/master: b5751e2e00cb88b34ac1ebfa9ec4496db4dee098 diff --git a/trunk/arch/sh/boards/renesas/r7780rp/setup.c b/trunk/arch/sh/boards/renesas/r7780rp/setup.c index 2a9ac6bcd8d6..0fdc0bc19145 100644 --- a/trunk/arch/sh/boards/renesas/r7780rp/setup.c +++ b/trunk/arch/sh/boards/renesas/r7780rp/setup.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -223,6 +224,34 @@ static void r7780rp_power_off(void) ctrl_outw(0x0001, PA_POFF); } +static inline unsigned char is_ide_ioaddr(unsigned long addr) +{ + return ((cf_ide_resources[0].start <= addr && + addr <= cf_ide_resources[0].end) || + (cf_ide_resources[1].start <= addr && + addr <= cf_ide_resources[1].end)); +} + +void highlander_writeb(u8 b, void __iomem *addr) +{ + unsigned long tmp = (unsigned long __force)addr; + + if (is_ide_ioaddr(tmp)) + ctrl_outw((u16)b, tmp); + else + ctrl_outb(b, tmp); +} + +u8 highlander_readb(void __iomem *addr) +{ + unsigned long tmp = (unsigned long __force)addr; + + if (is_ide_ioaddr(tmp)) + return ctrl_inw(tmp) & 0xff; + else + return ctrl_inb(tmp); +} + /* * Initialize the board */ @@ -307,4 +336,6 @@ static struct sh_machine_vector mv_highlander __initmv = { .mv_setup = highlander_setup, .mv_init_irq = highlander_init_irq, .mv_irq_demux = highlander_irq_demux, + .mv_readb = highlander_readb, + .mv_writeb = highlander_writeb, };