ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-arm26 / ide.h
1 /*
2  *  linux/include/asm-arm/ide.h
3  *
4  *  Copyright (C) 1994-1996  Linus Torvalds & authors
5  */
6
7 /*
8  *  This file contains the i386 architecture specific IDE code.
9  */
10
11 #ifndef __ASMARM_IDE_H
12 #define __ASMARM_IDE_H
13
14 #ifdef __KERNEL__
15
16 #ifndef MAX_HWIFS
17 #define MAX_HWIFS       4
18 #endif
19
20 #include <asm/irq.h>
21 #include <asm/mach-types.h>
22
23 /* JMA 18.05.03 these will never be needed, but the kernel needs them to compile */
24 #define __ide_mm_insw(port,addr,len)    readsw(port,addr,len)
25 #define __ide_mm_insl(port,addr,len)    readsl(port,addr,len)
26 #define __ide_mm_outsw(port,addr,len)   writesw(port,addr,len)
27 #define __ide_mm_outsl(port,addr,len)   writesl(port,addr,len)
28
29 /*
30  * Set up a hw structure for a specified data port, control port and IRQ.
31  * This should follow whatever the default interface uses.
32  */
33 static inline void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port,
34                                        unsigned long ctrl_port, int *irq)
35 {
36         unsigned long reg = data_port;
37         int i;
38
39         for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
40                 hw->io_ports[i] = reg;
41                 reg += 1;
42         }
43         hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
44         if (irq)
45                 *irq = 0;
46 }
47
48 #define ide_init_default_irq(base)      (0)
49
50 /*
51  * This registers the standard ports for this architecture with the IDE
52  * driver.
53  */
54 static __inline__ void ide_init_default_hwifs(void)
55 {
56         if (machine_is_a5k()) {
57                 hw_regs_t hw;
58
59                 memset(&hw, 0, sizeof(hw));
60
61                 ide_init_hwif_ports(&hw, 0x1f0, 0x3f6, NULL);
62                 hw.irq = IRQ_HARDDISK;
63                 ide_register_hw(&hw,NULL);
64         }
65 }
66
67
68 /*
69  * We always use the new IDE port registering,
70  * so these are fixed here.
71  */
72 #define ide_default_io_base(i)          (0)
73 #define ide_default_irq(b)              (0)
74
75 #endif /* __KERNEL__ */
76
77 #endif /* __ASMARM_IDE_H */