xref: /openbmc/linux/include/pcmcia/device_id.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
21ad275e3SDominik Brodowski /*
335200d86SDominik Brodowski  * device_id.h -- PCMCIA driver matching helpers
41ad275e3SDominik Brodowski  *
535200d86SDominik Brodowski  * (C) 2003 - 2004	David Woodhouse
635200d86SDominik Brodowski  * (C) 2003 - 2004	Dominik Brodowski
71ad275e3SDominik Brodowski  */
81ad275e3SDominik Brodowski 
935200d86SDominik Brodowski #ifndef _LINUX_PCMCIA_DEVICE_ID_H
1035200d86SDominik Brodowski #define _LINUX_PCMCIA_DEVICE_ID_H
1135200d86SDominik Brodowski 
1235200d86SDominik Brodowski #ifdef __KERNEL__
1335200d86SDominik Brodowski 
141ad275e3SDominik Brodowski #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
151ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
161ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_CARD_ID, \
171ad275e3SDominik Brodowski 	.manf_id = (manf), \
181ad275e3SDominik Brodowski 	.card_id = (card), }
191ad275e3SDominik Brodowski 
201ad275e3SDominik Brodowski #define PCMCIA_DEVICE_FUNC_ID(func) { \
211ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
221ad275e3SDominik Brodowski 	.func_id = (func), }
231ad275e3SDominik Brodowski 
241ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
251ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
261ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, NULL, NULL }, \
271ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, 0, 0 }, }
281ad275e3SDominik Brodowski 
291ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
301ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
311ad275e3SDominik Brodowski 	.prod_id = { NULL, (v2), NULL, NULL },  \
321ad275e3SDominik Brodowski 	.prod_id_hash = { 0, (vh2), 0, 0 }, }
331ad275e3SDominik Brodowski 
34fbc87d67SPavel Roskin #define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \
35fbc87d67SPavel Roskin 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \
36fbc87d67SPavel Roskin 	.prod_id = { NULL, NULL, (v3), NULL },  \
37fbc87d67SPavel Roskin 	.prod_id_hash = { 0, 0, (vh3), 0 }, }
38fbc87d67SPavel Roskin 
391ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
401ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
411ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
421ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
431ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, }
441ad275e3SDominik Brodowski 
451ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
461ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
471ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
481ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, (v3), NULL }, \
491ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, }
501ad275e3SDominik Brodowski 
511ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
521ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
531ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
541ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, NULL, (v4) }, \
551ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, 0, (vh4) }, }
561ad275e3SDominik Brodowski 
571ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
581ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
591ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
601ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
611ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), (v3), NULL },\
621ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
631ad275e3SDominik Brodowski 
641ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
651ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
661ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
671ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
681ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, (v4) }, \
691ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
701ad275e3SDominik Brodowski 
711ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
721ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
731ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
741ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
751ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, (v3), (v4) }, \
761ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
771ad275e3SDominik Brodowski 
781ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
791ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
801ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
811ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
821ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
831ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), (v3), (v4) }, \
841ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
851ad275e3SDominik Brodowski 
86f0892b89SPavel Roskin #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
87f0892b89SPavel Roskin 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
88f0892b89SPavel Roskin 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
89f0892b89SPavel Roskin 			PCMCIA_DEV_ID_MATCH_PROD_ID1, \
90f0892b89SPavel Roskin 	.manf_id = (manf), \
91f0892b89SPavel Roskin 	.card_id = (card), \
92f0892b89SPavel Roskin 	.prod_id = { (v1), NULL, NULL, NULL }, \
93f0892b89SPavel Roskin 	.prod_id_hash = { (vh1), 0, 0, 0 }, }
94f0892b89SPavel Roskin 
9514b9f278SPavel Roskin #define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
9614b9f278SPavel Roskin 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
9714b9f278SPavel Roskin 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
9814b9f278SPavel Roskin 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
9914b9f278SPavel Roskin 	.manf_id = (manf), \
10014b9f278SPavel Roskin 	.card_id = (card), \
10114b9f278SPavel Roskin 	.prod_id = { NULL, NULL, (v3), NULL }, \
10214b9f278SPavel Roskin 	.prod_id_hash = { 0, 0, (vh3), 0 }, }
10314b9f278SPavel Roskin 
1041ad275e3SDominik Brodowski 
1051ad275e3SDominik Brodowski /* multi-function devices */
1061ad275e3SDominik Brodowski 
1071ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
1081ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
1091ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
1101ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1111ad275e3SDominik Brodowski 	.manf_id = (manf), \
1121ad275e3SDominik Brodowski 	.card_id = (card), \
1131ad275e3SDominik Brodowski 	.function = (mfc), }
1141ad275e3SDominik Brodowski 
1151ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
1161ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1171ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1181ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, NULL, NULL }, \
1191ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, 0, 0 }, \
1201ad275e3SDominik Brodowski 	.function = (mfc), }
1211ad275e3SDominik Brodowski 
1221ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
1231ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1241ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1251ad275e3SDominik Brodowski 	.prod_id = { NULL, (v2), NULL, NULL },  \
1261ad275e3SDominik Brodowski 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
1271ad275e3SDominik Brodowski 	.function = (mfc), }
1281ad275e3SDominik Brodowski 
1291ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
1301ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1311ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1321ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1331ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
1341ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
1351ad275e3SDominik Brodowski 	.function = (mfc), }
1361ad275e3SDominik Brodowski 
1371ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
1381ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1391ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
1401ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1411ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, (v3), NULL }, \
1421ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
1431ad275e3SDominik Brodowski 	.function = (mfc), }
1441ad275e3SDominik Brodowski 
1451ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
1461ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1471ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1481ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
1491ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
1501ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), (v3), NULL },\
1511ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
1521ad275e3SDominik Brodowski 	.function = (mfc), }
1531ad275e3SDominik Brodowski 
1541ad275e3SDominik Brodowski /* pseudo multi-function devices */
1551ad275e3SDominik Brodowski 
1561ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
1571ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
1581ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
1591ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1601ad275e3SDominik Brodowski 	.manf_id = (manf), \
1611ad275e3SDominik Brodowski 	.card_id = (card), \
1621ad275e3SDominik Brodowski 	.device_no = (mfc), }
1631ad275e3SDominik Brodowski 
1641ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
1651ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1661ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1671ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, NULL, NULL }, \
1681ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, 0, 0 }, \
1691ad275e3SDominik Brodowski 	.device_no = (mfc), }
1701ad275e3SDominik Brodowski 
1711ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
1721ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1731ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1741ad275e3SDominik Brodowski 	.prod_id = { NULL, (v2), NULL, NULL },  \
1751ad275e3SDominik Brodowski 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
1761ad275e3SDominik Brodowski 	.device_no = (mfc), }
1771ad275e3SDominik Brodowski 
1781ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
1791ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1801ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1811ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1821ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
1831ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
1841ad275e3SDominik Brodowski 	.device_no = (mfc), }
1851ad275e3SDominik Brodowski 
1861ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
1871ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1881ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
1891ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1901ad275e3SDominik Brodowski 	.prod_id = { (v1), NULL, (v3), NULL }, \
1911ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
1921ad275e3SDominik Brodowski 	.device_no = (mfc), }
1931ad275e3SDominik Brodowski 
1941ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
1951ad275e3SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
1961ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
1971ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
1981ad275e3SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
1991ad275e3SDominik Brodowski 	.prod_id = { (v1), (v2), (v3), NULL },\
2001ad275e3SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
2011ad275e3SDominik Brodowski 	.device_no = (mfc), }
2021ad275e3SDominik Brodowski 
203ea7b3882SDominik Brodowski /* cards needing a CIS override */
204ea7b3882SDominik Brodowski 
205ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
206ea7b3882SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
207ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_MANF_ID| \
208ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_CARD_ID, \
209ea7b3882SDominik Brodowski 	.manf_id = (manf), \
210ea7b3882SDominik Brodowski 	.card_id = (card), \
211ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
212ea7b3882SDominik Brodowski 
213ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
214ea7b3882SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
215ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
216ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
217ea7b3882SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
218ea7b3882SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
219ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
220ea7b3882SDominik Brodowski 
221ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
222ea7b3882SDominik Brodowski 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
223ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
224ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
225ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
226ea7b3882SDominik Brodowski 	.prod_id = { (v1), (v2), (v3), NULL },\
227ea7b3882SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
228ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
229ea7b3882SDominik Brodowski 
230ea7b3882SDominik Brodowski 
231ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
232ea7b3882SDominik Brodowski 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
233ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
234ea7b3882SDominik Brodowski 	.prod_id = { NULL, (v2), NULL, NULL },  \
235ea7b3882SDominik Brodowski 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
236ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
237ea7b3882SDominik Brodowski 
238ea7b3882SDominik Brodowski #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
239ea7b3882SDominik Brodowski 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
240ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
241ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
242ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
243ea7b3882SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
244ea7b3882SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 },\
245ea7b3882SDominik Brodowski 	.device_no = (mfc), \
246ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
247ea7b3882SDominik Brodowski 
248ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
249ea7b3882SDominik Brodowski 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
250ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_MANF_ID| \
251ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
252ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
253ea7b3882SDominik Brodowski 	.manf_id = (manf), \
254ea7b3882SDominik Brodowski 	.card_id = (card), \
255ea7b3882SDominik Brodowski 	.function = (mfc), \
256ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
257ea7b3882SDominik Brodowski 
258ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
259ea7b3882SDominik Brodowski 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
260ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
261ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
262ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
263ea7b3882SDominik Brodowski 	.prod_id = { (v1), (v2), NULL, NULL }, \
264ea7b3882SDominik Brodowski 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
265ea7b3882SDominik Brodowski 	.function = (mfc), \
266ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
267ea7b3882SDominik Brodowski 
268ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
269ea7b3882SDominik Brodowski 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
270ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_PROD_ID4| \
271ea7b3882SDominik Brodowski 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
272ea7b3882SDominik Brodowski 	.prod_id = { NULL, NULL, NULL, (v4) }, \
273ea7b3882SDominik Brodowski 	.prod_id_hash = { 0, 0, 0, (vh4) }, \
274ea7b3882SDominik Brodowski 	.function = (mfc), \
275ea7b3882SDominik Brodowski 	.cisfile = (_cisfile)}
276ea7b3882SDominik Brodowski 
2771ad275e3SDominik Brodowski 
2781ad275e3SDominik Brodowski #define PCMCIA_DEVICE_NULL { .match_flags = 0, }
27935200d86SDominik Brodowski 
28035200d86SDominik Brodowski #endif /* __KERNEL__ */
28135200d86SDominik Brodowski #endif /* _LINUX_PCMCIA_DEVICE_ID_H */
282