Linux Audio

Check our new training course

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