13a702e49SBob Copeland /*
23a702e49SBob Copeland  * Copyright (c) 2008-2009 Atheros Communications Inc.
33a702e49SBob Copeland  *
43a702e49SBob Copeland  * Permission to use, copy, modify, and/or distribute this software for any
53a702e49SBob Copeland  * purpose with or without fee is hereby granted, provided that the above
63a702e49SBob Copeland  * copyright notice and this permission notice appear in all copies.
73a702e49SBob Copeland  *
83a702e49SBob Copeland  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
93a702e49SBob Copeland  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
103a702e49SBob Copeland  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
113a702e49SBob Copeland  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
123a702e49SBob Copeland  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
133a702e49SBob Copeland  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
143a702e49SBob Copeland  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
153a702e49SBob Copeland  */
163a702e49SBob Copeland 
173a702e49SBob Copeland #ifndef REGD_COMMON_H
183a702e49SBob Copeland #define REGD_COMMON_H
193a702e49SBob Copeland 
203a702e49SBob Copeland enum EnumRd {
213a702e49SBob Copeland 	NO_ENUMRD = 0x00,
223a702e49SBob Copeland 	NULL1_WORLD = 0x03,
233a702e49SBob Copeland 	NULL1_ETSIB = 0x07,
243a702e49SBob Copeland 	NULL1_ETSIC = 0x08,
253a702e49SBob Copeland 	FCC1_FCCA = 0x10,
263a702e49SBob Copeland 	FCC1_WORLD = 0x11,
273a702e49SBob Copeland 	FCC4_FCCA = 0x12,
283a702e49SBob Copeland 	FCC5_FCCA = 0x13,
293a702e49SBob Copeland 	FCC6_FCCA = 0x14,
303a702e49SBob Copeland 
313a702e49SBob Copeland 	FCC2_FCCA = 0x20,
323a702e49SBob Copeland 	FCC2_WORLD = 0x21,
333a702e49SBob Copeland 	FCC2_ETSIC = 0x22,
343a702e49SBob Copeland 	FCC6_WORLD = 0x23,
353a702e49SBob Copeland 	FRANCE_RES = 0x31,
363a702e49SBob Copeland 	FCC3_FCCA = 0x3A,
373a702e49SBob Copeland 	FCC3_WORLD = 0x3B,
3801fb2994SSven Eckelmann 	FCC3_ETSIC = 0x3F,
393a702e49SBob Copeland 
403a702e49SBob Copeland 	ETSI1_WORLD = 0x37,
413a702e49SBob Copeland 	ETSI3_ETSIA = 0x32,
423a702e49SBob Copeland 	ETSI2_WORLD = 0x35,
433a702e49SBob Copeland 	ETSI3_WORLD = 0x36,
443a702e49SBob Copeland 	ETSI4_WORLD = 0x30,
453a702e49SBob Copeland 	ETSI4_ETSIC = 0x38,
463a702e49SBob Copeland 	ETSI5_WORLD = 0x39,
473a702e49SBob Copeland 	ETSI6_WORLD = 0x34,
4845faf6e0SSven Eckelmann 	ETSI8_WORLD = 0x3D,
49897fab6cSSven Eckelmann 	ETSI9_WORLD = 0x3E,
503a702e49SBob Copeland 	ETSI_RESERVED = 0x33,
513a702e49SBob Copeland 
523a702e49SBob Copeland 	MKK1_MKKA = 0x40,
533a702e49SBob Copeland 	MKK1_MKKB = 0x41,
543a702e49SBob Copeland 	APL4_WORLD = 0x42,
553a702e49SBob Copeland 	MKK2_MKKA = 0x43,
563a702e49SBob Copeland 	APL_RESERVED = 0x44,
573a702e49SBob Copeland 	APL2_WORLD = 0x45,
583a702e49SBob Copeland 	APL2_APLC = 0x46,
593a702e49SBob Copeland 	APL3_WORLD = 0x47,
603a702e49SBob Copeland 	MKK1_FCCA = 0x48,
613a702e49SBob Copeland 	APL2_APLD = 0x49,
623a702e49SBob Copeland 	MKK1_MKKA1 = 0x4A,
633a702e49SBob Copeland 	MKK1_MKKA2 = 0x4B,
643a702e49SBob Copeland 	MKK1_MKKC = 0x4C,
654f183687SSven Eckelmann 	APL2_FCCA = 0x4D,
663a702e49SBob Copeland 
673a702e49SBob Copeland 	APL3_FCCA = 0x50,
683a702e49SBob Copeland 	APL1_WORLD = 0x52,
693a702e49SBob Copeland 	APL1_FCCA = 0x53,
703a702e49SBob Copeland 	APL1_APLA = 0x54,
713a702e49SBob Copeland 	APL1_ETSIC = 0x55,
723a702e49SBob Copeland 	APL2_ETSIC = 0x56,
733a702e49SBob Copeland 	APL5_WORLD = 0x58,
749ba8df0cSSven Eckelmann 	APL13_WORLD = 0x5A,
753a702e49SBob Copeland 	APL6_WORLD = 0x5B,
763a702e49SBob Copeland 	APL7_FCCA = 0x5C,
773a702e49SBob Copeland 	APL8_WORLD = 0x5D,
783a702e49SBob Copeland 	APL9_WORLD = 0x5E,
79*dec05cdfSPeter Oh 	APL10_WORLD = 0x5F,
803a702e49SBob Copeland 
813a702e49SBob Copeland 	WOR0_WORLD = 0x60,
823a702e49SBob Copeland 	WOR1_WORLD = 0x61,
833a702e49SBob Copeland 	WOR2_WORLD = 0x62,
843a702e49SBob Copeland 	WOR3_WORLD = 0x63,
853a702e49SBob Copeland 	WOR4_WORLD = 0x64,
863a702e49SBob Copeland 	WOR5_ETSIC = 0x65,
873a702e49SBob Copeland 
883a702e49SBob Copeland 	WOR01_WORLD = 0x66,
893a702e49SBob Copeland 	WOR02_WORLD = 0x67,
903a702e49SBob Copeland 	EU1_WORLD = 0x68,
913a702e49SBob Copeland 
923a702e49SBob Copeland 	WOR9_WORLD = 0x69,
933a702e49SBob Copeland 	WORA_WORLD = 0x6A,
943a702e49SBob Copeland 	WORB_WORLD = 0x6B,
9534a0a202SSenthil Balasubramanian 	WORC_WORLD = 0x6C,
963a702e49SBob Copeland 
973a702e49SBob Copeland 	MKK3_MKKB = 0x80,
983a702e49SBob Copeland 	MKK3_MKKA2 = 0x81,
993a702e49SBob Copeland 	MKK3_MKKC = 0x82,
1003a702e49SBob Copeland 
1013a702e49SBob Copeland 	MKK4_MKKB = 0x83,
1023a702e49SBob Copeland 	MKK4_MKKA2 = 0x84,
1033a702e49SBob Copeland 	MKK4_MKKC = 0x85,
1043a702e49SBob Copeland 
1053a702e49SBob Copeland 	MKK5_MKKB = 0x86,
1063a702e49SBob Copeland 	MKK5_MKKA2 = 0x87,
1073a702e49SBob Copeland 	MKK5_MKKC = 0x88,
1083a702e49SBob Copeland 
1093a702e49SBob Copeland 	MKK6_MKKB = 0x89,
1103a702e49SBob Copeland 	MKK6_MKKA2 = 0x8A,
1113a702e49SBob Copeland 	MKK6_MKKC = 0x8B,
1123a702e49SBob Copeland 
1133a702e49SBob Copeland 	MKK7_MKKB = 0x8C,
1143a702e49SBob Copeland 	MKK7_MKKA2 = 0x8D,
1153a702e49SBob Copeland 	MKK7_MKKC = 0x8E,
1163a702e49SBob Copeland 
1173a702e49SBob Copeland 	MKK8_MKKB = 0x8F,
1183a702e49SBob Copeland 	MKK8_MKKA2 = 0x90,
1193a702e49SBob Copeland 	MKK8_MKKC = 0x91,
1203a702e49SBob Copeland 
1213a702e49SBob Copeland 	MKK14_MKKA1 = 0x92,
1223a702e49SBob Copeland 	MKK15_MKKA1 = 0x93,
1233a702e49SBob Copeland 
1243a702e49SBob Copeland 	MKK10_FCCA = 0xD0,
1253a702e49SBob Copeland 	MKK10_MKKA1 = 0xD1,
1263a702e49SBob Copeland 	MKK10_MKKC = 0xD2,
1273a702e49SBob Copeland 	MKK10_MKKA2 = 0xD3,
1283a702e49SBob Copeland 
1293a702e49SBob Copeland 	MKK11_MKKA = 0xD4,
1303a702e49SBob Copeland 	MKK11_FCCA = 0xD5,
1313a702e49SBob Copeland 	MKK11_MKKA1 = 0xD6,
1323a702e49SBob Copeland 	MKK11_MKKC = 0xD7,
1333a702e49SBob Copeland 	MKK11_MKKA2 = 0xD8,
1343a702e49SBob Copeland 
1353a702e49SBob Copeland 	MKK12_MKKA = 0xD9,
1363a702e49SBob Copeland 	MKK12_FCCA = 0xDA,
1373a702e49SBob Copeland 	MKK12_MKKA1 = 0xDB,
1383a702e49SBob Copeland 	MKK12_MKKC = 0xDC,
1393a702e49SBob Copeland 	MKK12_MKKA2 = 0xDD,
1403a702e49SBob Copeland 
1413a702e49SBob Copeland 	MKK13_MKKB = 0xDE,
1423a702e49SBob Copeland 
1433a702e49SBob Copeland 	MKK3_MKKA = 0xF0,
1443a702e49SBob Copeland 	MKK3_MKKA1 = 0xF1,
1453a702e49SBob Copeland 	MKK3_FCCA = 0xF2,
1463a702e49SBob Copeland 	MKK4_MKKA = 0xF3,
1473a702e49SBob Copeland 	MKK4_MKKA1 = 0xF4,
1483a702e49SBob Copeland 	MKK4_FCCA = 0xF5,
1493a702e49SBob Copeland 	MKK9_MKKA = 0xF6,
1503a702e49SBob Copeland 	MKK10_MKKA = 0xF7,
1513a702e49SBob Copeland 	MKK6_MKKA1 = 0xF8,
1523a702e49SBob Copeland 	MKK6_FCCA = 0xF9,
1533a702e49SBob Copeland 	MKK7_MKKA1 = 0xFA,
1543a702e49SBob Copeland 	MKK7_FCCA = 0xFB,
1553a702e49SBob Copeland 	MKK9_FCCA = 0xFC,
1563a702e49SBob Copeland 	MKK9_MKKA1 = 0xFD,
1573a702e49SBob Copeland 	MKK9_MKKC = 0xFE,
1583a702e49SBob Copeland 	MKK9_MKKA2 = 0xFF,
1593a702e49SBob Copeland 
1603a702e49SBob Copeland 	WORLD = 0x0199,
1613a702e49SBob Copeland 	DEBUG_REG_DMN = 0x01ff,
1623a702e49SBob Copeland };
1633a702e49SBob Copeland 
1643a702e49SBob Copeland /* Regpair to CTL band mapping */
1653a702e49SBob Copeland static struct reg_dmn_pair_mapping regDomainPairs[] = {
1663a702e49SBob Copeland 	/* regpair, 5 GHz CTL, 2 GHz CTL */
1673a702e49SBob Copeland 	{NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
1683a702e49SBob Copeland 	{NULL1_WORLD, NO_CTL, CTL_ETSI},
1693a702e49SBob Copeland 	{NULL1_ETSIB, NO_CTL, CTL_ETSI},
1703a702e49SBob Copeland 	{NULL1_ETSIC, NO_CTL, CTL_ETSI},
1713a702e49SBob Copeland 
1723a702e49SBob Copeland 	{FCC2_FCCA, CTL_FCC, CTL_FCC},
1733a702e49SBob Copeland 	{FCC2_WORLD, CTL_FCC, CTL_ETSI},
1743a702e49SBob Copeland 	{FCC2_ETSIC, CTL_FCC, CTL_ETSI},
1753a702e49SBob Copeland 	{FCC3_FCCA, CTL_FCC, CTL_FCC},
1763a702e49SBob Copeland 	{FCC3_WORLD, CTL_FCC, CTL_ETSI},
17701fb2994SSven Eckelmann 	{FCC3_ETSIC, CTL_FCC, CTL_ETSI},
1783a702e49SBob Copeland 	{FCC4_FCCA, CTL_FCC, CTL_FCC},
1793a702e49SBob Copeland 	{FCC5_FCCA, CTL_FCC, CTL_FCC},
1803a702e49SBob Copeland 	{FCC6_FCCA, CTL_FCC, CTL_FCC},
1813a702e49SBob Copeland 	{FCC6_WORLD, CTL_FCC, CTL_ETSI},
1823a702e49SBob Copeland 
1833a702e49SBob Copeland 	{ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
1843a702e49SBob Copeland 	{ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
1853a702e49SBob Copeland 	{ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
1863a702e49SBob Copeland 	{ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
1873a702e49SBob Copeland 	{ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
1883a702e49SBob Copeland 	{ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
18945faf6e0SSven Eckelmann 	{ETSI8_WORLD, CTL_ETSI, CTL_ETSI},
190897fab6cSSven Eckelmann 	{ETSI9_WORLD, CTL_ETSI, CTL_ETSI},
1913a702e49SBob Copeland 
1923a702e49SBob Copeland 	/* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
1933a702e49SBob Copeland 	{ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
1943a702e49SBob Copeland 	{FRANCE_RES, CTL_ETSI, CTL_ETSI},
1953a702e49SBob Copeland 
1963a702e49SBob Copeland 	{FCC1_WORLD, CTL_FCC, CTL_ETSI},
1973a702e49SBob Copeland 	{FCC1_FCCA, CTL_FCC, CTL_FCC},
1983a702e49SBob Copeland 	{APL1_WORLD, CTL_FCC, CTL_ETSI},
1993a702e49SBob Copeland 	{APL2_WORLD, CTL_FCC, CTL_ETSI},
2004f183687SSven Eckelmann 	{APL2_FCCA, CTL_FCC, CTL_FCC},
2013a702e49SBob Copeland 	{APL3_WORLD, CTL_FCC, CTL_ETSI},
2023a702e49SBob Copeland 	{APL4_WORLD, CTL_FCC, CTL_ETSI},
2033a702e49SBob Copeland 	{APL5_WORLD, CTL_FCC, CTL_ETSI},
2049ba8df0cSSven Eckelmann 	{APL13_WORLD, CTL_ETSI, CTL_ETSI},
2053a702e49SBob Copeland 	{APL6_WORLD, CTL_ETSI, CTL_ETSI},
2063a702e49SBob Copeland 	{APL8_WORLD, CTL_ETSI, CTL_ETSI},
2073a702e49SBob Copeland 	{APL9_WORLD, CTL_ETSI, CTL_ETSI},
208*dec05cdfSPeter Oh 	{APL10_WORLD, CTL_ETSI, CTL_ETSI},
2093a702e49SBob Copeland 
2103a702e49SBob Copeland 	{APL3_FCCA, CTL_FCC, CTL_FCC},
211bd39a274SChristian Lamparter 	{APL7_FCCA, CTL_FCC, CTL_FCC},
2123a702e49SBob Copeland 	{APL1_ETSIC, CTL_FCC, CTL_ETSI},
2133a702e49SBob Copeland 	{APL2_ETSIC, CTL_FCC, CTL_ETSI},
2143a702e49SBob Copeland 	{APL2_APLD, CTL_FCC, NO_CTL},
2153a702e49SBob Copeland 
2163a702e49SBob Copeland 	{MKK1_MKKA, CTL_MKK, CTL_MKK},
2173a702e49SBob Copeland 	{MKK1_MKKB, CTL_MKK, CTL_MKK},
2183a702e49SBob Copeland 	{MKK1_FCCA, CTL_MKK, CTL_FCC},
2193a702e49SBob Copeland 	{MKK1_MKKA1, CTL_MKK, CTL_MKK},
2203a702e49SBob Copeland 	{MKK1_MKKA2, CTL_MKK, CTL_MKK},
2213a702e49SBob Copeland 	{MKK1_MKKC, CTL_MKK, CTL_MKK},
2223a702e49SBob Copeland 
2233a702e49SBob Copeland 	{MKK2_MKKA, CTL_MKK, CTL_MKK},
2243a702e49SBob Copeland 	{MKK3_MKKA, CTL_MKK, CTL_MKK},
2253a702e49SBob Copeland 	{MKK3_MKKB, CTL_MKK, CTL_MKK},
2263a702e49SBob Copeland 	{MKK3_MKKA1, CTL_MKK, CTL_MKK},
2273a702e49SBob Copeland 	{MKK3_MKKA2, CTL_MKK, CTL_MKK},
2283a702e49SBob Copeland 	{MKK3_MKKC, CTL_MKK, CTL_MKK},
2293a702e49SBob Copeland 	{MKK3_FCCA, CTL_MKK, CTL_FCC},
2303a702e49SBob Copeland 
2313a702e49SBob Copeland 	{MKK4_MKKA, CTL_MKK, CTL_MKK},
2323a702e49SBob Copeland 	{MKK4_MKKB, CTL_MKK, CTL_MKK},
2333a702e49SBob Copeland 	{MKK4_MKKA1, CTL_MKK, CTL_MKK},
2343a702e49SBob Copeland 	{MKK4_MKKA2, CTL_MKK, CTL_MKK},
2353a702e49SBob Copeland 	{MKK4_MKKC, CTL_MKK, CTL_MKK},
2363a702e49SBob Copeland 	{MKK4_FCCA, CTL_MKK, CTL_FCC},
2373a702e49SBob Copeland 
2383a702e49SBob Copeland 	{MKK5_MKKB, CTL_MKK, CTL_MKK},
2393a702e49SBob Copeland 	{MKK5_MKKA2, CTL_MKK, CTL_MKK},
2403a702e49SBob Copeland 	{MKK5_MKKC, CTL_MKK, CTL_MKK},
2413a702e49SBob Copeland 
2423a702e49SBob Copeland 	{MKK6_MKKB, CTL_MKK, CTL_MKK},
2433a702e49SBob Copeland 	{MKK6_MKKA1, CTL_MKK, CTL_MKK},
2443a702e49SBob Copeland 	{MKK6_MKKA2, CTL_MKK, CTL_MKK},
2453a702e49SBob Copeland 	{MKK6_MKKC, CTL_MKK, CTL_MKK},
2463a702e49SBob Copeland 	{MKK6_FCCA, CTL_MKK, CTL_FCC},
2473a702e49SBob Copeland 
2483a702e49SBob Copeland 	{MKK7_MKKB, CTL_MKK, CTL_MKK},
2493a702e49SBob Copeland 	{MKK7_MKKA1, CTL_MKK, CTL_MKK},
2503a702e49SBob Copeland 	{MKK7_MKKA2, CTL_MKK, CTL_MKK},
2513a702e49SBob Copeland 	{MKK7_MKKC, CTL_MKK, CTL_MKK},
2523a702e49SBob Copeland 	{MKK7_FCCA, CTL_MKK, CTL_FCC},
2533a702e49SBob Copeland 
2543a702e49SBob Copeland 	{MKK8_MKKB, CTL_MKK, CTL_MKK},
2553a702e49SBob Copeland 	{MKK8_MKKA2, CTL_MKK, CTL_MKK},
2563a702e49SBob Copeland 	{MKK8_MKKC, CTL_MKK, CTL_MKK},
2573a702e49SBob Copeland 
2583a702e49SBob Copeland 	{MKK9_MKKA, CTL_MKK, CTL_MKK},
2593a702e49SBob Copeland 	{MKK9_FCCA, CTL_MKK, CTL_FCC},
2603a702e49SBob Copeland 	{MKK9_MKKA1, CTL_MKK, CTL_MKK},
2613a702e49SBob Copeland 	{MKK9_MKKA2, CTL_MKK, CTL_MKK},
2623a702e49SBob Copeland 	{MKK9_MKKC, CTL_MKK, CTL_MKK},
2633a702e49SBob Copeland 
2643a702e49SBob Copeland 	{MKK10_MKKA, CTL_MKK, CTL_MKK},
2653a702e49SBob Copeland 	{MKK10_FCCA, CTL_MKK, CTL_FCC},
2663a702e49SBob Copeland 	{MKK10_MKKA1, CTL_MKK, CTL_MKK},
2673a702e49SBob Copeland 	{MKK10_MKKA2, CTL_MKK, CTL_MKK},
2683a702e49SBob Copeland 	{MKK10_MKKC, CTL_MKK, CTL_MKK},
2693a702e49SBob Copeland 
2703a702e49SBob Copeland 	{MKK11_MKKA, CTL_MKK, CTL_MKK},
2713a702e49SBob Copeland 	{MKK11_FCCA, CTL_MKK, CTL_FCC},
2723a702e49SBob Copeland 	{MKK11_MKKA1, CTL_MKK, CTL_MKK},
2733a702e49SBob Copeland 	{MKK11_MKKA2, CTL_MKK, CTL_MKK},
2743a702e49SBob Copeland 	{MKK11_MKKC, CTL_MKK, CTL_MKK},
2753a702e49SBob Copeland 
2763a702e49SBob Copeland 	{MKK12_MKKA, CTL_MKK, CTL_MKK},
2773a702e49SBob Copeland 	{MKK12_FCCA, CTL_MKK, CTL_FCC},
2783a702e49SBob Copeland 	{MKK12_MKKA1, CTL_MKK, CTL_MKK},
2793a702e49SBob Copeland 	{MKK12_MKKA2, CTL_MKK, CTL_MKK},
2803a702e49SBob Copeland 	{MKK12_MKKC, CTL_MKK, CTL_MKK},
2813a702e49SBob Copeland 
2823a702e49SBob Copeland 	{MKK13_MKKB, CTL_MKK, CTL_MKK},
2833a702e49SBob Copeland 	{MKK14_MKKA1, CTL_MKK, CTL_MKK},
2843a702e49SBob Copeland 	{MKK15_MKKA1, CTL_MKK, CTL_MKK},
2853a702e49SBob Copeland 
2863a702e49SBob Copeland 	{WOR0_WORLD, NO_CTL, NO_CTL},
2873a702e49SBob Copeland 	{WOR1_WORLD, NO_CTL, NO_CTL},
2883a702e49SBob Copeland 	{WOR2_WORLD, NO_CTL, NO_CTL},
2893a702e49SBob Copeland 	{WOR3_WORLD, NO_CTL, NO_CTL},
2903a702e49SBob Copeland 	{WOR4_WORLD, NO_CTL, NO_CTL},
2913a702e49SBob Copeland 	{WOR5_ETSIC, NO_CTL, NO_CTL},
2923a702e49SBob Copeland 	{WOR01_WORLD, NO_CTL, NO_CTL},
2933a702e49SBob Copeland 	{WOR02_WORLD, NO_CTL, NO_CTL},
2943a702e49SBob Copeland 	{EU1_WORLD, NO_CTL, NO_CTL},
2953a702e49SBob Copeland 	{WOR9_WORLD, NO_CTL, NO_CTL},
2963a702e49SBob Copeland 	{WORA_WORLD, NO_CTL, NO_CTL},
2973a702e49SBob Copeland 	{WORB_WORLD, NO_CTL, NO_CTL},
29834a0a202SSenthil Balasubramanian 	{WORC_WORLD, NO_CTL, NO_CTL},
2993a702e49SBob Copeland };
3003a702e49SBob Copeland 
3013a702e49SBob Copeland static struct country_code_to_enum_rd allCountries[] = {
3023a702e49SBob Copeland 	{CTRY_DEBUG, NO_ENUMRD, "DB"},
3033a702e49SBob Copeland 	{CTRY_DEFAULT, FCC1_FCCA, "CO"},
304fed8f5e8SSven Eckelmann 	{CTRY_ALBANIA, ETSI1_WORLD, "AL"},
305485daee9SSven Eckelmann 	{CTRY_ALGERIA, APL13_WORLD, "DZ"},
306bd6b4442SVivek Natarajan 	{CTRY_ARGENTINA, FCC3_WORLD, "AR"},
3073a702e49SBob Copeland 	{CTRY_ARMENIA, ETSI4_WORLD, "AM"},
308bd6b4442SVivek Natarajan 	{CTRY_ARUBA, ETSI1_WORLD, "AW"},
3098120cc0bSSven Eckelmann 	{CTRY_AUSTRALIA, FCC3_WORLD, "AU"},
3103a702e49SBob Copeland 	{CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
3113a702e49SBob Copeland 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
3123a702e49SBob Copeland 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
313699e2302SSven Eckelmann 	{CTRY_BAHAMAS, FCC3_WORLD, "BS"},
3143a702e49SBob Copeland 	{CTRY_BAHRAIN, APL6_WORLD, "BH"},
3151507b328SSven Eckelmann 	{CTRY_BANGLADESH, APL1_WORLD, "BD"},
316bd6b4442SVivek Natarajan 	{CTRY_BARBADOS, FCC2_WORLD, "BB"},
3173a702e49SBob Copeland 	{CTRY_BELARUS, ETSI1_WORLD, "BY"},
3183a702e49SBob Copeland 	{CTRY_BELGIUM, ETSI1_WORLD, "BE"},
3193a702e49SBob Copeland 	{CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
3203a702e49SBob Copeland 	{CTRY_BELIZE, APL1_ETSIC, "BZ"},
3219c790f2dSSven Eckelmann 	{CTRY_BERMUDA, FCC3_FCCA, "BM"},
3223a702e49SBob Copeland 	{CTRY_BOLIVIA, APL1_ETSIC, "BO"},
3233a702e49SBob Copeland 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
3243a702e49SBob Copeland 	{CTRY_BRAZIL, FCC3_WORLD, "BR"},
32537090d94SSven Eckelmann 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN"},
326fed60f81SSven Eckelmann 	{CTRY_BULGARIA, ETSI1_WORLD, "BG"},
327bd6b4442SVivek Natarajan 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
328bd6b4442SVivek Natarajan 	{CTRY_CANADA, FCC3_FCCA, "CA"},
3293a702e49SBob Copeland 	{CTRY_CANADA2, FCC6_FCCA, "CA"},
3303a702e49SBob Copeland 	{CTRY_CHILE, APL6_WORLD, "CL"},
3313a702e49SBob Copeland 	{CTRY_CHINA, APL1_WORLD, "CN"},
332515e9686SSven Eckelmann 	{CTRY_COLOMBIA, FCC3_WORLD, "CO"},
3333a702e49SBob Copeland 	{CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
334bd6b4442SVivek Natarajan 	{CTRY_CROATIA, ETSI1_WORLD, "HR"},
3353a702e49SBob Copeland 	{CTRY_CYPRUS, ETSI1_WORLD, "CY"},
3360fa31a86SSven Eckelmann 	{CTRY_CZECH, ETSI1_WORLD, "CZ"},
3373a702e49SBob Copeland 	{CTRY_DENMARK, ETSI1_WORLD, "DK"},
3383a702e49SBob Copeland 	{CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO"},
3393a702e49SBob Copeland 	{CTRY_ECUADOR, FCC1_WORLD, "EC"},
3403a702e49SBob Copeland 	{CTRY_EGYPT, ETSI3_WORLD, "EG"},
3413a702e49SBob Copeland 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
3423a702e49SBob Copeland 	{CTRY_ESTONIA, ETSI1_WORLD, "EE"},
3433a702e49SBob Copeland 	{CTRY_FINLAND, ETSI1_WORLD, "FI"},
3443a702e49SBob Copeland 	{CTRY_FRANCE, ETSI1_WORLD, "FR"},
3453a702e49SBob Copeland 	{CTRY_GEORGIA, ETSI4_WORLD, "GE"},
3463a702e49SBob Copeland 	{CTRY_GERMANY, ETSI1_WORLD, "DE"},
3473a702e49SBob Copeland 	{CTRY_GREECE, ETSI1_WORLD, "GR"},
348bd6b4442SVivek Natarajan 	{CTRY_GREENLAND, ETSI1_WORLD, "GL"},
349d601d9caSPavel Roskin 	{CTRY_GRENADA, FCC3_FCCA, "GD"},
350bd6b4442SVivek Natarajan 	{CTRY_GUAM, FCC1_FCCA, "GU"},
3513a702e49SBob Copeland 	{CTRY_GUATEMALA, FCC1_FCCA, "GT"},
352bd6b4442SVivek Natarajan 	{CTRY_HAITI, ETSI1_WORLD, "HT"},
353143a9b9bSSven Eckelmann 	{CTRY_HONDURAS, FCC3_WORLD, "HN"},
354bd6b4442SVivek Natarajan 	{CTRY_HONG_KONG, FCC3_WORLD, "HK"},
3553a702e49SBob Copeland 	{CTRY_HUNGARY, ETSI1_WORLD, "HU"},
3563a702e49SBob Copeland 	{CTRY_ICELAND, ETSI1_WORLD, "IS"},
3573a702e49SBob Copeland 	{CTRY_INDIA, APL6_WORLD, "IN"},
358bd6b4442SVivek Natarajan 	{CTRY_INDONESIA, NULL1_WORLD, "ID"},
3593a702e49SBob Copeland 	{CTRY_IRAN, APL1_WORLD, "IR"},
3603a702e49SBob Copeland 	{CTRY_IRELAND, ETSI1_WORLD, "IE"},
36162ba2b22SSven Eckelmann 	{CTRY_ISRAEL, ETSI3_WORLD, "IL"},
3623a702e49SBob Copeland 	{CTRY_ITALY, ETSI1_WORLD, "IT"},
363bd6b4442SVivek Natarajan 	{CTRY_JAMAICA, FCC3_WORLD, "JM"},
3643a702e49SBob Copeland 
3653a702e49SBob Copeland 	{CTRY_JAPAN, MKK1_MKKA, "JP"},
3663a702e49SBob Copeland 	{CTRY_JAPAN1, MKK1_MKKB, "JP"},
3673a702e49SBob Copeland 	{CTRY_JAPAN2, MKK1_FCCA, "JP"},
3683a702e49SBob Copeland 	{CTRY_JAPAN3, MKK2_MKKA, "JP"},
3693a702e49SBob Copeland 	{CTRY_JAPAN4, MKK1_MKKA1, "JP"},
3703a702e49SBob Copeland 	{CTRY_JAPAN5, MKK1_MKKA2, "JP"},
3713a702e49SBob Copeland 	{CTRY_JAPAN6, MKK1_MKKC, "JP"},
3723a702e49SBob Copeland 	{CTRY_JAPAN7, MKK3_MKKB, "JP"},
3733a702e49SBob Copeland 	{CTRY_JAPAN8, MKK3_MKKA2, "JP"},
3743a702e49SBob Copeland 	{CTRY_JAPAN9, MKK3_MKKC, "JP"},
3753a702e49SBob Copeland 	{CTRY_JAPAN10, MKK4_MKKB, "JP"},
3763a702e49SBob Copeland 	{CTRY_JAPAN11, MKK4_MKKA2, "JP"},
3773a702e49SBob Copeland 	{CTRY_JAPAN12, MKK4_MKKC, "JP"},
3783a702e49SBob Copeland 	{CTRY_JAPAN13, MKK5_MKKB, "JP"},
3793a702e49SBob Copeland 	{CTRY_JAPAN14, MKK5_MKKA2, "JP"},
3803a702e49SBob Copeland 	{CTRY_JAPAN15, MKK5_MKKC, "JP"},
3813a702e49SBob Copeland 	{CTRY_JAPAN16, MKK6_MKKB, "JP"},
3823a702e49SBob Copeland 	{CTRY_JAPAN17, MKK6_MKKA2, "JP"},
3833a702e49SBob Copeland 	{CTRY_JAPAN18, MKK6_MKKC, "JP"},
3843a702e49SBob Copeland 	{CTRY_JAPAN19, MKK7_MKKB, "JP"},
3853a702e49SBob Copeland 	{CTRY_JAPAN20, MKK7_MKKA2, "JP"},
3863a702e49SBob Copeland 	{CTRY_JAPAN21, MKK7_MKKC, "JP"},
3873a702e49SBob Copeland 	{CTRY_JAPAN22, MKK8_MKKB, "JP"},
3883a702e49SBob Copeland 	{CTRY_JAPAN23, MKK8_MKKA2, "JP"},
3893a702e49SBob Copeland 	{CTRY_JAPAN24, MKK8_MKKC, "JP"},
3903a702e49SBob Copeland 	{CTRY_JAPAN25, MKK3_MKKA, "JP"},
3913a702e49SBob Copeland 	{CTRY_JAPAN26, MKK3_MKKA1, "JP"},
3923a702e49SBob Copeland 	{CTRY_JAPAN27, MKK3_FCCA, "JP"},
3933a702e49SBob Copeland 	{CTRY_JAPAN28, MKK4_MKKA1, "JP"},
3943a702e49SBob Copeland 	{CTRY_JAPAN29, MKK4_FCCA, "JP"},
3953a702e49SBob Copeland 	{CTRY_JAPAN30, MKK6_MKKA1, "JP"},
3963a702e49SBob Copeland 	{CTRY_JAPAN31, MKK6_FCCA, "JP"},
3973a702e49SBob Copeland 	{CTRY_JAPAN32, MKK7_MKKA1, "JP"},
3983a702e49SBob Copeland 	{CTRY_JAPAN33, MKK7_FCCA, "JP"},
3993a702e49SBob Copeland 	{CTRY_JAPAN34, MKK9_MKKA, "JP"},
4003a702e49SBob Copeland 	{CTRY_JAPAN35, MKK10_MKKA, "JP"},
4013a702e49SBob Copeland 	{CTRY_JAPAN36, MKK4_MKKA, "JP"},
4023a702e49SBob Copeland 	{CTRY_JAPAN37, MKK9_FCCA, "JP"},
4033a702e49SBob Copeland 	{CTRY_JAPAN38, MKK9_MKKA1, "JP"},
4043a702e49SBob Copeland 	{CTRY_JAPAN39, MKK9_MKKC, "JP"},
4053a702e49SBob Copeland 	{CTRY_JAPAN40, MKK9_MKKA2, "JP"},
4063a702e49SBob Copeland 	{CTRY_JAPAN41, MKK10_FCCA, "JP"},
4073a702e49SBob Copeland 	{CTRY_JAPAN42, MKK10_MKKA1, "JP"},
4083a702e49SBob Copeland 	{CTRY_JAPAN43, MKK10_MKKC, "JP"},
4093a702e49SBob Copeland 	{CTRY_JAPAN44, MKK10_MKKA2, "JP"},
4103a702e49SBob Copeland 	{CTRY_JAPAN45, MKK11_MKKA, "JP"},
4113a702e49SBob Copeland 	{CTRY_JAPAN46, MKK11_FCCA, "JP"},
4123a702e49SBob Copeland 	{CTRY_JAPAN47, MKK11_MKKA1, "JP"},
4133a702e49SBob Copeland 	{CTRY_JAPAN48, MKK11_MKKC, "JP"},
4143a702e49SBob Copeland 	{CTRY_JAPAN49, MKK11_MKKA2, "JP"},
4153a702e49SBob Copeland 	{CTRY_JAPAN50, MKK12_MKKA, "JP"},
4163a702e49SBob Copeland 	{CTRY_JAPAN51, MKK12_FCCA, "JP"},
4173a702e49SBob Copeland 	{CTRY_JAPAN52, MKK12_MKKA1, "JP"},
4183a702e49SBob Copeland 	{CTRY_JAPAN53, MKK12_MKKC, "JP"},
4193a702e49SBob Copeland 	{CTRY_JAPAN54, MKK12_MKKA2, "JP"},
4203a702e49SBob Copeland 	{CTRY_JAPAN57, MKK13_MKKB, "JP"},
4213a702e49SBob Copeland 	{CTRY_JAPAN58, MKK14_MKKA1, "JP"},
4223a702e49SBob Copeland 	{CTRY_JAPAN59, MKK15_MKKA1, "JP"},
4233a702e49SBob Copeland 
4243a702e49SBob Copeland 	{CTRY_JORDAN, ETSI2_WORLD, "JO"},
4253a702e49SBob Copeland 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
426b840fa91SSven Eckelmann 	{CTRY_KENYA, APL1_WORLD, "KE"},
4273a702e49SBob Copeland 	{CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
4283a702e49SBob Copeland 	{CTRY_KOREA_ROC, APL9_WORLD, "KR"},
4293a702e49SBob Copeland 	{CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
4303a702e49SBob Copeland 	{CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
431*dec05cdfSPeter Oh 	{CTRY_KOREA_ROC4, APL10_WORLD, "K4"},
432bd6b4442SVivek Natarajan 	{CTRY_KUWAIT, ETSI3_WORLD, "KW"},
4333a702e49SBob Copeland 	{CTRY_LATVIA, ETSI1_WORLD, "LV"},
4343a702e49SBob Copeland 	{CTRY_LEBANON, NULL1_WORLD, "LB"},
4353a702e49SBob Copeland 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI"},
4363a702e49SBob Copeland 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
4373a702e49SBob Copeland 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
4383a702e49SBob Copeland 	{CTRY_MACAU, FCC2_WORLD, "MO"},
43964874ed2SSven Eckelmann 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK"},
440823a6406SSven Eckelmann 	{CTRY_MALAYSIA, FCC1_WORLD, "MY"},
4413a702e49SBob Copeland 	{CTRY_MALTA, ETSI1_WORLD, "MT"},
442a71c984bSSven Eckelmann 	{CTRY_MAURITIUS, ETSI1_WORLD, "MU"},
4433a702e49SBob Copeland 	{CTRY_MEXICO, FCC1_FCCA, "MX"},
4443a702e49SBob Copeland 	{CTRY_MONACO, ETSI4_WORLD, "MC"},
445a0a6f2a9SSven Eckelmann 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME"},
446bd6b4442SVivek Natarajan 	{CTRY_MOROCCO, APL4_WORLD, "MA"},
4473a702e49SBob Copeland 	{CTRY_NEPAL, APL1_WORLD, "NP"},
4483a702e49SBob Copeland 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
4493a702e49SBob Copeland 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN"},
4509bfc2bb3SSven Eckelmann 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ"},
451a20f1338SSven Eckelmann 	{CTRY_NICARAGUA, FCC3_FCCA, "NI"},
4523a702e49SBob Copeland 	{CTRY_NORWAY, ETSI1_WORLD, "NO"},
453bd6b4442SVivek Natarajan 	{CTRY_OMAN, FCC3_WORLD, "OM"},
4543a702e49SBob Copeland 	{CTRY_PAKISTAN, NULL1_WORLD, "PK"},
4553a702e49SBob Copeland 	{CTRY_PANAMA, FCC1_FCCA, "PA"},
4563a702e49SBob Copeland 	{CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG"},
45767a95668SSven Eckelmann 	{CTRY_PARAGUAY, FCC3_WORLD, "PY"},
458b5c11e47SSven Eckelmann 	{CTRY_PERU, FCC3_WORLD, "PE"},
459c454d4c2SSven Eckelmann 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH"},
4603a702e49SBob Copeland 	{CTRY_POLAND, ETSI1_WORLD, "PL"},
4613a702e49SBob Copeland 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
4623a702e49SBob Copeland 	{CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
463bd6b4442SVivek Natarajan 	{CTRY_QATAR, APL1_WORLD, "QA"},
46412f41556SSven Eckelmann 	{CTRY_ROMANIA, ETSI1_WORLD, "RO"},
465b7e01513SSven Eckelmann 	{CTRY_RUSSIA, ETSI8_WORLD, "RU"},
4663a702e49SBob Copeland 	{CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
4672a3169a5SSven Eckelmann 	{CTRY_SERBIA, ETSI1_WORLD, "RS"},
4683a702e49SBob Copeland 	{CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
469054e0778SSven Eckelmann 	{CTRY_SINGAPORE, FCC3_WORLD, "SG"},
4703a702e49SBob Copeland 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
4713a702e49SBob Copeland 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
4723a702e49SBob Copeland 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
4733a702e49SBob Copeland 	{CTRY_SPAIN, ETSI1_WORLD, "ES"},
4743a702e49SBob Copeland 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
4753a702e49SBob Copeland 	{CTRY_SWEDEN, ETSI1_WORLD, "SE"},
4763a702e49SBob Copeland 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
4773a702e49SBob Copeland 	{CTRY_SYRIA, NULL1_WORLD, "SY"},
4783a702e49SBob Copeland 	{CTRY_TAIWAN, APL3_FCCA, "TW"},
479667ddac5SSven Eckelmann 	{CTRY_TANZANIA, APL1_WORLD, "TZ"},
48058d30d14SLuis R. Rodriguez 	{CTRY_THAILAND, FCC3_WORLD, "TH"},
481bd6b4442SVivek Natarajan 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
4823a702e49SBob Copeland 	{CTRY_TUNISIA, ETSI3_WORLD, "TN"},
4833a702e49SBob Copeland 	{CTRY_TURKEY, ETSI3_WORLD, "TR"},
4841ea3986aSSven Eckelmann 	{CTRY_UGANDA, FCC3_WORLD, "UG"},
4854e78075cSSven Eckelmann 	{CTRY_UKRAINE, ETSI9_WORLD, "UA"},
4863a702e49SBob Copeland 	{CTRY_UAE, NULL1_WORLD, "AE"},
4873a702e49SBob Copeland 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
4883a702e49SBob Copeland 	{CTRY_UNITED_STATES, FCC3_FCCA, "US"},
48962a2c135SOever Gonzalez 	{CTRY_UNITED_STATES2, FCC3_FCCA, "US"},
49062a2c135SOever Gonzalez 	{CTRY_UNITED_STATES3, FCC3_FCCA, "US"},
4913a702e49SBob Copeland 	/* This "PS" is for US public safety actually... to support this we
4923a702e49SBob Copeland 	 * would need to assign new special alpha2 to CRDA db as with the world
4933a702e49SBob Copeland 	 * regdomain and use another alpha2 */
4943a702e49SBob Copeland 	{CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS"},
495bd6b4442SVivek Natarajan 	{CTRY_URUGUAY, FCC3_WORLD, "UY"},
4963a702e49SBob Copeland 	{CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
4973a702e49SBob Copeland 	{CTRY_VENEZUELA, APL2_ETSIC, "VE"},
4983a702e49SBob Copeland 	{CTRY_VIET_NAM, NULL1_WORLD, "VN"},
4993a702e49SBob Copeland 	{CTRY_YEMEN, NULL1_WORLD, "YE"},
500f1abff21SSven Eckelmann 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW"},
5013a702e49SBob Copeland };
5023a702e49SBob Copeland 
5033a702e49SBob Copeland #endif
504