xref: /openbmc/linux/include/pcmcia/device_id.h (revision 64c70b1c)
1 /*
2  * Copyright (2003-2004) 	Dominik Brodowski <linux@brodo.de>
3  *				David Woodhouse
4  *
5  * License: GPL v2
6  */
7 
8 #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
9 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
10 			PCMCIA_DEV_ID_MATCH_CARD_ID, \
11 	.manf_id = (manf), \
12 	.card_id = (card), }
13 
14 #define PCMCIA_DEVICE_FUNC_ID(func) { \
15 	.match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
16 	.func_id = (func), }
17 
18 #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
19 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
20 	.prod_id = { (v1), NULL, NULL, NULL }, \
21 	.prod_id_hash = { (vh1), 0, 0, 0 }, }
22 
23 #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
24 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
25 	.prod_id = { NULL, (v2), NULL, NULL },  \
26 	.prod_id_hash = { 0, (vh2), 0, 0 }, }
27 
28 #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
29 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
30 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
31 	.prod_id = { (v1), (v2), NULL, NULL }, \
32 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, }
33 
34 #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
35 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
36 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
37 	.prod_id = { (v1), NULL, (v3), NULL }, \
38 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, }
39 
40 #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
41 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
42 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
43 	.prod_id = { (v1), NULL, NULL, (v4) }, \
44 	.prod_id_hash = { (vh1), 0, 0, (vh4) }, }
45 
46 #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
47 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
48 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
49 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
50 	.prod_id = { (v1), (v2), (v3), NULL },\
51 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
52 
53 #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
54 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
55 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
56 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
57 	.prod_id = { (v1), (v2), NULL, (v4) }, \
58 	.prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
59 
60 #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
61 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
62 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
63 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
64 	.prod_id = { (v1), NULL, (v3), (v4) }, \
65 	.prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
66 
67 #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
68 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
69 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
70 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
71 			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
72 	.prod_id = { (v1), (v2), (v3), (v4) }, \
73 	.prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
74 
75 #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
76 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
77 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
78 			PCMCIA_DEV_ID_MATCH_PROD_ID1, \
79 	.manf_id = (manf), \
80 	.card_id = (card), \
81 	.prod_id = { (v1), NULL, NULL, NULL }, \
82 	.prod_id_hash = { (vh1), 0, 0, 0 }, }
83 
84 
85 /* multi-function devices */
86 
87 #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
88 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
89 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
90 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
91 	.manf_id = (manf), \
92 	.card_id = (card), \
93 	.function = (mfc), }
94 
95 #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
96 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
97 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
98 	.prod_id = { (v1), NULL, NULL, NULL }, \
99 	.prod_id_hash = { (vh1), 0, 0, 0 }, \
100 	.function = (mfc), }
101 
102 #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
103 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
104 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
105 	.prod_id = { NULL, (v2), NULL, NULL },  \
106 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
107 	.function = (mfc), }
108 
109 #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
110 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
111 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
112 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
113 	.prod_id = { (v1), (v2), NULL, NULL }, \
114 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
115 	.function = (mfc), }
116 
117 #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
118 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
119 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
120 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
121 	.prod_id = { (v1), NULL, (v3), NULL }, \
122 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
123 	.function = (mfc), }
124 
125 #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
126 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
127 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
128 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
129 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
130 	.prod_id = { (v1), (v2), (v3), NULL },\
131 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
132 	.function = (mfc), }
133 
134 /* pseudo multi-function devices */
135 
136 #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
137 	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
138 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
139 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
140 	.manf_id = (manf), \
141 	.card_id = (card), \
142 	.device_no = (mfc), }
143 
144 #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
145 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
146 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
147 	.prod_id = { (v1), NULL, NULL, NULL }, \
148 	.prod_id_hash = { (vh1), 0, 0, 0 }, \
149 	.device_no = (mfc), }
150 
151 #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
152 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
153 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
154 	.prod_id = { NULL, (v2), NULL, NULL },  \
155 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
156 	.device_no = (mfc), }
157 
158 #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
159 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
160 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
161 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
162 	.prod_id = { (v1), (v2), NULL, NULL }, \
163 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
164 	.device_no = (mfc), }
165 
166 #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
167 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
168 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
169 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
170 	.prod_id = { (v1), NULL, (v3), NULL }, \
171 	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
172 	.device_no = (mfc), }
173 
174 #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
175 	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
176 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
177 			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
178 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
179 	.prod_id = { (v1), (v2), (v3), NULL },\
180 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
181 	.device_no = (mfc), }
182 
183 /* cards needing a CIS override */
184 
185 #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
186 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
187 			PCMCIA_DEV_ID_MATCH_MANF_ID| \
188 			PCMCIA_DEV_ID_MATCH_CARD_ID, \
189 	.manf_id = (manf), \
190 	.card_id = (card), \
191 	.cisfile = (_cisfile)}
192 
193 #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
194 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
195 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
196 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
197 	.prod_id = { (v1), (v2), NULL, NULL }, \
198 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
199 	.cisfile = (_cisfile)}
200 
201 #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
202 	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
203 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
204 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
205 			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
206 	.prod_id = { (v1), (v2), (v3), NULL },\
207 	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
208 	.cisfile = (_cisfile)}
209 
210 
211 #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
212 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
213 			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
214 	.prod_id = { NULL, (v2), NULL, NULL },  \
215 	.prod_id_hash = { 0, (vh2), 0, 0 }, \
216 	.cisfile = (_cisfile)}
217 
218 #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
219 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
220 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
221 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
222 			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
223 	.prod_id = { (v1), (v2), NULL, NULL }, \
224 	.prod_id_hash = { (vh1), (vh2), 0, 0 },\
225 	.device_no = (mfc), \
226 	.cisfile = (_cisfile)}
227 
228 #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
229 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
230 			PCMCIA_DEV_ID_MATCH_MANF_ID| \
231 			PCMCIA_DEV_ID_MATCH_CARD_ID| \
232 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
233 	.manf_id = (manf), \
234 	.card_id = (card), \
235 	.function = (mfc), \
236 	.cisfile = (_cisfile)}
237 
238 #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
239 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
240 			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
241 			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
242 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
243 	.prod_id = { (v1), (v2), NULL, NULL }, \
244 	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
245 	.function = (mfc), \
246 	.cisfile = (_cisfile)}
247 
248 #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
249 	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
250 			PCMCIA_DEV_ID_MATCH_PROD_ID4| \
251 			PCMCIA_DEV_ID_MATCH_FUNCTION, \
252 	.prod_id = { NULL, NULL, NULL, (v4) }, \
253 	.prod_id_hash = { 0, 0, 0, (vh4) }, \
254 	.function = (mfc), \
255 	.cisfile = (_cisfile)}
256 
257 
258 #define PCMCIA_DEVICE_NULL { .match_flags = 0, }
259