This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / ide / pci / pdc202xx_new.h
1 #ifndef PDC202XX_H
2 #define PDC202XX_H
3
4 #include <linux/config.h>
5 #include <linux/pci.h>
6 #include <linux/ide.h>
7
8 const static char *pdc_quirk_drives[] = {
9         "QUANTUM FIREBALLlct08 08",
10         "QUANTUM FIREBALLP KA6.4",
11         "QUANTUM FIREBALLP KA9.1",
12         "QUANTUM FIREBALLP LM20.4",
13         "QUANTUM FIREBALLP KX13.6",
14         "QUANTUM FIREBALLP KX20.5",
15         "QUANTUM FIREBALLP KX27.3",
16         "QUANTUM FIREBALLP LM20.5",
17         NULL
18 };
19
20 #define set_2regs(a, b)                                 \
21         do {                                            \
22                 hwif->OUTB((a + adj), indexreg);        \
23                 hwif->OUTB(b, datareg);                 \
24         } while(0)
25
26 #define set_ultra(a, b, c)                              \
27         do {                                            \
28                 set_2regs(0x10,(a));                    \
29                 set_2regs(0x11,(b));                    \
30                 set_2regs(0x12,(c));                    \
31         } while(0)
32
33 #define set_ata2(a, b)                                  \
34         do {                                            \
35                 set_2regs(0x0e,(a));                    \
36                 set_2regs(0x0f,(b));                    \
37         } while(0)
38
39 #define set_pio(a, b, c)                                \
40         do {                                            \
41                 set_2regs(0x0c,(a));                    \
42                 set_2regs(0x0d,(b));                    \
43                 set_2regs(0x13,(c));                    \
44         } while(0)
45
46 #define DISPLAY_PDC202XX_TIMINGS
47
48 static void init_setup_pdcnew(struct pci_dev *, ide_pci_device_t *);
49 static void init_setup_pdc20270(struct pci_dev *, ide_pci_device_t *);
50 static void init_setup_pdc20276(struct pci_dev *dev, ide_pci_device_t *d);
51 static unsigned int init_chipset_pdcnew(struct pci_dev *, const char *);
52 static void init_hwif_pdc202new(ide_hwif_t *);
53
54 static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
55         {       /* 0 */
56                 .vendor         = PCI_VENDOR_ID_PROMISE,
57                 .device         = PCI_DEVICE_ID_PROMISE_20268,
58                 .name           = "PDC20268",
59                 .init_setup     = init_setup_pdcnew,
60                 .init_chipset   = init_chipset_pdcnew,
61                 .init_hwif      = init_hwif_pdc202new,
62                 .channels       = 2,
63                 .autodma        = AUTODMA,
64                 .bootable       = OFF_BOARD,
65         },{     /* 1 */
66                 .vendor         = PCI_VENDOR_ID_PROMISE,
67                 .device         = PCI_DEVICE_ID_PROMISE_20269,
68                 .name           = "PDC20269",
69                 .init_setup     = init_setup_pdcnew,
70                 .init_chipset   = init_chipset_pdcnew,
71                 .init_hwif      = init_hwif_pdc202new,
72                 .channels       = 2,
73                 .autodma        = AUTODMA,
74                 .bootable       = OFF_BOARD,
75         },{     /* 2 */
76                 .vendor         = PCI_VENDOR_ID_PROMISE,
77                 .device         = PCI_DEVICE_ID_PROMISE_20270,
78                 .name           = "PDC20270",
79                 .init_setup     = init_setup_pdc20270,
80                 .init_chipset   = init_chipset_pdcnew,
81                 .init_hwif      = init_hwif_pdc202new,
82                 .channels       = 2,
83                 .autodma        = AUTODMA,
84 #ifndef CONFIG_PDC202XX_FORCE
85                 .enablebits     = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
86 #endif
87                 .bootable       = OFF_BOARD,
88         },{     /* 3 */
89                 .vendor         = PCI_VENDOR_ID_PROMISE,
90                 .device         = PCI_DEVICE_ID_PROMISE_20271,
91                 .name           = "PDC20271",
92                 .init_setup     = init_setup_pdcnew,
93                 .init_chipset   = init_chipset_pdcnew,
94                 .init_hwif      = init_hwif_pdc202new,
95                 .channels       = 2,
96                 .autodma        = AUTODMA,
97                 .bootable       = OFF_BOARD,
98         },{     /* 4 */
99                 .vendor         = PCI_VENDOR_ID_PROMISE,
100                 .device         = PCI_DEVICE_ID_PROMISE_20275,
101                 .name           = "PDC20275",
102                 .init_setup     = init_setup_pdcnew,
103                 .init_chipset   = init_chipset_pdcnew,
104                 .init_hwif      = init_hwif_pdc202new,
105                 .channels       = 2,
106                 .autodma        = AUTODMA,
107                 .bootable       = OFF_BOARD,
108         },{     /* 5 */
109                 .vendor         = PCI_VENDOR_ID_PROMISE,
110                 .device         = PCI_DEVICE_ID_PROMISE_20276,
111                 .name           = "PDC20276",
112                 .init_setup     = init_setup_pdc20276,
113                 .init_chipset   = init_chipset_pdcnew,
114                 .init_hwif      = init_hwif_pdc202new,
115                 .channels       = 2,
116                 .autodma        = AUTODMA,
117 #ifndef CONFIG_PDC202XX_FORCE
118                 .enablebits     = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
119 #endif
120                 .bootable       = OFF_BOARD,
121         },{     /* 6 */
122                 .vendor         = PCI_VENDOR_ID_PROMISE,
123                 .device         = PCI_DEVICE_ID_PROMISE_20277,
124                 .name           = "PDC20277",
125                 .init_setup     = init_setup_pdcnew,
126                 .init_chipset   = init_chipset_pdcnew,
127                 .init_hwif      = init_hwif_pdc202new,
128                 .channels       = 2,
129                 .autodma        = AUTODMA,
130                 .bootable       = OFF_BOARD,
131         }
132 };
133
134 #endif /* PDC202XX_H */