2 * linux/include/asm-sh/ide.h
4 * Copyright (C) 1994-1996 Linus Torvalds & authors
8 * This file contains the i386 architecture specific IDE code.
9 * In future, SuperH code.
12 #ifndef __ASM_SH_IDE_H
13 #define __ASM_SH_IDE_H
17 #include <linux/config.h>
18 #include <asm/machvec.h>
21 /* Should never have less than 2, ide-pci.c(ide_match_hwif) requires it */
25 static __inline__
int ide_default_irq_hp600(ide_ioreg_t base
)
28 case 0x01f0: return 93;
29 case 0x0170: return 94;
35 static __inline__
int ide_default_irq(ide_ioreg_t base
)
38 return ide_default_irq_hp600(base
);
41 case 0x01f0: return 14;
42 case 0x0170: return 15;
48 static __inline__ ide_ioreg_t
ide_default_io_base_hp600(int index
)
60 static __inline__ ide_ioreg_t
ide_default_io_base(int index
)
63 return ide_default_io_base_hp600(index
);
75 static __inline__
void ide_init_hwif_ports(hw_regs_t
*hw
, ide_ioreg_t data_port
, ide_ioreg_t ctrl_port
, int *irq
)
77 ide_ioreg_t reg
= data_port
;
80 for (i
= IDE_DATA_OFFSET
; i
<= IDE_STATUS_OFFSET
; i
++) {
81 hw
->io_ports
[i
] = reg
;
85 hw
->io_ports
[IDE_CONTROL_OFFSET
] = ctrl_port
;
87 hw
->io_ports
[IDE_CONTROL_OFFSET
] = hw
->io_ports
[IDE_DATA_OFFSET
] + 0x206;
91 hw
->io_ports
[IDE_IRQ_OFFSET
] = 0;
94 static __inline__
void ide_init_default_hwifs(void)
100 for(index
= 0; index
< MAX_HWIFS
; index
++) {
101 memset(&hw
, 0, sizeof hw
);
102 ide_init_hwif_ports(&hw
, ide_default_io_base(index
), 0, NULL
);
103 hw
.irq
= ide_default_irq(ide_default_io_base(index
));
104 ide_register_hw(&hw
, NULL
);
106 #endif /* CONFIG_PCI */
109 #include <asm-generic/ide_iops.h>
111 #endif /* __KERNEL__ */
113 #endif /* __ASM_SH_IDE_H */