patch-2_6_7-vs1_9_1_12
[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                 .name           = "PDC20268",
57                 .init_setup     = init_setup_pdcnew,
58                 .init_chipset   = init_chipset_pdcnew,
59                 .init_hwif      = init_hwif_pdc202new,
60                 .channels       = 2,
61                 .autodma        = AUTODMA,
62                 .bootable       = OFF_BOARD,
63         },{     /* 1 */
64                 .name           = "PDC20269",
65                 .init_setup     = init_setup_pdcnew,
66                 .init_chipset   = init_chipset_pdcnew,
67                 .init_hwif      = init_hwif_pdc202new,
68                 .channels       = 2,
69                 .autodma        = AUTODMA,
70                 .bootable       = OFF_BOARD,
71         },{     /* 2 */
72                 .name           = "PDC20270",
73                 .init_setup     = init_setup_pdc20270,
74                 .init_chipset   = init_chipset_pdcnew,
75                 .init_hwif      = init_hwif_pdc202new,
76                 .channels       = 2,
77                 .autodma        = AUTODMA,
78 #ifndef CONFIG_PDC202XX_FORCE
79                 .enablebits     = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
80 #endif
81                 .bootable       = OFF_BOARD,
82         },{     /* 3 */
83                 .name           = "PDC20271",
84                 .init_setup     = init_setup_pdcnew,
85                 .init_chipset   = init_chipset_pdcnew,
86                 .init_hwif      = init_hwif_pdc202new,
87                 .channels       = 2,
88                 .autodma        = AUTODMA,
89                 .bootable       = OFF_BOARD,
90         },{     /* 4 */
91                 .name           = "PDC20275",
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         },{     /* 5 */
99                 .name           = "PDC20276",
100                 .init_setup     = init_setup_pdc20276,
101                 .init_chipset   = init_chipset_pdcnew,
102                 .init_hwif      = init_hwif_pdc202new,
103                 .channels       = 2,
104                 .autodma        = AUTODMA,
105 #ifndef CONFIG_PDC202XX_FORCE
106                 .enablebits     = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
107 #endif
108                 .bootable       = OFF_BOARD,
109         },{     /* 6 */
110                 .name           = "PDC20277",
111                 .init_setup     = init_setup_pdcnew,
112                 .init_chipset   = init_chipset_pdcnew,
113                 .init_hwif      = init_hwif_pdc202new,
114                 .channels       = 2,
115                 .autodma        = AUTODMA,
116                 .bootable       = OFF_BOARD,
117         }
118 };
119
120 #endif /* PDC202XX_H */