more changes on original files
[linux-2.4.git] / include / asm-arm / arch-arc / ide.h
1 /*
2  *  linux/include/asm-arm/arch-arc/ide.h
3  *
4  *  Copyright (C) 1997,1998 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  *  IDE definitions for the Acorn Archimedes/A5000
11  *  architecture
12  *
13  *  Modifications:
14  *   04-04-1998 PJB     Merged `arc' and `a5k' versions
15  *   01-07-1998 RMK     Added new ide_ioregspec_t
16  *   29-07-1998 RMK     Major re-work of IDE architecture specific code
17  */
18 #include <asm/irq.h>
19 #include <asm/mach-types.h>
20
21 /*
22  * Set up a hw structure for a specified data port, control port and IRQ.
23  * This should follow whatever the default interface uses.
24  */
25 static __inline__ void
26 ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq)
27 {
28         ide_ioreg_t reg = (ide_ioreg_t) data_port;
29         int i;
30
31         for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
32                 hw->io_ports[i] = reg;
33                 reg += 1;
34         }
35         hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port;
36         if (irq)
37                 *irq = 0;
38 }
39
40 /*
41  * This registers the standard ports for this architecture with the IDE
42  * driver.
43  */
44 static __inline__ void ide_init_default_hwifs(void)
45 {
46         if (machine_is_a5k()) {
47                 hw_regs_t hw;
48
49                 memset(&hw, 0, sizeof(hw));
50
51                 ide_init_hwif_ports(&hw, 0x1f0, 0x3f6, NULL);
52                 hw.irq = IRQ_HARDDISK;
53                 ide_register_hw(&hw, NULL);
54         }
55 }