diff options
author | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 02:41:24 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 02:41:24 -0400 |
commit | 373e68b5472d421cbd2703e7a77caf053f78c005 (patch) | |
tree | 6fed51fdf1b89f80a1ec9ea4aab285c1af649945 /arch/sh/boards/se/770x | |
parent | f647d33f879d258de4ab2559975bd6eebda2033e (diff) |
sh: Board updates for I/O routine rework.
This updates the various boards for some of the recent I/O routine
updates.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards/se/770x')
-rw-r--r-- | arch/sh/boards/se/770x/io.c | 52 | ||||
-rw-r--r-- | arch/sh/boards/se/770x/irq.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/se/770x/led.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/se/770x/mach.c | 7 | ||||
-rw-r--r-- | arch/sh/boards/se/770x/setup.c | 2 |
5 files changed, 12 insertions, 53 deletions
diff --git a/arch/sh/boards/se/770x/io.c b/arch/sh/boards/se/770x/io.c index 9a39ee96314..5102201c97a 100644 --- a/arch/sh/boards/se/770x/io.c +++ b/arch/sh/boards/se/770x/io.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $Id: io.c,v 1.5 2004/02/22 23:08:43 kkojima Exp $ | 1 | /* $Id: io.c,v 1.6 2006/01/04 17:53:54 lethal Exp $ |
2 | * | 2 | * |
3 | * linux/arch/sh/kernel/io_se.c | 3 | * linux/arch/sh/kernel/io_se.c |
4 | * | 4 | * |
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
13 | #include <asm/io.h> | 13 | #include <asm/io.h> |
14 | #include <asm/se/se.h> | 14 | #include <asm/se.h> |
15 | 15 | ||
16 | /* SH pcmcia io window base, start and end. */ | 16 | /* SH pcmcia io window base, start and end. */ |
17 | int sh_pcic_io_wbase = 0xb8400000; | 17 | int sh_pcic_io_wbase = 0xb8400000; |
@@ -52,10 +52,6 @@ shifted_port(unsigned long port) | |||
52 | return 1; | 52 | return 1; |
53 | } | 53 | } |
54 | 54 | ||
55 | #define maybebadio(name,port) \ | ||
56 | printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \ | ||
57 | #name, (port), (__u32) __builtin_return_address(0)) | ||
58 | |||
59 | unsigned char se_inb(unsigned long port) | 55 | unsigned char se_inb(unsigned long port) |
60 | { | 56 | { |
61 | if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop) | 57 | if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop) |
@@ -86,13 +82,13 @@ unsigned short se_inw(unsigned long port) | |||
86 | (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)) | 82 | (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)) |
87 | return *port2adr(port); | 83 | return *port2adr(port); |
88 | else | 84 | else |
89 | maybebadio(inw, port); | 85 | maybebadio(port); |
90 | return 0; | 86 | return 0; |
91 | } | 87 | } |
92 | 88 | ||
93 | unsigned int se_inl(unsigned long port) | 89 | unsigned int se_inl(unsigned long port) |
94 | { | 90 | { |
95 | maybebadio(inl, port); | 91 | maybebadio(port); |
96 | return 0; | 92 | return 0; |
97 | } | 93 | } |
98 | 94 | ||
@@ -123,12 +119,12 @@ void se_outw(unsigned short value, unsigned long port) | |||
123 | (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)) | 119 | (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)) |
124 | *port2adr(port) = value; | 120 | *port2adr(port) = value; |
125 | else | 121 | else |
126 | maybebadio(outw, port); | 122 | maybebadio(port); |
127 | } | 123 | } |
128 | 124 | ||
129 | void se_outl(unsigned int value, unsigned long port) | 125 | void se_outl(unsigned int value, unsigned long port) |
130 | { | 126 | { |
131 | maybebadio(outl, port); | 127 | maybebadio(port); |
132 | } | 128 | } |
133 | 129 | ||
134 | void se_insb(unsigned long port, void *addr, unsigned long count) | 130 | void se_insb(unsigned long port, void *addr, unsigned long count) |
@@ -159,7 +155,7 @@ void se_insw(unsigned long port, void *addr, unsigned long count) | |||
159 | 155 | ||
160 | void se_insl(unsigned long port, void *addr, unsigned long count) | 156 | void se_insl(unsigned long port, void *addr, unsigned long count) |
161 | { | 157 | { |
162 | maybebadio(insl, port); | 158 | maybebadio(port); |
163 | } | 159 | } |
164 | 160 | ||
165 | void se_outsb(unsigned long port, const void *addr, unsigned long count) | 161 | void se_outsb(unsigned long port, const void *addr, unsigned long count) |
@@ -190,37 +186,5 @@ void se_outsw(unsigned long port, const void *addr, unsigned long count) | |||
190 | 186 | ||
191 | void se_outsl(unsigned long port, const void *addr, unsigned long count) | 187 | void se_outsl(unsigned long port, const void *addr, unsigned long count) |
192 | { | 188 | { |
193 | maybebadio(outsw, port); | 189 | maybebadio(port); |
194 | } | ||
195 | |||
196 | /* Map ISA bus address to the real address. Only for PCMCIA. */ | ||
197 | |||
198 | /* ISA page descriptor. */ | ||
199 | static __u32 sh_isa_memmap[256]; | ||
200 | |||
201 | static int | ||
202 | sh_isa_mmap(__u32 start, __u32 length, __u32 offset) | ||
203 | { | ||
204 | int idx; | ||
205 | |||
206 | if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000)) | ||
207 | return -1; | ||
208 | |||
209 | idx = start >> 12; | ||
210 | sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff); | ||
211 | #if 0 | ||
212 | printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n", | ||
213 | start, length, offset, idx, sh_isa_memmap[idx]); | ||
214 | #endif | ||
215 | return 0; | ||
216 | } | ||
217 | |||
218 | unsigned long | ||
219 | se_isa_port2addr(unsigned long offset) | ||
220 | { | ||
221 | int idx; | ||
222 | |||
223 | idx = (offset >> 12) & 0xff; | ||
224 | offset &= 0xfff; | ||
225 | return sh_isa_memmap[idx] + offset; | ||
226 | } | 190 | } |
diff --git a/arch/sh/boards/se/770x/irq.c b/arch/sh/boards/se/770x/irq.c index 3e558716ce1..cff6700bbaf 100644 --- a/arch/sh/boards/se/770x/irq.c +++ b/arch/sh/boards/se/770x/irq.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
12 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
13 | #include <asm/io.h> | 13 | #include <asm/io.h> |
14 | #include <asm/se/se.h> | 14 | #include <asm/se.h> |
15 | 15 | ||
16 | /* | 16 | /* |
17 | * Initialize IRQ setting | 17 | * Initialize IRQ setting |
diff --git a/arch/sh/boards/se/770x/led.c b/arch/sh/boards/se/770x/led.c index 73e9848387e..daf7b1ee786 100644 --- a/arch/sh/boards/se/770x/led.c +++ b/arch/sh/boards/se/770x/led.c | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
13 | #include <asm/se/se.h> | 13 | #include <asm/se.h> |
14 | 14 | ||
15 | /* Cycle the LED's in the clasic Knightrider/Sun pattern */ | 15 | /* Cycle the LED's in the clasic Knightrider/Sun pattern */ |
16 | void heartbeat_se(void) | 16 | void heartbeat_se(void) |
diff --git a/arch/sh/boards/se/770x/mach.c b/arch/sh/boards/se/770x/mach.c index 6ec07bd3dcf..e8968b71c35 100644 --- a/arch/sh/boards/se/770x/mach.c +++ b/arch/sh/boards/se/770x/mach.c | |||
@@ -13,12 +13,9 @@ | |||
13 | 13 | ||
14 | #include <asm/machvec.h> | 14 | #include <asm/machvec.h> |
15 | #include <asm/rtc.h> | 15 | #include <asm/rtc.h> |
16 | #include <asm/machvec_init.h> | 16 | #include <asm/se.h> |
17 | |||
18 | #include <asm/se/io.h> | ||
19 | 17 | ||
20 | void heartbeat_se(void); | 18 | void heartbeat_se(void); |
21 | void setup_se(void); | ||
22 | void init_se_IRQ(void); | 19 | void init_se_IRQ(void); |
23 | 20 | ||
24 | /* | 21 | /* |
@@ -57,8 +54,6 @@ struct sh_machine_vector mv_se __initmv = { | |||
57 | .mv_outsw = se_outsw, | 54 | .mv_outsw = se_outsw, |
58 | .mv_outsl = se_outsl, | 55 | .mv_outsl = se_outsl, |
59 | 56 | ||
60 | .mv_isa_port2addr = se_isa_port2addr, | ||
61 | |||
62 | .mv_init_irq = init_se_IRQ, | 57 | .mv_init_irq = init_se_IRQ, |
63 | #ifdef CONFIG_HEARTBEAT | 58 | #ifdef CONFIG_HEARTBEAT |
64 | .mv_heartbeat = heartbeat_se, | 59 | .mv_heartbeat = heartbeat_se, |
diff --git a/arch/sh/boards/se/770x/setup.c b/arch/sh/boards/se/770x/setup.c index b6730ea5750..c9f75272e75 100644 --- a/arch/sh/boards/se/770x/setup.c +++ b/arch/sh/boards/se/770x/setup.c | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <linux/hdreg.h> | 14 | #include <linux/hdreg.h> |
15 | #include <linux/ide.h> | 15 | #include <linux/ide.h> |
16 | #include <asm/io.h> | 16 | #include <asm/io.h> |
17 | #include <asm/se/se.h> | 17 | #include <asm/se.h> |
18 | #include <asm/smc37c93x.h> | 18 | #include <asm/smc37c93x.h> |
19 | 19 | ||
20 | /* | 20 | /* |