1 #ifndef IDE_GENERIC_H
2 #define IDE_GENERIC_H
3 
4 #include <linux/config.h>
5 #include <linux/pci.h>
6 #include <linux/ide.h>
7 
8 static unsigned int init_chipset_generic(struct pci_dev *, const char *);
9 static void init_hwif_generic(ide_hwif_t *);
10 static void init_dma_generic(ide_hwif_t *, unsigned long);
11 
12 static ide_pci_device_t generic_chipsets[] __devinitdata = {
13 	{	/* 0 */
14 		.vendor		= PCI_VENDOR_ID_NS,
15 		.device		= PCI_DEVICE_ID_NS_87410,
16 		.name		= "NS87410",
17 		.init_chipset	= init_chipset_generic,
18 		.init_iops	= NULL,
19 		.init_hwif	= init_hwif_generic,
20 		.init_dma	= init_dma_generic,
21 		.channels	= 2,
22 		.autodma	= AUTODMA,
23 		.enablebits	= {{0x43,0x08,0x08}, {0x47,0x08,0x08}},
24 		.bootable	= ON_BOARD,
25 		.extra		= 0,
26         },{	/* 1 */
27 		.vendor		= PCI_VENDOR_ID_PCTECH,
28 		.device		= PCI_DEVICE_ID_PCTECH_SAMURAI_IDE,
29 		.name		= "SAMURAI",
30 		.init_chipset	= init_chipset_generic,
31 		.init_iops	= NULL,
32 		.init_hwif	= init_hwif_generic,
33 		.init_dma	= init_dma_generic,
34 		.channels	= 2,
35 		.autodma	= AUTODMA,
36 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
37 		.bootable	= ON_BOARD,
38 		.extra		= 0,
39 	},{	/* 2 */
40 		.vendor		= PCI_VENDOR_ID_HOLTEK,
41 		.device		= PCI_DEVICE_ID_HOLTEK_6565,
42 		.name		= "HT6565",
43 		.init_chipset	= init_chipset_generic,
44 		.init_iops	= NULL,
45 		.init_hwif	= init_hwif_generic,
46 		.init_dma	= init_dma_generic,
47 		.channels	= 2,
48 		.autodma	= AUTODMA,
49 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
50 		.bootable	= ON_BOARD,
51 		.extra		= 0,
52 	},{	/* 3 */
53 		.vendor		= PCI_VENDOR_ID_UMC,
54 		.device		= PCI_DEVICE_ID_UMC_UM8673F,
55 		.name		= "UM8673F",
56 		.init_chipset	= init_chipset_generic,
57 		.init_iops	= NULL,
58 		.init_hwif	= init_hwif_generic,
59 		.init_dma	= init_dma_generic,
60 		.channels	= 2,
61 		.autodma	= NODMA,
62 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
63 		.bootable	= ON_BOARD,
64 		.extra		= 0,
65 	},{	/* 4 */
66 		.vendor		= PCI_VENDOR_ID_UMC,
67 		.device		= PCI_DEVICE_ID_UMC_UM8886A,
68 		.name		= "UM8886A",
69 		.init_chipset	= init_chipset_generic,
70 		.init_iops	= NULL,
71 		.init_hwif	= init_hwif_generic,
72 		.init_dma	= init_dma_generic,
73 		.channels	= 2,
74 		.autodma	= NODMA,
75 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
76 		.bootable	= ON_BOARD,
77 		.extra		= 0,
78 	},{	/* 5 */
79 		.vendor		= PCI_VENDOR_ID_UMC,
80 		.device		= PCI_DEVICE_ID_UMC_UM8886BF,
81 		.name		= "UM8886BF",
82 		.init_chipset	= init_chipset_generic,
83 		.init_iops	= NULL,
84 		.init_hwif	= init_hwif_generic,
85 		.init_dma	= init_dma_generic,
86 		.channels	= 2,
87 		.autodma	= NODMA,
88 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
89 		.bootable	= ON_BOARD,
90 		.extra		= 0,
91 	},{	/* 6 */
92 		.vendor		= PCI_VENDOR_ID_HINT,
93 		.device		= PCI_DEVICE_ID_HINT_VXPROII_IDE,
94 		.name		= "HINT_IDE",
95 		.init_chipset	= init_chipset_generic,
96 		.init_iops	= NULL,
97 		.init_hwif	= init_hwif_generic,
98 		.init_dma	= init_dma_generic,
99 		.channels	= 2,
100 		.autodma	= AUTODMA,
101 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
102 		.bootable	= ON_BOARD,
103 		.extra		= 0,
104 	},{	/* 7 */
105 		.vendor		= PCI_VENDOR_ID_VIA,
106 		.device		= PCI_DEVICE_ID_VIA_82C561,
107 		.name		= "VIA_IDE",
108 		.init_chipset	= init_chipset_generic,
109 		.init_iops	= NULL,
110 		.init_hwif	= init_hwif_generic,
111 		.init_dma	= init_dma_generic,
112 		.channels	= 2,
113 		.autodma	= NOAUTODMA,
114 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
115 		.bootable	= ON_BOARD,
116 		.extra		= 0,
117 	},{	/* 8 */
118 		.vendor		= PCI_VENDOR_ID_OPTI,
119 		.device		= PCI_DEVICE_ID_OPTI_82C558,
120 		.name		= "OPTI621V",
121 		.init_chipset	= init_chipset_generic,
122 		.init_iops	= NULL,
123 		.init_hwif	= init_hwif_generic,
124 		.init_dma	= init_dma_generic,
125 		.channels	= 2,
126 		.autodma	= NOAUTODMA,
127 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
128 		.bootable	= ON_BOARD,
129 		.extra		= 0,
130 	},{	/* 9 */
131 		.vendor		= PCI_VENDOR_ID_TOSHIBA,
132 		.device		= PCI_DEVICE_ID_TOSHIBA_PICCOLO,
133 		.name		= "Piccolo0102",
134 		.init_chipset	= init_chipset_generic,
135 		.init_hwif	= init_hwif_generic,
136 		.init_dma	= init_dma_generic,
137 		.channels	= 2,
138 		.autodma	= NOAUTODMA,
139 		.bootable	= ON_BOARD,
140 	},{	/* 10 */
141 		.vendor		= PCI_VENDOR_ID_TOSHIBA,
142 		.device		= PCI_DEVICE_ID_TOSHIBA_PICCOLO_1,
143 		.name		= "Piccolo0103",
144 		.init_chipset	= init_chipset_generic,
145 		.init_hwif	= init_hwif_generic,
146 		.init_dma	= init_dma_generic,
147 		.channels	= 2,
148 		.autodma	= NOAUTODMA,
149 		.bootable	= ON_BOARD,
150 	},{	/* 11 */
151 		.vendor		= PCI_VENDOR_ID_TOSHIBA,
152 		.device		= PCI_DEVICE_ID_TOSHIBA_PICCOLO_2,
153 		.name		= "Piccolo0105",
154 		.init_chipset	= init_chipset_generic,
155 		.init_hwif	= init_hwif_generic,
156 		.init_dma	= init_dma_generic,
157 		.channels	= 2,
158 		.autodma	= NOAUTODMA,
159 		.bootable	= ON_BOARD,
160 	},{     /* 12 */
161 		.vendor		= PCI_VENDOR_ID_JMICRON,
162 		.device		= PCI_DEVICE_ID_JMICRON_20363,
163 		.name		= "JMICRON_20363",
164 		.init_chipset	= init_chipset_generic,
165 		.init_hwif	= init_hwif_generic,
166 		.init_dma	= init_dma_generic,
167 		.channels	= 1,
168 		.autodma	= NOAUTODMA,
169 		.bootable	= ON_BOARD,
170 	},{     /* 13 */
171 		.vendor		= PCI_VENDOR_ID_MARVELL,
172 		.device		= PCI_DEVICE_ID_MARVELL_6101,
173 		.name		= "MARVELL_6101",
174 		.init_chipset	= init_chipset_generic,
175 		.init_hwif	= init_hwif_generic,
176 		.init_dma	= init_dma_generic,
177 		.channels	= 1,
178 		.autodma	= NOAUTODMA,
179 		.bootable	= ON_BOARD,
180  	},{     /* 14 */
181  		.vendor		= PCI_VENDOR_ID_JMICRON,
182  		.device		= PCI_DEVICE_ID_JMICRON_JMB368,
183  		.name		= "JMICRON_JMB368",
184  		.init_chipset	= init_chipset_generic,
185  		.init_hwif	= init_hwif_generic,
186  		.init_dma	= init_dma_generic,
187  		.channels	= 1,
188  		.autodma	= NOAUTODMA,
189  		.bootable	= ON_BOARD,
190  	},{     /* 15 */
191  		.vendor		= PCI_VENDOR_ID_MARVELL,
192  		.device		= PCI_DEVICE_ID_MARVELL_6145,
193  		.name		= "MARVELL_6145",
194  		.init_chipset	= init_chipset_generic,
195  		.init_hwif	= init_hwif_generic,
196  		.init_dma	= init_dma_generic,
197  		.channels	= 1,
198  		.autodma	= NOAUTODMA,
199  		.bootable	= ON_BOARD,
200 	},{
201 		.vendor		= 0,
202 		.device		= 0,
203 		.channels	= 0,
204 		.bootable	= EOL,
205 	}
206 };
207 
208 #if 0
209 static ide_pci_device_t unknown_chipset[] __devinitdata = {
210 	{	/* 0 */
211 		.vendor		= 0,
212 		.device		= 0,
213 		.name		= "PCI_IDE",
214 		.init_chipset	= init_chipset_generic,
215 		.init_iops	= NULL,
216 		.init_hwif	= init_hwif_generic,
217 		.init_dma	= init_dma_generic,
218 		.channels	= 2,
219 		.autodma	= AUTODMA,
220 		.enablebits	= {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
221 		.bootable	= ON_BOARD,
222 		.extra		= 0,
223 	},{
224 		.vendor		= 0,
225 		.device		= 0,
226 		.channels	= 0,
227 		.bootable	= EOL,
228 	}
229 
230 };
231 #endif
232 
233 #endif /* IDE_GENERIC_H */
234