1/*
2 * linux/include/asm-arm/arch-cl7500/ide.h
3 *
4 * Copyright (c) 1997 Russell King
5 *
6 * Modifications:
7 *  29-07-1998	RMK	Major re-work of IDE architecture specific code
8 */
9#include <asm/irq.h>
10#include <asm/arch/hardware.h>
11
12/*
13 * Set up a hw structure for a specified data port, control port and IRQ.
14 * This should follow whatever the default interface uses.
15 */
16static __inline__ void
17ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq)
18{
19	ide_ioreg_t reg = data_port;
20	int i;
21
22	memset(hw, 0, sizeof(*hw));
23
24	for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
25		hw->io_ports[i] = reg;
26		reg += 1;
27	}
28	if (ctrl_port) {
29		hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
30	} else {
31		hw->io_ports[IDE_CONTROL_OFFSET] = data_port + 0x206;
32	}
33	if (irq != NULL)
34		*irq = 0;
35	hw->io_ports[IDE_IRQ_OFFSET] = 0;
36}
37
38/*
39 * This registers the standard ports for this architecture with the IDE
40 * driver.
41 */
42static __inline__ void
43ide_init_default_hwifs(void)
44{
45	hw_regs_t hw;
46
47	ide_init_hwif_ports(&hw, ISASLOT_IO + 0x1f0, ISASLOT_IO + 0x3f6, NULL);
48   	hw.irq = IRQ_ISA_14;
49	ide_register_hw(&hw, NULL);
50}
51