diff options
author | Finn Thain <fthain@telegraphics.com.au> | 2014-11-12 20:21:28 -0500 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-11-20 03:11:15 -0500 |
commit | 0d31f8759109cbc1e6fc196d08e6b0e8a9e93b3f (patch) | |
tree | 0242252808935d73935d5132275f3920936ca394 /arch/m68k | |
parent | 4e705205252ffc6979b938ab10facf765692f5cf (diff) |
sun3_scsi: Convert to platform device
Convert sun3_scsi to platform device and eliminate scsi_register().
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/sun3/config.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c index f59ec58083f8..a8b942bf7163 100644 --- a/arch/m68k/sun3/config.c +++ b/arch/m68k/sun3/config.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/console.h> | 16 | #include <linux/console.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/bootmem.h> | 18 | #include <linux/bootmem.h> |
19 | #include <linux/platform_device.h> | ||
19 | 20 | ||
20 | #include <asm/oplib.h> | 21 | #include <asm/oplib.h> |
21 | #include <asm/setup.h> | 22 | #include <asm/setup.h> |
@@ -27,6 +28,7 @@ | |||
27 | #include <asm/sun3mmu.h> | 28 | #include <asm/sun3mmu.h> |
28 | #include <asm/rtc.h> | 29 | #include <asm/rtc.h> |
29 | #include <asm/machdep.h> | 30 | #include <asm/machdep.h> |
31 | #include <asm/machines.h> | ||
30 | #include <asm/idprom.h> | 32 | #include <asm/idprom.h> |
31 | #include <asm/intersil.h> | 33 | #include <asm/intersil.h> |
32 | #include <asm/irq.h> | 34 | #include <asm/irq.h> |
@@ -169,3 +171,61 @@ static void __init sun3_sched_init(irq_handler_t timer_routine) | |||
169 | intersil_clear(); | 171 | intersil_clear(); |
170 | } | 172 | } |
171 | 173 | ||
174 | #ifdef CONFIG_SUN3_SCSI | ||
175 | |||
176 | static const struct resource sun3_scsi_vme_rsrc[] __initconst = { | ||
177 | { | ||
178 | .flags = IORESOURCE_IRQ, | ||
179 | .start = SUN3_VEC_VMESCSI0, | ||
180 | .end = SUN3_VEC_VMESCSI0, | ||
181 | }, { | ||
182 | .flags = IORESOURCE_MEM, | ||
183 | .start = 0xff200000, | ||
184 | .end = 0xff200021, | ||
185 | }, { | ||
186 | .flags = IORESOURCE_IRQ, | ||
187 | .start = SUN3_VEC_VMESCSI1, | ||
188 | .end = SUN3_VEC_VMESCSI1, | ||
189 | }, { | ||
190 | .flags = IORESOURCE_MEM, | ||
191 | .start = 0xff204000, | ||
192 | .end = 0xff204021, | ||
193 | }, | ||
194 | }; | ||
195 | |||
196 | /* | ||
197 | * Int: level 2 autovector | ||
198 | * IO: type 1, base 0x00140000, 5 bits phys space: A<4..0> | ||
199 | */ | ||
200 | static const struct resource sun3_scsi_rsrc[] __initconst = { | ||
201 | { | ||
202 | .flags = IORESOURCE_IRQ, | ||
203 | .start = 2, | ||
204 | .end = 2, | ||
205 | }, { | ||
206 | .flags = IORESOURCE_MEM, | ||
207 | .start = 0x00140000, | ||
208 | .end = 0x0014001f, | ||
209 | }, | ||
210 | }; | ||
211 | |||
212 | int __init sun3_platform_init(void) | ||
213 | { | ||
214 | switch (idprom->id_machtype) { | ||
215 | case SM_SUN3 | SM_3_160: | ||
216 | case SM_SUN3 | SM_3_260: | ||
217 | platform_device_register_simple("sun3_scsi_vme", -1, | ||
218 | sun3_scsi_vme_rsrc, ARRAY_SIZE(sun3_scsi_vme_rsrc)); | ||
219 | break; | ||
220 | case SM_SUN3 | SM_3_50: | ||
221 | case SM_SUN3 | SM_3_60: | ||
222 | platform_device_register_simple("sun3_scsi", -1, | ||
223 | sun3_scsi_rsrc, ARRAY_SIZE(sun3_scsi_rsrc)); | ||
224 | break; | ||
225 | } | ||
226 | return 0; | ||
227 | } | ||
228 | |||
229 | arch_initcall(sun3_platform_init); | ||
230 | |||
231 | #endif | ||