1 /*
2  * Copyright (c) 2008-2009 Atheros Communications Inc.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef REGD_COMMON_H
18 #define REGD_COMMON_H
19 
20 enum EnumRd {
21 	NO_ENUMRD = 0x00,
22 	NULL1_WORLD = 0x03,
23 	NULL1_ETSIB = 0x07,
24 	NULL1_ETSIC = 0x08,
25 	FCC1_FCCA = 0x10,
26 	FCC1_WORLD = 0x11,
27 	FCC4_FCCA = 0x12,
28 	FCC5_FCCA = 0x13,
29 	FCC6_FCCA = 0x14,
30 
31 	FCC2_FCCA = 0x20,
32 	FCC2_WORLD = 0x21,
33 	FCC2_ETSIC = 0x22,
34 	FCC6_WORLD = 0x23,
35 	FRANCE_RES = 0x31,
36 	FCC3_FCCA = 0x3A,
37 	FCC3_WORLD = 0x3B,
38 	FCC3_ETSIC = 0x3F,
39 
40 	ETSI1_WORLD = 0x37,
41 	ETSI3_ETSIA = 0x32,
42 	ETSI2_WORLD = 0x35,
43 	ETSI3_WORLD = 0x36,
44 	ETSI4_WORLD = 0x30,
45 	ETSI4_ETSIC = 0x38,
46 	ETSI5_WORLD = 0x39,
47 	ETSI6_WORLD = 0x34,
48 	ETSI8_WORLD = 0x3D,
49 	ETSI9_WORLD = 0x3E,
50 	ETSI_RESERVED = 0x33,
51 
52 	MKK1_MKKA = 0x40,
53 	MKK1_MKKB = 0x41,
54 	APL4_WORLD = 0x42,
55 	MKK2_MKKA = 0x43,
56 	APL_RESERVED = 0x44,
57 	APL2_WORLD = 0x45,
58 	APL2_APLC = 0x46,
59 	APL3_WORLD = 0x47,
60 	MKK1_FCCA = 0x48,
61 	APL2_APLD = 0x49,
62 	MKK1_MKKA1 = 0x4A,
63 	MKK1_MKKA2 = 0x4B,
64 	MKK1_MKKC = 0x4C,
65 	APL2_FCCA = 0x4D,
66 
67 	APL3_FCCA = 0x50,
68 	APL1_WORLD = 0x52,
69 	APL1_FCCA = 0x53,
70 	APL1_APLA = 0x54,
71 	APL1_ETSIC = 0x55,
72 	APL2_ETSIC = 0x56,
73 	APL5_WORLD = 0x58,
74 	APL13_WORLD = 0x5A,
75 	APL6_WORLD = 0x5B,
76 	APL7_FCCA = 0x5C,
77 	APL8_WORLD = 0x5D,
78 	APL9_WORLD = 0x5E,
79 
80 	WOR0_WORLD = 0x60,
81 	WOR1_WORLD = 0x61,
82 	WOR2_WORLD = 0x62,
83 	WOR3_WORLD = 0x63,
84 	WOR4_WORLD = 0x64,
85 	WOR5_ETSIC = 0x65,
86 
87 	WOR01_WORLD = 0x66,
88 	WOR02_WORLD = 0x67,
89 	EU1_WORLD = 0x68,
90 
91 	WOR9_WORLD = 0x69,
92 	WORA_WORLD = 0x6A,
93 	WORB_WORLD = 0x6B,
94 	WORC_WORLD = 0x6C,
95 
96 	MKK3_MKKB = 0x80,
97 	MKK3_MKKA2 = 0x81,
98 	MKK3_MKKC = 0x82,
99 
100 	MKK4_MKKB = 0x83,
101 	MKK4_MKKA2 = 0x84,
102 	MKK4_MKKC = 0x85,
103 
104 	MKK5_MKKB = 0x86,
105 	MKK5_MKKA2 = 0x87,
106 	MKK5_MKKC = 0x88,
107 
108 	MKK6_MKKB = 0x89,
109 	MKK6_MKKA2 = 0x8A,
110 	MKK6_MKKC = 0x8B,
111 
112 	MKK7_MKKB = 0x8C,
113 	MKK7_MKKA2 = 0x8D,
114 	MKK7_MKKC = 0x8E,
115 
116 	MKK8_MKKB = 0x8F,
117 	MKK8_MKKA2 = 0x90,
118 	MKK8_MKKC = 0x91,
119 
120 	MKK14_MKKA1 = 0x92,
121 	MKK15_MKKA1 = 0x93,
122 
123 	MKK10_FCCA = 0xD0,
124 	MKK10_MKKA1 = 0xD1,
125 	MKK10_MKKC = 0xD2,
126 	MKK10_MKKA2 = 0xD3,
127 
128 	MKK11_MKKA = 0xD4,
129 	MKK11_FCCA = 0xD5,
130 	MKK11_MKKA1 = 0xD6,
131 	MKK11_MKKC = 0xD7,
132 	MKK11_MKKA2 = 0xD8,
133 
134 	MKK12_MKKA = 0xD9,
135 	MKK12_FCCA = 0xDA,
136 	MKK12_MKKA1 = 0xDB,
137 	MKK12_MKKC = 0xDC,
138 	MKK12_MKKA2 = 0xDD,
139 
140 	MKK13_MKKB = 0xDE,
141 
142 	MKK3_MKKA = 0xF0,
143 	MKK3_MKKA1 = 0xF1,
144 	MKK3_FCCA = 0xF2,
145 	MKK4_MKKA = 0xF3,
146 	MKK4_MKKA1 = 0xF4,
147 	MKK4_FCCA = 0xF5,
148 	MKK9_MKKA = 0xF6,
149 	MKK10_MKKA = 0xF7,
150 	MKK6_MKKA1 = 0xF8,
151 	MKK6_FCCA = 0xF9,
152 	MKK7_MKKA1 = 0xFA,
153 	MKK7_FCCA = 0xFB,
154 	MKK9_FCCA = 0xFC,
155 	MKK9_MKKA1 = 0xFD,
156 	MKK9_MKKC = 0xFE,
157 	MKK9_MKKA2 = 0xFF,
158 
159 	WORLD = 0x0199,
160 	DEBUG_REG_DMN = 0x01ff,
161 };
162 
163 /* Regpair to CTL band mapping */
164 static struct reg_dmn_pair_mapping regDomainPairs[] = {
165 	/* regpair, 5 GHz CTL, 2 GHz CTL */
166 	{NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
167 	{NULL1_WORLD, NO_CTL, CTL_ETSI},
168 	{NULL1_ETSIB, NO_CTL, CTL_ETSI},
169 	{NULL1_ETSIC, NO_CTL, CTL_ETSI},
170 
171 	{FCC2_FCCA, CTL_FCC, CTL_FCC},
172 	{FCC2_WORLD, CTL_FCC, CTL_ETSI},
173 	{FCC2_ETSIC, CTL_FCC, CTL_ETSI},
174 	{FCC3_FCCA, CTL_FCC, CTL_FCC},
175 	{FCC3_WORLD, CTL_FCC, CTL_ETSI},
176 	{FCC3_ETSIC, CTL_FCC, CTL_ETSI},
177 	{FCC4_FCCA, CTL_FCC, CTL_FCC},
178 	{FCC5_FCCA, CTL_FCC, CTL_FCC},
179 	{FCC6_FCCA, CTL_FCC, CTL_FCC},
180 	{FCC6_WORLD, CTL_FCC, CTL_ETSI},
181 
182 	{ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
183 	{ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
184 	{ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
185 	{ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
186 	{ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
187 	{ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
188 	{ETSI8_WORLD, CTL_ETSI, CTL_ETSI},
189 	{ETSI9_WORLD, CTL_ETSI, CTL_ETSI},
190 
191 	/* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
192 	{ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
193 	{FRANCE_RES, CTL_ETSI, CTL_ETSI},
194 
195 	{FCC1_WORLD, CTL_FCC, CTL_ETSI},
196 	{FCC1_FCCA, CTL_FCC, CTL_FCC},
197 	{APL1_WORLD, CTL_FCC, CTL_ETSI},
198 	{APL2_WORLD, CTL_FCC, CTL_ETSI},
199 	{APL2_FCCA, CTL_FCC, CTL_FCC},
200 	{APL3_WORLD, CTL_FCC, CTL_ETSI},
201 	{APL4_WORLD, CTL_FCC, CTL_ETSI},
202 	{APL5_WORLD, CTL_FCC, CTL_ETSI},
203 	{APL13_WORLD, CTL_ETSI, CTL_ETSI},
204 	{APL6_WORLD, CTL_ETSI, CTL_ETSI},
205 	{APL8_WORLD, CTL_ETSI, CTL_ETSI},
206 	{APL9_WORLD, CTL_ETSI, CTL_ETSI},
207 
208 	{APL3_FCCA, CTL_FCC, CTL_FCC},
209 	{APL7_FCCA, CTL_FCC, CTL_FCC},
210 	{APL1_ETSIC, CTL_FCC, CTL_ETSI},
211 	{APL2_ETSIC, CTL_FCC, CTL_ETSI},
212 	{APL2_APLD, CTL_FCC, NO_CTL},
213 
214 	{MKK1_MKKA, CTL_MKK, CTL_MKK},
215 	{MKK1_MKKB, CTL_MKK, CTL_MKK},
216 	{MKK1_FCCA, CTL_MKK, CTL_FCC},
217 	{MKK1_MKKA1, CTL_MKK, CTL_MKK},
218 	{MKK1_MKKA2, CTL_MKK, CTL_MKK},
219 	{MKK1_MKKC, CTL_MKK, CTL_MKK},
220 
221 	{MKK2_MKKA, CTL_MKK, CTL_MKK},
222 	{MKK3_MKKA, CTL_MKK, CTL_MKK},
223 	{MKK3_MKKB, CTL_MKK, CTL_MKK},
224 	{MKK3_MKKA1, CTL_MKK, CTL_MKK},
225 	{MKK3_MKKA2, CTL_MKK, CTL_MKK},
226 	{MKK3_MKKC, CTL_MKK, CTL_MKK},
227 	{MKK3_FCCA, CTL_MKK, CTL_FCC},
228 
229 	{MKK4_MKKA, CTL_MKK, CTL_MKK},
230 	{MKK4_MKKB, CTL_MKK, CTL_MKK},
231 	{MKK4_MKKA1, CTL_MKK, CTL_MKK},
232 	{MKK4_MKKA2, CTL_MKK, CTL_MKK},
233 	{MKK4_MKKC, CTL_MKK, CTL_MKK},
234 	{MKK4_FCCA, CTL_MKK, CTL_FCC},
235 
236 	{MKK5_MKKB, CTL_MKK, CTL_MKK},
237 	{MKK5_MKKA2, CTL_MKK, CTL_MKK},
238 	{MKK5_MKKC, CTL_MKK, CTL_MKK},
239 
240 	{MKK6_MKKB, CTL_MKK, CTL_MKK},
241 	{MKK6_MKKA1, CTL_MKK, CTL_MKK},
242 	{MKK6_MKKA2, CTL_MKK, CTL_MKK},
243 	{MKK6_MKKC, CTL_MKK, CTL_MKK},
244 	{MKK6_FCCA, CTL_MKK, CTL_FCC},
245 
246 	{MKK7_MKKB, CTL_MKK, CTL_MKK},
247 	{MKK7_MKKA1, CTL_MKK, CTL_MKK},
248 	{MKK7_MKKA2, CTL_MKK, CTL_MKK},
249 	{MKK7_MKKC, CTL_MKK, CTL_MKK},
250 	{MKK7_FCCA, CTL_MKK, CTL_FCC},
251 
252 	{MKK8_MKKB, CTL_MKK, CTL_MKK},
253 	{MKK8_MKKA2, CTL_MKK, CTL_MKK},
254 	{MKK8_MKKC, CTL_MKK, CTL_MKK},
255 
256 	{MKK9_MKKA, CTL_MKK, CTL_MKK},
257 	{MKK9_FCCA, CTL_MKK, CTL_FCC},
258 	{MKK9_MKKA1, CTL_MKK, CTL_MKK},
259 	{MKK9_MKKA2, CTL_MKK, CTL_MKK},
260 	{MKK9_MKKC, CTL_MKK, CTL_MKK},
261 
262 	{MKK10_MKKA, CTL_MKK, CTL_MKK},
263 	{MKK10_FCCA, CTL_MKK, CTL_FCC},
264 	{MKK10_MKKA1, CTL_MKK, CTL_MKK},
265 	{MKK10_MKKA2, CTL_MKK, CTL_MKK},
266 	{MKK10_MKKC, CTL_MKK, CTL_MKK},
267 
268 	{MKK11_MKKA, CTL_MKK, CTL_MKK},
269 	{MKK11_FCCA, CTL_MKK, CTL_FCC},
270 	{MKK11_MKKA1, CTL_MKK, CTL_MKK},
271 	{MKK11_MKKA2, CTL_MKK, CTL_MKK},
272 	{MKK11_MKKC, CTL_MKK, CTL_MKK},
273 
274 	{MKK12_MKKA, CTL_MKK, CTL_MKK},
275 	{MKK12_FCCA, CTL_MKK, CTL_FCC},
276 	{MKK12_MKKA1, CTL_MKK, CTL_MKK},
277 	{MKK12_MKKA2, CTL_MKK, CTL_MKK},
278 	{MKK12_MKKC, CTL_MKK, CTL_MKK},
279 
280 	{MKK13_MKKB, CTL_MKK, CTL_MKK},
281 	{MKK14_MKKA1, CTL_MKK, CTL_MKK},
282 	{MKK15_MKKA1, CTL_MKK, CTL_MKK},
283 
284 	{WOR0_WORLD, NO_CTL, NO_CTL},
285 	{WOR1_WORLD, NO_CTL, NO_CTL},
286 	{WOR2_WORLD, NO_CTL, NO_CTL},
287 	{WOR3_WORLD, NO_CTL, NO_CTL},
288 	{WOR4_WORLD, NO_CTL, NO_CTL},
289 	{WOR5_ETSIC, NO_CTL, NO_CTL},
290 	{WOR01_WORLD, NO_CTL, NO_CTL},
291 	{WOR02_WORLD, NO_CTL, NO_CTL},
292 	{EU1_WORLD, NO_CTL, NO_CTL},
293 	{WOR9_WORLD, NO_CTL, NO_CTL},
294 	{WORA_WORLD, NO_CTL, NO_CTL},
295 	{WORB_WORLD, NO_CTL, NO_CTL},
296 	{WORC_WORLD, NO_CTL, NO_CTL},
297 };
298 
299 static struct country_code_to_enum_rd allCountries[] = {
300 	{CTRY_DEBUG, NO_ENUMRD, "DB"},
301 	{CTRY_DEFAULT, FCC1_FCCA, "CO"},
302 	{CTRY_ALBANIA, NULL1_WORLD, "AL"},
303 	{CTRY_ALGERIA, NULL1_WORLD, "DZ"},
304 	{CTRY_ARGENTINA, FCC3_WORLD, "AR"},
305 	{CTRY_ARMENIA, ETSI4_WORLD, "AM"},
306 	{CTRY_ARUBA, ETSI1_WORLD, "AW"},
307 	{CTRY_AUSTRALIA, FCC2_WORLD, "AU"},
308 	{CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
309 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
310 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
311 	{CTRY_BAHAMAS, FCC3_WORLD, "BS"},
312 	{CTRY_BAHRAIN, APL6_WORLD, "BH"},
313 	{CTRY_BANGLADESH, NULL1_WORLD, "BD"},
314 	{CTRY_BARBADOS, FCC2_WORLD, "BB"},
315 	{CTRY_BELARUS, ETSI1_WORLD, "BY"},
316 	{CTRY_BELGIUM, ETSI1_WORLD, "BE"},
317 	{CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
318 	{CTRY_BELIZE, APL1_ETSIC, "BZ"},
319 	{CTRY_BERMUDA, FCC3_FCCA, "BM"},
320 	{CTRY_BOLIVIA, APL1_ETSIC, "BO"},
321 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
322 	{CTRY_BRAZIL, FCC3_WORLD, "BR"},
323 	{CTRY_BRUNEI_DARUSSALAM, APL1_WORLD, "BN"},
324 	{CTRY_BULGARIA, ETSI6_WORLD, "BG"},
325 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
326 	{CTRY_CANADA, FCC3_FCCA, "CA"},
327 	{CTRY_CANADA2, FCC6_FCCA, "CA"},
328 	{CTRY_CHILE, APL6_WORLD, "CL"},
329 	{CTRY_CHINA, APL1_WORLD, "CN"},
330 	{CTRY_COLOMBIA, FCC1_FCCA, "CO"},
331 	{CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
332 	{CTRY_CROATIA, ETSI1_WORLD, "HR"},
333 	{CTRY_CYPRUS, ETSI1_WORLD, "CY"},
334 	{CTRY_CZECH, ETSI3_WORLD, "CZ"},
335 	{CTRY_DENMARK, ETSI1_WORLD, "DK"},
336 	{CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO"},
337 	{CTRY_ECUADOR, FCC1_WORLD, "EC"},
338 	{CTRY_EGYPT, ETSI3_WORLD, "EG"},
339 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
340 	{CTRY_ESTONIA, ETSI1_WORLD, "EE"},
341 	{CTRY_FINLAND, ETSI1_WORLD, "FI"},
342 	{CTRY_FRANCE, ETSI1_WORLD, "FR"},
343 	{CTRY_GEORGIA, ETSI4_WORLD, "GE"},
344 	{CTRY_GERMANY, ETSI1_WORLD, "DE"},
345 	{CTRY_GREECE, ETSI1_WORLD, "GR"},
346 	{CTRY_GREENLAND, ETSI1_WORLD, "GL"},
347 	{CTRY_GRENADA, FCC3_FCCA, "GD"},
348 	{CTRY_GUAM, FCC1_FCCA, "GU"},
349 	{CTRY_GUATEMALA, FCC1_FCCA, "GT"},
350 	{CTRY_HAITI, ETSI1_WORLD, "HT"},
351 	{CTRY_HONDURAS, NULL1_WORLD, "HN"},
352 	{CTRY_HONG_KONG, FCC3_WORLD, "HK"},
353 	{CTRY_HUNGARY, ETSI1_WORLD, "HU"},
354 	{CTRY_ICELAND, ETSI1_WORLD, "IS"},
355 	{CTRY_INDIA, APL6_WORLD, "IN"},
356 	{CTRY_INDONESIA, NULL1_WORLD, "ID"},
357 	{CTRY_IRAN, APL1_WORLD, "IR"},
358 	{CTRY_IRELAND, ETSI1_WORLD, "IE"},
359 	{CTRY_ISRAEL, NULL1_WORLD, "IL"},
360 	{CTRY_ITALY, ETSI1_WORLD, "IT"},
361 	{CTRY_JAMAICA, FCC3_WORLD, "JM"},
362 
363 	{CTRY_JAPAN, MKK1_MKKA, "JP"},
364 	{CTRY_JAPAN1, MKK1_MKKB, "JP"},
365 	{CTRY_JAPAN2, MKK1_FCCA, "JP"},
366 	{CTRY_JAPAN3, MKK2_MKKA, "JP"},
367 	{CTRY_JAPAN4, MKK1_MKKA1, "JP"},
368 	{CTRY_JAPAN5, MKK1_MKKA2, "JP"},
369 	{CTRY_JAPAN6, MKK1_MKKC, "JP"},
370 	{CTRY_JAPAN7, MKK3_MKKB, "JP"},
371 	{CTRY_JAPAN8, MKK3_MKKA2, "JP"},
372 	{CTRY_JAPAN9, MKK3_MKKC, "JP"},
373 	{CTRY_JAPAN10, MKK4_MKKB, "JP"},
374 	{CTRY_JAPAN11, MKK4_MKKA2, "JP"},
375 	{CTRY_JAPAN12, MKK4_MKKC, "JP"},
376 	{CTRY_JAPAN13, MKK5_MKKB, "JP"},
377 	{CTRY_JAPAN14, MKK5_MKKA2, "JP"},
378 	{CTRY_JAPAN15, MKK5_MKKC, "JP"},
379 	{CTRY_JAPAN16, MKK6_MKKB, "JP"},
380 	{CTRY_JAPAN17, MKK6_MKKA2, "JP"},
381 	{CTRY_JAPAN18, MKK6_MKKC, "JP"},
382 	{CTRY_JAPAN19, MKK7_MKKB, "JP"},
383 	{CTRY_JAPAN20, MKK7_MKKA2, "JP"},
384 	{CTRY_JAPAN21, MKK7_MKKC, "JP"},
385 	{CTRY_JAPAN22, MKK8_MKKB, "JP"},
386 	{CTRY_JAPAN23, MKK8_MKKA2, "JP"},
387 	{CTRY_JAPAN24, MKK8_MKKC, "JP"},
388 	{CTRY_JAPAN25, MKK3_MKKA, "JP"},
389 	{CTRY_JAPAN26, MKK3_MKKA1, "JP"},
390 	{CTRY_JAPAN27, MKK3_FCCA, "JP"},
391 	{CTRY_JAPAN28, MKK4_MKKA1, "JP"},
392 	{CTRY_JAPAN29, MKK4_FCCA, "JP"},
393 	{CTRY_JAPAN30, MKK6_MKKA1, "JP"},
394 	{CTRY_JAPAN31, MKK6_FCCA, "JP"},
395 	{CTRY_JAPAN32, MKK7_MKKA1, "JP"},
396 	{CTRY_JAPAN33, MKK7_FCCA, "JP"},
397 	{CTRY_JAPAN34, MKK9_MKKA, "JP"},
398 	{CTRY_JAPAN35, MKK10_MKKA, "JP"},
399 	{CTRY_JAPAN36, MKK4_MKKA, "JP"},
400 	{CTRY_JAPAN37, MKK9_FCCA, "JP"},
401 	{CTRY_JAPAN38, MKK9_MKKA1, "JP"},
402 	{CTRY_JAPAN39, MKK9_MKKC, "JP"},
403 	{CTRY_JAPAN40, MKK9_MKKA2, "JP"},
404 	{CTRY_JAPAN41, MKK10_FCCA, "JP"},
405 	{CTRY_JAPAN42, MKK10_MKKA1, "JP"},
406 	{CTRY_JAPAN43, MKK10_MKKC, "JP"},
407 	{CTRY_JAPAN44, MKK10_MKKA2, "JP"},
408 	{CTRY_JAPAN45, MKK11_MKKA, "JP"},
409 	{CTRY_JAPAN46, MKK11_FCCA, "JP"},
410 	{CTRY_JAPAN47, MKK11_MKKA1, "JP"},
411 	{CTRY_JAPAN48, MKK11_MKKC, "JP"},
412 	{CTRY_JAPAN49, MKK11_MKKA2, "JP"},
413 	{CTRY_JAPAN50, MKK12_MKKA, "JP"},
414 	{CTRY_JAPAN51, MKK12_FCCA, "JP"},
415 	{CTRY_JAPAN52, MKK12_MKKA1, "JP"},
416 	{CTRY_JAPAN53, MKK12_MKKC, "JP"},
417 	{CTRY_JAPAN54, MKK12_MKKA2, "JP"},
418 	{CTRY_JAPAN57, MKK13_MKKB, "JP"},
419 	{CTRY_JAPAN58, MKK14_MKKA1, "JP"},
420 	{CTRY_JAPAN59, MKK15_MKKA1, "JP"},
421 
422 	{CTRY_JORDAN, ETSI2_WORLD, "JO"},
423 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
424 	{CTRY_KENYA, APL1_WORLD, "KE"},
425 	{CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
426 	{CTRY_KOREA_ROC, APL9_WORLD, "KR"},
427 	{CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
428 	{CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
429 	{CTRY_KUWAIT, ETSI3_WORLD, "KW"},
430 	{CTRY_LATVIA, ETSI1_WORLD, "LV"},
431 	{CTRY_LEBANON, NULL1_WORLD, "LB"},
432 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI"},
433 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
434 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
435 	{CTRY_MACAU, FCC2_WORLD, "MO"},
436 	{CTRY_MACEDONIA, NULL1_WORLD, "MK"},
437 	{CTRY_MALAYSIA, APL8_WORLD, "MY"},
438 	{CTRY_MALTA, ETSI1_WORLD, "MT"},
439 	{CTRY_MAURITIUS, ETSI1_WORLD, "MU"},
440 	{CTRY_MEXICO, FCC1_FCCA, "MX"},
441 	{CTRY_MONACO, ETSI4_WORLD, "MC"},
442 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME"},
443 	{CTRY_MOROCCO, APL4_WORLD, "MA"},
444 	{CTRY_NEPAL, APL1_WORLD, "NP"},
445 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
446 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN"},
447 	{CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ"},
448 	{CTRY_NICARAGUA, FCC3_FCCA, "NI"},
449 	{CTRY_NORWAY, ETSI1_WORLD, "NO"},
450 	{CTRY_OMAN, FCC3_WORLD, "OM"},
451 	{CTRY_PAKISTAN, NULL1_WORLD, "PK"},
452 	{CTRY_PANAMA, FCC1_FCCA, "PA"},
453 	{CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG"},
454 	{CTRY_PARAGUAY, FCC3_WORLD, "PY"},
455 	{CTRY_PERU, APL1_WORLD, "PE"},
456 	{CTRY_PHILIPPINES, APL1_WORLD, "PH"},
457 	{CTRY_POLAND, ETSI1_WORLD, "PL"},
458 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
459 	{CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
460 	{CTRY_QATAR, APL1_WORLD, "QA"},
461 	{CTRY_ROMANIA, NULL1_WORLD, "RO"},
462 	{CTRY_RUSSIA, NULL1_WORLD, "RU"},
463 	{CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
464 	{CTRY_SERBIA, ETSI1_WORLD, "RS"},
465 	{CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
466 	{CTRY_SINGAPORE, APL6_WORLD, "SG"},
467 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
468 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
469 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
470 	{CTRY_SPAIN, ETSI1_WORLD, "ES"},
471 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
472 	{CTRY_SWEDEN, ETSI1_WORLD, "SE"},
473 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
474 	{CTRY_SYRIA, NULL1_WORLD, "SY"},
475 	{CTRY_TAIWAN, APL3_FCCA, "TW"},
476 	{CTRY_TANZANIA, APL1_WORLD, "TZ"},
477 	{CTRY_THAILAND, FCC3_WORLD, "TH"},
478 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
479 	{CTRY_TUNISIA, ETSI3_WORLD, "TN"},
480 	{CTRY_TURKEY, ETSI3_WORLD, "TR"},
481 	{CTRY_UGANDA, FCC3_WORLD, "UG"},
482 	{CTRY_UKRAINE, NULL1_WORLD, "UA"},
483 	{CTRY_UAE, NULL1_WORLD, "AE"},
484 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
485 	{CTRY_UNITED_STATES, FCC3_FCCA, "US"},
486 	/* This "PS" is for US public safety actually... to support this we
487 	 * would need to assign new special alpha2 to CRDA db as with the world
488 	 * regdomain and use another alpha2 */
489 	{CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS"},
490 	{CTRY_URUGUAY, FCC3_WORLD, "UY"},
491 	{CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
492 	{CTRY_VENEZUELA, APL2_ETSIC, "VE"},
493 	{CTRY_VIET_NAM, NULL1_WORLD, "VN"},
494 	{CTRY_YEMEN, NULL1_WORLD, "YE"},
495 	{CTRY_ZIMBABWE, NULL1_WORLD, "ZW"},
496 };
497 
498 #endif
499