xref: /linux/drivers/net/wireless/ath/regd_common.h (revision 9bfc2bb3)
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,
793a702e49SBob Copeland 
803a702e49SBob Copeland 	WOR0_WORLD = 0x60,
813a702e49SBob Copeland 	WOR1_WORLD = 0x61,
823a702e49SBob Copeland 	WOR2_WORLD = 0x62,
833a702e49SBob Copeland 	WOR3_WORLD = 0x63,
843a702e49SBob Copeland 	WOR4_WORLD = 0x64,
853a702e49SBob Copeland 	WOR5_ETSIC = 0x65,
863a702e49SBob Copeland 
873a702e49SBob Copeland 	WOR01_WORLD = 0x66,
883a702e49SBob Copeland 	WOR02_WORLD = 0x67,
893a702e49SBob Copeland 	EU1_WORLD = 0x68,
903a702e49SBob Copeland 
913a702e49SBob Copeland 	WOR9_WORLD = 0x69,
923a702e49SBob Copeland 	WORA_WORLD = 0x6A,
933a702e49SBob Copeland 	WORB_WORLD = 0x6B,
9434a0a202SSenthil Balasubramanian 	WORC_WORLD = 0x6C,
953a702e49SBob Copeland 
963a702e49SBob Copeland 	MKK3_MKKB = 0x80,
973a702e49SBob Copeland 	MKK3_MKKA2 = 0x81,
983a702e49SBob Copeland 	MKK3_MKKC = 0x82,
993a702e49SBob Copeland 
1003a702e49SBob Copeland 	MKK4_MKKB = 0x83,
1013a702e49SBob Copeland 	MKK4_MKKA2 = 0x84,
1023a702e49SBob Copeland 	MKK4_MKKC = 0x85,
1033a702e49SBob Copeland 
1043a702e49SBob Copeland 	MKK5_MKKB = 0x86,
1053a702e49SBob Copeland 	MKK5_MKKA2 = 0x87,
1063a702e49SBob Copeland 	MKK5_MKKC = 0x88,
1073a702e49SBob Copeland 
1083a702e49SBob Copeland 	MKK6_MKKB = 0x89,
1093a702e49SBob Copeland 	MKK6_MKKA2 = 0x8A,
1103a702e49SBob Copeland 	MKK6_MKKC = 0x8B,
1113a702e49SBob Copeland 
1123a702e49SBob Copeland 	MKK7_MKKB = 0x8C,
1133a702e49SBob Copeland 	MKK7_MKKA2 = 0x8D,
1143a702e49SBob Copeland 	MKK7_MKKC = 0x8E,
1153a702e49SBob Copeland 
1163a702e49SBob Copeland 	MKK8_MKKB = 0x8F,
1173a702e49SBob Copeland 	MKK8_MKKA2 = 0x90,
1183a702e49SBob Copeland 	MKK8_MKKC = 0x91,
1193a702e49SBob Copeland 
1203a702e49SBob Copeland 	MKK14_MKKA1 = 0x92,
1213a702e49SBob Copeland 	MKK15_MKKA1 = 0x93,
1223a702e49SBob Copeland 
1233a702e49SBob Copeland 	MKK10_FCCA = 0xD0,
1243a702e49SBob Copeland 	MKK10_MKKA1 = 0xD1,
1253a702e49SBob Copeland 	MKK10_MKKC = 0xD2,
1263a702e49SBob Copeland 	MKK10_MKKA2 = 0xD3,
1273a702e49SBob Copeland 
1283a702e49SBob Copeland 	MKK11_MKKA = 0xD4,
1293a702e49SBob Copeland 	MKK11_FCCA = 0xD5,
1303a702e49SBob Copeland 	MKK11_MKKA1 = 0xD6,
1313a702e49SBob Copeland 	MKK11_MKKC = 0xD7,
1323a702e49SBob Copeland 	MKK11_MKKA2 = 0xD8,
1333a702e49SBob Copeland 
1343a702e49SBob Copeland 	MKK12_MKKA = 0xD9,
1353a702e49SBob Copeland 	MKK12_FCCA = 0xDA,
1363a702e49SBob Copeland 	MKK12_MKKA1 = 0xDB,
1373a702e49SBob Copeland 	MKK12_MKKC = 0xDC,
1383a702e49SBob Copeland 	MKK12_MKKA2 = 0xDD,
1393a702e49SBob Copeland 
1403a702e49SBob Copeland 	MKK13_MKKB = 0xDE,
1413a702e49SBob Copeland 
1423a702e49SBob Copeland 	MKK3_MKKA = 0xF0,
1433a702e49SBob Copeland 	MKK3_MKKA1 = 0xF1,
1443a702e49SBob Copeland 	MKK3_FCCA = 0xF2,
1453a702e49SBob Copeland 	MKK4_MKKA = 0xF3,
1463a702e49SBob Copeland 	MKK4_MKKA1 = 0xF4,
1473a702e49SBob Copeland 	MKK4_FCCA = 0xF5,
1483a702e49SBob Copeland 	MKK9_MKKA = 0xF6,
1493a702e49SBob Copeland 	MKK10_MKKA = 0xF7,
1503a702e49SBob Copeland 	MKK6_MKKA1 = 0xF8,
1513a702e49SBob Copeland 	MKK6_FCCA = 0xF9,
1523a702e49SBob Copeland 	MKK7_MKKA1 = 0xFA,
1533a702e49SBob Copeland 	MKK7_FCCA = 0xFB,
1543a702e49SBob Copeland 	MKK9_FCCA = 0xFC,
1553a702e49SBob Copeland 	MKK9_MKKA1 = 0xFD,
1563a702e49SBob Copeland 	MKK9_MKKC = 0xFE,
1573a702e49SBob Copeland 	MKK9_MKKA2 = 0xFF,
1583a702e49SBob Copeland 
1593a702e49SBob Copeland 	WORLD = 0x0199,
1603a702e49SBob Copeland 	DEBUG_REG_DMN = 0x01ff,
1613a702e49SBob Copeland };
1623a702e49SBob Copeland 
1633a702e49SBob Copeland /* Regpair to CTL band mapping */
1643a702e49SBob Copeland static struct reg_dmn_pair_mapping regDomainPairs[] = {
1653a702e49SBob Copeland 	/* regpair, 5 GHz CTL, 2 GHz CTL */
1663a702e49SBob Copeland 	{NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
1673a702e49SBob Copeland 	{NULL1_WORLD, NO_CTL, CTL_ETSI},
1683a702e49SBob Copeland 	{NULL1_ETSIB, NO_CTL, CTL_ETSI},
1693a702e49SBob Copeland 	{NULL1_ETSIC, NO_CTL, CTL_ETSI},
1703a702e49SBob Copeland 
1713a702e49SBob Copeland 	{FCC2_FCCA, CTL_FCC, CTL_FCC},
1723a702e49SBob Copeland 	{FCC2_WORLD, CTL_FCC, CTL_ETSI},
1733a702e49SBob Copeland 	{FCC2_ETSIC, CTL_FCC, CTL_ETSI},
1743a702e49SBob Copeland 	{FCC3_FCCA, CTL_FCC, CTL_FCC},
1753a702e49SBob Copeland 	{FCC3_WORLD, CTL_FCC, CTL_ETSI},
17601fb2994SSven Eckelmann 	{FCC3_ETSIC, CTL_FCC, CTL_ETSI},
1773a702e49SBob Copeland 	{FCC4_FCCA, CTL_FCC, CTL_FCC},
1783a702e49SBob Copeland 	{FCC5_FCCA, CTL_FCC, CTL_FCC},
1793a702e49SBob Copeland 	{FCC6_FCCA, CTL_FCC, CTL_FCC},
1803a702e49SBob Copeland 	{FCC6_WORLD, CTL_FCC, CTL_ETSI},
1813a702e49SBob Copeland 
1823a702e49SBob Copeland 	{ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
1833a702e49SBob Copeland 	{ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
1843a702e49SBob Copeland 	{ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
1853a702e49SBob Copeland 	{ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
1863a702e49SBob Copeland 	{ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
1873a702e49SBob Copeland 	{ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
18845faf6e0SSven Eckelmann 	{ETSI8_WORLD, CTL_ETSI, CTL_ETSI},
189897fab6cSSven Eckelmann 	{ETSI9_WORLD, CTL_ETSI, CTL_ETSI},
1903a702e49SBob Copeland 
1913a702e49SBob Copeland 	/* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
1923a702e49SBob Copeland 	{ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
1933a702e49SBob Copeland 	{FRANCE_RES, CTL_ETSI, CTL_ETSI},
1943a702e49SBob Copeland 
1953a702e49SBob Copeland 	{FCC1_WORLD, CTL_FCC, CTL_ETSI},
1963a702e49SBob Copeland 	{FCC1_FCCA, CTL_FCC, CTL_FCC},
1973a702e49SBob Copeland 	{APL1_WORLD, CTL_FCC, CTL_ETSI},
1983a702e49SBob Copeland 	{APL2_WORLD, CTL_FCC, CTL_ETSI},
1994f183687SSven Eckelmann 	{APL2_FCCA, CTL_FCC, CTL_FCC},
2003a702e49SBob Copeland 	{APL3_WORLD, CTL_FCC, CTL_ETSI},
2013a702e49SBob Copeland 	{APL4_WORLD, CTL_FCC, CTL_ETSI},
2023a702e49SBob Copeland 	{APL5_WORLD, CTL_FCC, CTL_ETSI},
2039ba8df0cSSven Eckelmann 	{APL13_WORLD, CTL_ETSI, CTL_ETSI},
2043a702e49SBob Copeland 	{APL6_WORLD, CTL_ETSI, CTL_ETSI},
2053a702e49SBob Copeland 	{APL8_WORLD, CTL_ETSI, CTL_ETSI},
2063a702e49SBob Copeland 	{APL9_WORLD, CTL_ETSI, CTL_ETSI},
2073a702e49SBob Copeland 
2083a702e49SBob Copeland 	{APL3_FCCA, CTL_FCC, CTL_FCC},
209bd39a274SChristian Lamparter 	{APL7_FCCA, CTL_FCC, CTL_FCC},
2103a702e49SBob Copeland 	{APL1_ETSIC, CTL_FCC, CTL_ETSI},
2113a702e49SBob Copeland 	{APL2_ETSIC, CTL_FCC, CTL_ETSI},
2123a702e49SBob Copeland 	{APL2_APLD, CTL_FCC, NO_CTL},
2133a702e49SBob Copeland 
2143a702e49SBob Copeland 	{MKK1_MKKA, CTL_MKK, CTL_MKK},
2153a702e49SBob Copeland 	{MKK1_MKKB, CTL_MKK, CTL_MKK},
2163a702e49SBob Copeland 	{MKK1_FCCA, CTL_MKK, CTL_FCC},
2173a702e49SBob Copeland 	{MKK1_MKKA1, CTL_MKK, CTL_MKK},
2183a702e49SBob Copeland 	{MKK1_MKKA2, CTL_MKK, CTL_MKK},
2193a702e49SBob Copeland 	{MKK1_MKKC, CTL_MKK, CTL_MKK},
2203a702e49SBob Copeland 
2213a702e49SBob Copeland 	{MKK2_MKKA, CTL_MKK, CTL_MKK},
2223a702e49SBob Copeland 	{MKK3_MKKA, CTL_MKK, CTL_MKK},
2233a702e49SBob Copeland 	{MKK3_MKKB, CTL_MKK, CTL_MKK},
2243a702e49SBob Copeland 	{MKK3_MKKA1, CTL_MKK, CTL_MKK},
2253a702e49SBob Copeland 	{MKK3_MKKA2, CTL_MKK, CTL_MKK},
2263a702e49SBob Copeland 	{MKK3_MKKC, CTL_MKK, CTL_MKK},
2273a702e49SBob Copeland 	{MKK3_FCCA, CTL_MKK, CTL_FCC},
2283a702e49SBob Copeland 
2293a702e49SBob Copeland 	{MKK4_MKKA, CTL_MKK, CTL_MKK},
2303a702e49SBob Copeland 	{MKK4_MKKB, CTL_MKK, CTL_MKK},
2313a702e49SBob Copeland 	{MKK4_MKKA1, CTL_MKK, CTL_MKK},
2323a702e49SBob Copeland 	{MKK4_MKKA2, CTL_MKK, CTL_MKK},
2333a702e49SBob Copeland 	{MKK4_MKKC, CTL_MKK, CTL_MKK},
2343a702e49SBob Copeland 	{MKK4_FCCA, CTL_MKK, CTL_FCC},
2353a702e49SBob Copeland 
2363a702e49SBob Copeland 	{MKK5_MKKB, CTL_MKK, CTL_MKK},
2373a702e49SBob Copeland 	{MKK5_MKKA2, CTL_MKK, CTL_MKK},
2383a702e49SBob Copeland 	{MKK5_MKKC, CTL_MKK, CTL_MKK},
2393a702e49SBob Copeland 
2403a702e49SBob Copeland 	{MKK6_MKKB, CTL_MKK, CTL_MKK},
2413a702e49SBob Copeland 	{MKK6_MKKA1, CTL_MKK, CTL_MKK},
2423a702e49SBob Copeland 	{MKK6_MKKA2, CTL_MKK, CTL_MKK},
2433a702e49SBob Copeland 	{MKK6_MKKC, CTL_MKK, CTL_MKK},
2443a702e49SBob Copeland 	{MKK6_FCCA, CTL_MKK, CTL_FCC},
2453a702e49SBob Copeland 
2463a702e49SBob Copeland 	{MKK7_MKKB, CTL_MKK, CTL_MKK},
2473a702e49SBob Copeland 	{MKK7_MKKA1, CTL_MKK, CTL_MKK},
2483a702e49SBob Copeland 	{MKK7_MKKA2, CTL_MKK, CTL_MKK},
2493a702e49SBob Copeland 	{MKK7_MKKC, CTL_MKK, CTL_MKK},
2503a702e49SBob Copeland 	{MKK7_FCCA, CTL_MKK, CTL_FCC},
2513a702e49SBob Copeland 
2523a702e49SBob Copeland 	{MKK8_MKKB, CTL_MKK, CTL_MKK},
2533a702e49SBob Copeland 	{MKK8_MKKA2, CTL_MKK, CTL_MKK},
2543a702e49SBob Copeland 	{MKK8_MKKC, CTL_MKK, CTL_MKK},
2553a702e49SBob Copeland 
2563a702e49SBob Copeland 	{MKK9_MKKA, CTL_MKK, CTL_MKK},
2573a702e49SBob Copeland 	{MKK9_FCCA, CTL_MKK, CTL_FCC},
2583a702e49SBob Copeland 	{MKK9_MKKA1, CTL_MKK, CTL_MKK},
2593a702e49SBob Copeland 	{MKK9_MKKA2, CTL_MKK, CTL_MKK},
2603a702e49SBob Copeland 	{MKK9_MKKC, CTL_MKK, CTL_MKK},
2613a702e49SBob Copeland 
2623a702e49SBob Copeland 	{MKK10_MKKA, CTL_MKK, CTL_MKK},
2633a702e49SBob Copeland 	{MKK10_FCCA, CTL_MKK, CTL_FCC},
2643a702e49SBob Copeland 	{MKK10_MKKA1, CTL_MKK, CTL_MKK},
2653a702e49SBob Copeland 	{MKK10_MKKA2, CTL_MKK, CTL_MKK},
2663a702e49SBob Copeland 	{MKK10_MKKC, CTL_MKK, CTL_MKK},
2673a702e49SBob Copeland 
2683a702e49SBob Copeland 	{MKK11_MKKA, CTL_MKK, CTL_MKK},
2693a702e49SBob Copeland 	{MKK11_FCCA, CTL_MKK, CTL_FCC},
2703a702e49SBob Copeland 	{MKK11_MKKA1, CTL_MKK, CTL_MKK},
2713a702e49SBob Copeland 	{MKK11_MKKA2, CTL_MKK, CTL_MKK},
2723a702e49SBob Copeland 	{MKK11_MKKC, CTL_MKK, CTL_MKK},
2733a702e49SBob Copeland 
2743a702e49SBob Copeland 	{MKK12_MKKA, CTL_MKK, CTL_MKK},
2753a702e49SBob Copeland 	{MKK12_FCCA, CTL_MKK, CTL_FCC},
2763a702e49SBob Copeland 	{MKK12_MKKA1, CTL_MKK, CTL_MKK},
2773a702e49SBob Copeland 	{MKK12_MKKA2, CTL_MKK, CTL_MKK},
2783a702e49SBob Copeland 	{MKK12_MKKC, CTL_MKK, CTL_MKK},
2793a702e49SBob Copeland 
2803a702e49SBob Copeland 	{MKK13_MKKB, CTL_MKK, CTL_MKK},
2813a702e49SBob Copeland 	{MKK14_MKKA1, CTL_MKK, CTL_MKK},
2823a702e49SBob Copeland 	{MKK15_MKKA1, CTL_MKK, CTL_MKK},
2833a702e49SBob Copeland 
2843a702e49SBob Copeland 	{WOR0_WORLD, NO_CTL, NO_CTL},
2853a702e49SBob Copeland 	{WOR1_WORLD, NO_CTL, NO_CTL},
2863a702e49SBob Copeland 	{WOR2_WORLD, NO_CTL, NO_CTL},
2873a702e49SBob Copeland 	{WOR3_WORLD, NO_CTL, NO_CTL},
2883a702e49SBob Copeland 	{WOR4_WORLD, NO_CTL, NO_CTL},
2893a702e49SBob Copeland 	{WOR5_ETSIC, NO_CTL, NO_CTL},
2903a702e49SBob Copeland 	{WOR01_WORLD, NO_CTL, NO_CTL},
2913a702e49SBob Copeland 	{WOR02_WORLD, NO_CTL, NO_CTL},
2923a702e49SBob Copeland 	{EU1_WORLD, NO_CTL, NO_CTL},
2933a702e49SBob Copeland 	{WOR9_WORLD, NO_CTL, NO_CTL},
2943a702e49SBob Copeland 	{WORA_WORLD, NO_CTL, NO_CTL},
2953a702e49SBob Copeland 	{WORB_WORLD, NO_CTL, NO_CTL},
29634a0a202SSenthil Balasubramanian 	{WORC_WORLD, NO_CTL, NO_CTL},
2973a702e49SBob Copeland };
2983a702e49SBob Copeland 
2993a702e49SBob Copeland static struct country_code_to_enum_rd allCountries[] = {
3003a702e49SBob Copeland 	{CTRY_DEBUG, NO_ENUMRD, "DB"},
3013a702e49SBob Copeland 	{CTRY_DEFAULT, FCC1_FCCA, "CO"},
302fed8f5e8SSven Eckelmann 	{CTRY_ALBANIA, ETSI1_WORLD, "AL"},
303485daee9SSven Eckelmann 	{CTRY_ALGERIA, APL13_WORLD, "DZ"},
304bd6b4442SVivek Natarajan 	{CTRY_ARGENTINA, FCC3_WORLD, "AR"},
3053a702e49SBob Copeland 	{CTRY_ARMENIA, ETSI4_WORLD, "AM"},
306bd6b4442SVivek Natarajan 	{CTRY_ARUBA, ETSI1_WORLD, "AW"},
3078120cc0bSSven Eckelmann 	{CTRY_AUSTRALIA, FCC3_WORLD, "AU"},
3083a702e49SBob Copeland 	{CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
3093a702e49SBob Copeland 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
3103a702e49SBob Copeland 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
311699e2302SSven Eckelmann 	{CTRY_BAHAMAS, FCC3_WORLD, "BS"},
3123a702e49SBob Copeland 	{CTRY_BAHRAIN, APL6_WORLD, "BH"},
3131507b328SSven Eckelmann 	{CTRY_BANGLADESH, APL1_WORLD, "BD"},
314bd6b4442SVivek Natarajan 	{CTRY_BARBADOS, FCC2_WORLD, "BB"},
3153a702e49SBob Copeland 	{CTRY_BELARUS, ETSI1_WORLD, "BY"},
3163a702e49SBob Copeland 	{CTRY_BELGIUM, ETSI1_WORLD, "BE"},
3173a702e49SBob Copeland 	{CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
3183a702e49SBob Copeland 	{CTRY_BELIZE, APL1_ETSIC, "BZ"},
3199c790f2dSSven Eckelmann 	{CTRY_BERMUDA, FCC3_FCCA, "BM"},
3203a702e49SBob Copeland 	{CTRY_BOLIVIA, APL1_ETSIC, "BO"},
3213a702e49SBob Copeland 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
3223a702e49SBob Copeland 	{CTRY_BRAZIL, FCC3_WORLD, "BR"},
32337090d94SSven Eckelmann 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN"},
324fed60f81SSven Eckelmann 	{CTRY_BULGARIA, ETSI1_WORLD, "BG"},
325bd6b4442SVivek Natarajan 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
326bd6b4442SVivek Natarajan 	{CTRY_CANADA, FCC3_FCCA, "CA"},
3273a702e49SBob Copeland 	{CTRY_CANADA2, FCC6_FCCA, "CA"},
3283a702e49SBob Copeland 	{CTRY_CHILE, APL6_WORLD, "CL"},
3293a702e49SBob Copeland 	{CTRY_CHINA, APL1_WORLD, "CN"},
330515e9686SSven Eckelmann 	{CTRY_COLOMBIA, FCC3_WORLD, "CO"},
3313a702e49SBob Copeland 	{CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
332bd6b4442SVivek Natarajan 	{CTRY_CROATIA, ETSI1_WORLD, "HR"},
3333a702e49SBob Copeland 	{CTRY_CYPRUS, ETSI1_WORLD, "CY"},
3340fa31a86SSven Eckelmann 	{CTRY_CZECH, ETSI1_WORLD, "CZ"},
3353a702e49SBob Copeland 	{CTRY_DENMARK, ETSI1_WORLD, "DK"},
3363a702e49SBob Copeland 	{CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO"},
3373a702e49SBob Copeland 	{CTRY_ECUADOR, FCC1_WORLD, "EC"},
3383a702e49SBob Copeland 	{CTRY_EGYPT, ETSI3_WORLD, "EG"},
3393a702e49SBob Copeland 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
3403a702e49SBob Copeland 	{CTRY_ESTONIA, ETSI1_WORLD, "EE"},
3413a702e49SBob Copeland 	{CTRY_FINLAND, ETSI1_WORLD, "FI"},
3423a702e49SBob Copeland 	{CTRY_FRANCE, ETSI1_WORLD, "FR"},
3433a702e49SBob Copeland 	{CTRY_GEORGIA, ETSI4_WORLD, "GE"},
3443a702e49SBob Copeland 	{CTRY_GERMANY, ETSI1_WORLD, "DE"},
3453a702e49SBob Copeland 	{CTRY_GREECE, ETSI1_WORLD, "GR"},
346bd6b4442SVivek Natarajan 	{CTRY_GREENLAND, ETSI1_WORLD, "GL"},
347d601d9caSPavel Roskin 	{CTRY_GRENADA, FCC3_FCCA, "GD"},
348bd6b4442SVivek Natarajan 	{CTRY_GUAM, FCC1_FCCA, "GU"},
3493a702e49SBob Copeland 	{CTRY_GUATEMALA, FCC1_FCCA, "GT"},
350bd6b4442SVivek Natarajan 	{CTRY_HAITI, ETSI1_WORLD, "HT"},
351143a9b9bSSven Eckelmann 	{CTRY_HONDURAS, FCC3_WORLD, "HN"},
352bd6b4442SVivek Natarajan 	{CTRY_HONG_KONG, FCC3_WORLD, "HK"},
3533a702e49SBob Copeland 	{CTRY_HUNGARY, ETSI1_WORLD, "HU"},
3543a702e49SBob Copeland 	{CTRY_ICELAND, ETSI1_WORLD, "IS"},
3553a702e49SBob Copeland 	{CTRY_INDIA, APL6_WORLD, "IN"},
356bd6b4442SVivek Natarajan 	{CTRY_INDONESIA, NULL1_WORLD, "ID"},
3573a702e49SBob Copeland 	{CTRY_IRAN, APL1_WORLD, "IR"},
3583a702e49SBob Copeland 	{CTRY_IRELAND, ETSI1_WORLD, "IE"},
35962ba2b22SSven Eckelmann 	{CTRY_ISRAEL, ETSI3_WORLD, "IL"},
3603a702e49SBob Copeland 	{CTRY_ITALY, ETSI1_WORLD, "IT"},
361bd6b4442SVivek Natarajan 	{CTRY_JAMAICA, FCC3_WORLD, "JM"},
3623a702e49SBob Copeland 
3633a702e49SBob Copeland 	{CTRY_JAPAN, MKK1_MKKA, "JP"},
3643a702e49SBob Copeland 	{CTRY_JAPAN1, MKK1_MKKB, "JP"},
3653a702e49SBob Copeland 	{CTRY_JAPAN2, MKK1_FCCA, "JP"},
3663a702e49SBob Copeland 	{CTRY_JAPAN3, MKK2_MKKA, "JP"},
3673a702e49SBob Copeland 	{CTRY_JAPAN4, MKK1_MKKA1, "JP"},
3683a702e49SBob Copeland 	{CTRY_JAPAN5, MKK1_MKKA2, "JP"},
3693a702e49SBob Copeland 	{CTRY_JAPAN6, MKK1_MKKC, "JP"},
3703a702e49SBob Copeland 	{CTRY_JAPAN7, MKK3_MKKB, "JP"},
3713a702e49SBob Copeland 	{CTRY_JAPAN8, MKK3_MKKA2, "JP"},
3723a702e49SBob Copeland 	{CTRY_JAPAN9, MKK3_MKKC, "JP"},
3733a702e49SBob Copeland 	{CTRY_JAPAN10, MKK4_MKKB, "JP"},
3743a702e49SBob Copeland 	{CTRY_JAPAN11, MKK4_MKKA2, "JP"},
3753a702e49SBob Copeland 	{CTRY_JAPAN12, MKK4_MKKC, "JP"},
3763a702e49SBob Copeland 	{CTRY_JAPAN13, MKK5_MKKB, "JP"},
3773a702e49SBob Copeland 	{CTRY_JAPAN14, MKK5_MKKA2, "JP"},
3783a702e49SBob Copeland 	{CTRY_JAPAN15, MKK5_MKKC, "JP"},
3793a702e49SBob Copeland 	{CTRY_JAPAN16, MKK6_MKKB, "JP"},
3803a702e49SBob Copeland 	{CTRY_JAPAN17, MKK6_MKKA2, "JP"},
3813a702e49SBob Copeland 	{CTRY_JAPAN18, MKK6_MKKC, "JP"},
3823a702e49SBob Copeland 	{CTRY_JAPAN19, MKK7_MKKB, "JP"},
3833a702e49SBob Copeland 	{CTRY_JAPAN20, MKK7_MKKA2, "JP"},
3843a702e49SBob Copeland 	{CTRY_JAPAN21, MKK7_MKKC, "JP"},
3853a702e49SBob Copeland 	{CTRY_JAPAN22, MKK8_MKKB, "JP"},
3863a702e49SBob Copeland 	{CTRY_JAPAN23, MKK8_MKKA2, "JP"},
3873a702e49SBob Copeland 	{CTRY_JAPAN24, MKK8_MKKC, "JP"},
3883a702e49SBob Copeland 	{CTRY_JAPAN25, MKK3_MKKA, "JP"},
3893a702e49SBob Copeland 	{CTRY_JAPAN26, MKK3_MKKA1, "JP"},
3903a702e49SBob Copeland 	{CTRY_JAPAN27, MKK3_FCCA, "JP"},
3913a702e49SBob Copeland 	{CTRY_JAPAN28, MKK4_MKKA1, "JP"},
3923a702e49SBob Copeland 	{CTRY_JAPAN29, MKK4_FCCA, "JP"},
3933a702e49SBob Copeland 	{CTRY_JAPAN30, MKK6_MKKA1, "JP"},
3943a702e49SBob Copeland 	{CTRY_JAPAN31, MKK6_FCCA, "JP"},
3953a702e49SBob Copeland 	{CTRY_JAPAN32, MKK7_MKKA1, "JP"},
3963a702e49SBob Copeland 	{CTRY_JAPAN33, MKK7_FCCA, "JP"},
3973a702e49SBob Copeland 	{CTRY_JAPAN34, MKK9_MKKA, "JP"},
3983a702e49SBob Copeland 	{CTRY_JAPAN35, MKK10_MKKA, "JP"},
3993a702e49SBob Copeland 	{CTRY_JAPAN36, MKK4_MKKA, "JP"},
4003a702e49SBob Copeland 	{CTRY_JAPAN37, MKK9_FCCA, "JP"},
4013a702e49SBob Copeland 	{CTRY_JAPAN38, MKK9_MKKA1, "JP"},
4023a702e49SBob Copeland 	{CTRY_JAPAN39, MKK9_MKKC, "JP"},
4033a702e49SBob Copeland 	{CTRY_JAPAN40, MKK9_MKKA2, "JP"},
4043a702e49SBob Copeland 	{CTRY_JAPAN41, MKK10_FCCA, "JP"},
4053a702e49SBob Copeland 	{CTRY_JAPAN42, MKK10_MKKA1, "JP"},
4063a702e49SBob Copeland 	{CTRY_JAPAN43, MKK10_MKKC, "JP"},
4073a702e49SBob Copeland 	{CTRY_JAPAN44, MKK10_MKKA2, "JP"},
4083a702e49SBob Copeland 	{CTRY_JAPAN45, MKK11_MKKA, "JP"},
4093a702e49SBob Copeland 	{CTRY_JAPAN46, MKK11_FCCA, "JP"},
4103a702e49SBob Copeland 	{CTRY_JAPAN47, MKK11_MKKA1, "JP"},
4113a702e49SBob Copeland 	{CTRY_JAPAN48, MKK11_MKKC, "JP"},
4123a702e49SBob Copeland 	{CTRY_JAPAN49, MKK11_MKKA2, "JP"},
4133a702e49SBob Copeland 	{CTRY_JAPAN50, MKK12_MKKA, "JP"},
4143a702e49SBob Copeland 	{CTRY_JAPAN51, MKK12_FCCA, "JP"},
4153a702e49SBob Copeland 	{CTRY_JAPAN52, MKK12_MKKA1, "JP"},
4163a702e49SBob Copeland 	{CTRY_JAPAN53, MKK12_MKKC, "JP"},
4173a702e49SBob Copeland 	{CTRY_JAPAN54, MKK12_MKKA2, "JP"},
4183a702e49SBob Copeland 	{CTRY_JAPAN57, MKK13_MKKB, "JP"},
4193a702e49SBob Copeland 	{CTRY_JAPAN58, MKK14_MKKA1, "JP"},
4203a702e49SBob Copeland 	{CTRY_JAPAN59, MKK15_MKKA1, "JP"},
4213a702e49SBob Copeland 
4223a702e49SBob Copeland 	{CTRY_JORDAN, ETSI2_WORLD, "JO"},
4233a702e49SBob Copeland 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
424b840fa91SSven Eckelmann 	{CTRY_KENYA, APL1_WORLD, "KE"},
4253a702e49SBob Copeland 	{CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
4263a702e49SBob Copeland 	{CTRY_KOREA_ROC, APL9_WORLD, "KR"},
4273a702e49SBob Copeland 	{CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
4283a702e49SBob Copeland 	{CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
429bd6b4442SVivek Natarajan 	{CTRY_KUWAIT, ETSI3_WORLD, "KW"},
4303a702e49SBob Copeland 	{CTRY_LATVIA, ETSI1_WORLD, "LV"},
4313a702e49SBob Copeland 	{CTRY_LEBANON, NULL1_WORLD, "LB"},
4323a702e49SBob Copeland 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI"},
4333a702e49SBob Copeland 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
4343a702e49SBob Copeland 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
4353a702e49SBob Copeland 	{CTRY_MACAU, FCC2_WORLD, "MO"},
43664874ed2SSven Eckelmann 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK"},
437823a6406SSven Eckelmann 	{CTRY_MALAYSIA, FCC1_WORLD, "MY"},
4383a702e49SBob Copeland 	{CTRY_MALTA, ETSI1_WORLD, "MT"},
439a71c984bSSven Eckelmann 	{CTRY_MAURITIUS, ETSI1_WORLD, "MU"},
4403a702e49SBob Copeland 	{CTRY_MEXICO, FCC1_FCCA, "MX"},
4413a702e49SBob Copeland 	{CTRY_MONACO, ETSI4_WORLD, "MC"},
442a0a6f2a9SSven Eckelmann 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME"},
443bd6b4442SVivek Natarajan 	{CTRY_MOROCCO, APL4_WORLD, "MA"},
4443a702e49SBob Copeland 	{CTRY_NEPAL, APL1_WORLD, "NP"},
4453a702e49SBob Copeland 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
4463a702e49SBob Copeland 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN"},
447*9bfc2bb3SSven Eckelmann 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ"},
448a20f1338SSven Eckelmann 	{CTRY_NICARAGUA, FCC3_FCCA, "NI"},
4493a702e49SBob Copeland 	{CTRY_NORWAY, ETSI1_WORLD, "NO"},
450bd6b4442SVivek Natarajan 	{CTRY_OMAN, FCC3_WORLD, "OM"},
4513a702e49SBob Copeland 	{CTRY_PAKISTAN, NULL1_WORLD, "PK"},
4523a702e49SBob Copeland 	{CTRY_PANAMA, FCC1_FCCA, "PA"},
4533a702e49SBob Copeland 	{CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG"},
45467a95668SSven Eckelmann 	{CTRY_PARAGUAY, FCC3_WORLD, "PY"},
4553a702e49SBob Copeland 	{CTRY_PERU, APL1_WORLD, "PE"},
4563a702e49SBob Copeland 	{CTRY_PHILIPPINES, APL1_WORLD, "PH"},
4573a702e49SBob Copeland 	{CTRY_POLAND, ETSI1_WORLD, "PL"},
4583a702e49SBob Copeland 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
4593a702e49SBob Copeland 	{CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
460bd6b4442SVivek Natarajan 	{CTRY_QATAR, APL1_WORLD, "QA"},
4613a702e49SBob Copeland 	{CTRY_ROMANIA, NULL1_WORLD, "RO"},
4623a702e49SBob Copeland 	{CTRY_RUSSIA, NULL1_WORLD, "RU"},
4633a702e49SBob Copeland 	{CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
4642a3169a5SSven Eckelmann 	{CTRY_SERBIA, ETSI1_WORLD, "RS"},
4653a702e49SBob Copeland 	{CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
4663a702e49SBob Copeland 	{CTRY_SINGAPORE, APL6_WORLD, "SG"},
4673a702e49SBob Copeland 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
4683a702e49SBob Copeland 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
4693a702e49SBob Copeland 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
4703a702e49SBob Copeland 	{CTRY_SPAIN, ETSI1_WORLD, "ES"},
4713a702e49SBob Copeland 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
4723a702e49SBob Copeland 	{CTRY_SWEDEN, ETSI1_WORLD, "SE"},
4733a702e49SBob Copeland 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
4743a702e49SBob Copeland 	{CTRY_SYRIA, NULL1_WORLD, "SY"},
4753a702e49SBob Copeland 	{CTRY_TAIWAN, APL3_FCCA, "TW"},
476667ddac5SSven Eckelmann 	{CTRY_TANZANIA, APL1_WORLD, "TZ"},
47758d30d14SLuis R. Rodriguez 	{CTRY_THAILAND, FCC3_WORLD, "TH"},
478bd6b4442SVivek Natarajan 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
4793a702e49SBob Copeland 	{CTRY_TUNISIA, ETSI3_WORLD, "TN"},
4803a702e49SBob Copeland 	{CTRY_TURKEY, ETSI3_WORLD, "TR"},
4811ea3986aSSven Eckelmann 	{CTRY_UGANDA, FCC3_WORLD, "UG"},
4823a702e49SBob Copeland 	{CTRY_UKRAINE, NULL1_WORLD, "UA"},
4833a702e49SBob Copeland 	{CTRY_UAE, NULL1_WORLD, "AE"},
4843a702e49SBob Copeland 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
4853a702e49SBob Copeland 	{CTRY_UNITED_STATES, FCC3_FCCA, "US"},
4863a702e49SBob Copeland 	/* This "PS" is for US public safety actually... to support this we
4873a702e49SBob Copeland 	 * would need to assign new special alpha2 to CRDA db as with the world
4883a702e49SBob Copeland 	 * regdomain and use another alpha2 */
4893a702e49SBob Copeland 	{CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS"},
490bd6b4442SVivek Natarajan 	{CTRY_URUGUAY, FCC3_WORLD, "UY"},
4913a702e49SBob Copeland 	{CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
4923a702e49SBob Copeland 	{CTRY_VENEZUELA, APL2_ETSIC, "VE"},
4933a702e49SBob Copeland 	{CTRY_VIET_NAM, NULL1_WORLD, "VN"},
4943a702e49SBob Copeland 	{CTRY_YEMEN, NULL1_WORLD, "YE"},
4953a702e49SBob Copeland 	{CTRY_ZIMBABWE, NULL1_WORLD, "ZW"},
4963a702e49SBob Copeland };
4973a702e49SBob Copeland 
4983a702e49SBob Copeland #endif
499