ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / ide / pci / piix.h
1 #ifndef PIIX_H
2 #define PIIX_H
3
4 #include <linux/config.h>
5 #include <linux/pci.h>
6 #include <linux/ide.h>
7
8 #define PIIX_DEBUG_DRIVE_INFO           0
9
10 #define DISPLAY_PIIX_TIMINGS
11
12 static void init_setup_piix(struct pci_dev *, ide_pci_device_t *);
13 static unsigned int __devinit init_chipset_piix(struct pci_dev *, const char *);
14 static void init_hwif_piix(ide_hwif_t *);
15
16 #define DECLARE_PIIX_DEV(pci_id, name_str) \
17         {                                               \
18                 .vendor         = PCI_VENDOR_ID_INTEL,  \
19                 .device         = pci_id,               \
20                 .name           = name_str,             \
21                 .init_setup     = init_setup_piix,      \
22                 .init_chipset   = init_chipset_piix,    \
23                 .init_iops      = NULL,                 \
24                 .init_hwif      = init_hwif_piix,       \
25                 .channels       = 2,                    \
26                 .autodma        = AUTODMA,              \
27                 .enablebits     = {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, \
28                 .bootable       = ON_BOARD,             \
29                 .extra          = 0,                    \
30         }
31
32 /*
33  *      Table of the various PIIX capability blocks
34  *
35  */
36  
37 static ide_pci_device_t piix_pci_info[] __devinitdata = {
38         /* 0  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82371FB_0,  "PIIXa"),
39         /* 1  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82371FB_1,  "PIIXb"),
40
41         {       /* 2 */
42                 .vendor         = PCI_VENDOR_ID_INTEL,
43                 .device         = PCI_DEVICE_ID_INTEL_82371MX,
44                 .name           = "MPIIX",
45                 .init_setup     = init_setup_piix,
46                 .init_chipset   = NULL,
47                 .init_iops      = NULL,
48                 .init_hwif      = init_hwif_piix,
49                 .channels       = 2,
50                 .autodma        = NODMA,
51                 .enablebits     = {{0x6D,0x80,0x80}, {0x6F,0x80,0x80}},
52                 .bootable       = ON_BOARD,
53                 .extra          = 0,
54         },
55
56         /* 3  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82371SB_1,  "PIIX3"),
57         /* 4  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82371AB,    "PIIX4"),
58         /* 5  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801AB_1,  "ICH0"),
59         /* 6  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82443MX_1,  "PIIX4"),
60         /* 7  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801AA_1,  "ICH"),
61         /* 8  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82372FB_1,  "PIIX4"),
62         /* 9  */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82451NX,    "PIIX4"),
63         /* 10 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801BA_9,  "ICH2"),
64         /* 11 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801BA_8,  "ICH2M"),
65         /* 12 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801CA_10, "ICH3M"),
66         /* 13 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801CA_11, "ICH3"),
67         /* 14 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801DB_11, "ICH4"),
68         /* 15 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801EB_11, "ICH5"),
69         /* 16 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801E_11,  "C-ICH"),
70         /* 17 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801DB_10, "ICH4"),
71         /* 18 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_82801EB_1,  "ICH5-SATA"),
72         /* 19 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_ESB_2,      "ICH5"),
73         /* 20 */ DECLARE_PIIX_DEV(PCI_DEVICE_ID_INTEL_ICH6_2,     "ICH6"),
74         {
75                 .vendor         = 0,
76                 .device         = 0,
77                 .channels       = 0,
78                 .init_setup     = NULL,
79                 .bootable       = EOL,
80         }
81 };
82
83 #endif /* PIIX_H */