| /* |
| * linux/arch/sh/board/adx/setup.c |
| * |
| * Copyright (C) 2001 A&D Co., Ltd. |
| * |
| * I/O routine and setup routines for A&D ADX Board |
| * |
| * This file is subject to the terms and conditions of the GNU General Public |
| * License. See the file "COPYING" in the main directory of this archive |
| * for more details. |
| * |
| */ |
| |
| #include <asm/machvec.h> |
| #include <linux/module.h> |
| |
| extern void init_adx_IRQ(void); |
| extern void *cf_io_base; |
| |
| const char *get_system_type(void) |
| { |
| return "A&D ADX"; |
| } |
| |
| unsigned long adx_isa_port2addr(unsigned long offset) |
| { |
| /* CompactFlash (IDE) */ |
| if (((offset >= 0x1f0) && (offset <= 0x1f7)) || (offset == 0x3f6)) { |
| return (unsigned long)cf_io_base + offset; |
| } |
| |
| /* eth0 */ |
| if ((offset >= 0x300) && (offset <= 0x30f)) { |
| return 0xa5000000 + offset; /* COMM BOARD (AREA1) */ |
| } |
| |
| return offset + 0xb0000000; /* IOBUS (AREA 4)*/ |
| } |
| |
| /* |
| * The Machine Vector |
| */ |
| |
| struct sh_machine_vector mv_adx __initmv = { |
| .mv_nr_irqs = 48, |
| .mv_isa_port2addr = adx_isa_port2addr, |
| .mv_init_irq = init_adx_IRQ, |
| }; |
| ALIAS_MV(adx) |
| |
| int __init platform_setup(void) |
| { |
| /* Nothing to see here .. */ |
| return 0; |
| } |
| |