]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / dev / ath / ath_hal / ah_regdomain / ah_rd_regenum.h
1 /*
2  * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
3  * Copyright (c) 2005-2011 Atheros Communications, Inc.
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and/or distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  *
18  * $FreeBSD$
19  */
20
21 #ifndef __AH_REGDOMAIN_REGENUM_H__
22 #define __AH_REGDOMAIN_REGENUM_H__
23
24 /*
25  * Enumerated Regulatory Domain Information 8 bit values indicate that
26  * the regdomain is really a pair of unitary regdomains.  12 bit values
27  * are the real unitary regdomains and are the only ones which have the
28  * frequency bitmasks and flags set.
29  */
30 enum {
31         /*
32          * The following regulatory domain definitions are
33          * found in the EEPROM. Each regulatory domain
34          * can operate in either a 5GHz or 2.4GHz wireless mode or
35          * both 5GHz and 2.4GHz wireless modes.
36          * In general, the value holds no special
37          * meaning and is used to decode into either specific
38          * 2.4GHz or 5GHz wireless mode for that particular
39          * regulatory domain.
40          */
41         NO_ENUMRD       = 0x00,
42         NULL1_WORLD     = 0x03,         /* For 11b-only countries (no 11a allowed) */
43         NULL1_ETSIB     = 0x07,         /* Israel */
44         NULL1_ETSIC     = 0x08,
45         FCC1_FCCA       = 0x10,         /* USA */
46         FCC1_WORLD      = 0x11,         /* Hong Kong */
47         FCC4_FCCA       = 0x12,         /* USA - Public Safety */
48         FCC5_FCCB       = 0x13,         /* USA w/ 1/2 and 1/4 width channels */
49         FCC6_FCCA       = 0x14,         /* Canada for AP only */
50
51         FCC2_FCCA       = 0x20,         /* Canada */
52         FCC2_WORLD      = 0x21,         /* Australia & HK */
53         FCC2_ETSIC      = 0x22,
54         FRANCE_RES      = 0x31,         /* Legacy France for OEM */
55         FCC3_FCCA       = 0x3A,         /* USA & Canada w/5470 band, 11h, DFS enabled */
56         FCC3_WORLD      = 0x3B,         /* USA & Canada w/5470 band, 11h, DFS enabled */
57
58         ETSI1_WORLD     = 0x37,
59         ETSI3_ETSIA     = 0x32,         /* France (optional) */
60         ETSI2_WORLD     = 0x35,         /* Hungary & others */
61         ETSI3_WORLD     = 0x36,         /* France & others */
62         ETSI4_WORLD     = 0x30,
63         ETSI4_ETSIC     = 0x38,
64         ETSI5_WORLD     = 0x39,
65         ETSI6_WORLD     = 0x34,         /* Bulgaria */
66         ETSI8_WORLD     = 0x3D,         /* Russia */
67         ETSI9_WORLD     = 0x3E,         /* Ukraine */
68         ETSI_RESERVED   = 0x33,         /* Reserved (Do not used) */
69
70         MKK1_MKKA       = 0x40,         /* Japan (JP1) */
71         MKK1_MKKB       = 0x41,         /* Japan (JP0) */
72         APL4_WORLD      = 0x42,         /* Singapore */
73         MKK2_MKKA       = 0x43,         /* Japan with 4.9G channels */
74         APL_RESERVED    = 0x44,         /* Reserved (Do not used)  */
75         APL2_WORLD      = 0x45,         /* Korea */
76         APL2_APLC       = 0x46,
77         APL3_WORLD      = 0x47,
78         MKK1_FCCA       = 0x48,         /* Japan (JP1-1) */
79         APL2_APLD       = 0x49,         /* Korea with 2.3G channels */
80         MKK1_MKKA1      = 0x4A,         /* Japan (JE1) */
81         MKK1_MKKA2      = 0x4B,         /* Japan (JE2) */
82         MKK1_MKKC       = 0x4C,         /* Japan (MKK1_MKKA,except Ch14) */
83         APL2_FCCA       = 0x4D,         /* Mobile customer */
84
85         APL3_FCCA       = 0x50,
86         APL1_WORLD      = 0x52,         /* Latin America */
87         APL1_FCCA       = 0x53,
88         APL1_APLA       = 0x54,
89         APL1_ETSIC      = 0x55,
90         APL2_ETSIC      = 0x56,         /* Venezuela */
91         APL5_WORLD      = 0x58,         /* Chile */
92         APL6_WORLD      = 0x5B,         /* Singapore */
93         APL7_FCCA       = 0x5C,         /* Taiwan 5.47 Band */
94         APL8_WORLD      = 0x5D,         /* Malaysia 5GHz */
95         APL9_WORLD      = 0x5E,         /* Korea 5GHz; before 11/2007; now APs only */
96         APL10_WORLD     = 0x5F,         /* Korea 5GHz; After 11/2007; STAs only */
97
98         /*
99          * World mode SKUs
100          */
101         WOR0_WORLD      = 0x60,         /* World0 (WO0 SKU) */
102         WOR1_WORLD      = 0x61,         /* World1 (WO1 SKU) */
103         WOR2_WORLD      = 0x62,         /* World2 (WO2 SKU) */
104         WOR3_WORLD      = 0x63,         /* World3 (WO3 SKU) */
105         WOR4_WORLD      = 0x64,         /* World4 (WO4 SKU) */
106         WOR5_ETSIC      = 0x65,         /* World5 (WO5 SKU) */
107
108         WOR01_WORLD     = 0x66,         /* World0-1 (WW0-1 SKU) */
109         WOR02_WORLD     = 0x67,         /* World0-2 (WW0-2 SKU) */
110         EU1_WORLD       = 0x68,         /* Same as World0-2 (WW0-2 SKU), except active scan ch1-13. No ch14 */
111
112         WOR9_WORLD      = 0x69,         /* World9 (WO9 SKU) */
113         WORA_WORLD      = 0x6A,         /* WorldA (WOA SKU) */
114         WORB_WORLD      = 0x6B,         /* WorldB (WOB SKU) */
115         WORC_WORLD      = 0x6C,         /* WorldC (WOC SKU) */
116
117         MKK3_MKKB       = 0x80,         /* Japan UNI-1 even + MKKB */
118         MKK3_MKKA2      = 0x81,         /* Japan UNI-1 even + MKKA2 */
119         MKK3_MKKC       = 0x82,         /* Japan UNI-1 even + MKKC */
120
121         MKK4_MKKB       = 0x83,         /* Japan UNI-1 even + UNI-2 + MKKB */
122         MKK4_MKKA2      = 0x84,         /* Japan UNI-1 even + UNI-2 + MKKA2 */
123         MKK4_MKKC       = 0x85,         /* Japan UNI-1 even + UNI-2 + MKKC */
124
125         MKK5_MKKB       = 0x86,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKB */
126         MKK5_MKKA2      = 0x87,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKA2 */
127         MKK5_MKKC       = 0x88,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKC */
128
129         MKK6_MKKB       = 0x89,         /* Japan UNI-1 even + UNI-1 odd MKKB */
130         MKK6_MKKA2      = 0x8A,         /* Japan UNI-1 even + UNI-1 odd + MKKA2 */
131         MKK6_MKKC       = 0x8B,         /* Japan UNI-1 even + UNI-1 odd + MKKC */
132
133         MKK7_MKKB       = 0x8C,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKB */
134         MKK7_MKKA2      = 0x8D,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKA2 */
135         MKK7_MKKC       = 0x8E,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKC */
136
137         MKK8_MKKB       = 0x8F,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKB */
138         MKK8_MKKA2      = 0x90,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKA2 */
139         MKK8_MKKC       = 0x91,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKC */
140
141         MKK14_MKKA1     = 0x92,         /* Japan UNI-1 even + UNI-1 odd + 4.9GHz + MKKA1 */
142         MKK15_MKKA1     = 0x93,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + 4.9GHz + MKKA1 */
143
144         MKK10_FCCA      = 0xD0,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + FCCA */
145         MKK10_MKKA1     = 0xD1,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKA1 */
146         MKK10_MKKC      = 0xD2,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKC */
147         MKK10_MKKA2     = 0xD3,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKA2 */
148
149         MKK11_MKKA      = 0xD4,         /* Japan UNI-1 even + UNI-2 + mid-band + 4.9GHz + MKKA */
150         MKK11_FCCA      = 0xD5,         /* Japan UNI-1 even + UNI-2 + mid-band + 4.9GHz + FCCA */
151         MKK11_MKKA1     = 0xD6,         /* Japan UNI-1 even + UNI-2 + mid-band + 4.9GHz + MKKA1 */
152         MKK11_MKKC      = 0xD7,         /* Japan UNI-1 even + UNI-2 + mid-band + 4.9GHz + MKKC */
153         MKK11_MKKA2     = 0xD8,         /* Japan UNI-1 even + UNI-2 + mid-band + 4.9GHz + MKKA2 */
154
155         MKK12_MKKA      = 0xD9,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9GHz + MKKA */
156         MKK12_FCCA      = 0xDA,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9GHz + FCCA */
157         MKK12_MKKA1     = 0xDB,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9GHz + MKKA1 */
158         MKK12_MKKC      = 0xDC,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9GHz + MKKC */
159         MKK12_MKKA2     = 0xDD,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9GHz + MKKA2 */
160
161         MKK13_MKKB      = 0xDE,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKB + All passive + no adhoc */
162
163         /*
164          * Following definitions are used only by s/w to map old
165          * Japan SKUs.
166          */
167         MKK3_MKKA       = 0xF0,         /* Japan UNI-1 even + MKKA */
168         MKK3_MKKA1      = 0xF1,         /* Japan UNI-1 even + MKKA1 */
169         MKK3_FCCA       = 0xF2,         /* Japan UNI-1 even + FCCA */
170         MKK4_MKKA       = 0xF3,         /* Japan UNI-1 even + UNI-2 + MKKA */
171         MKK4_MKKA1      = 0xF4,         /* Japan UNI-1 even + UNI-2 + MKKA1 */
172         MKK4_FCCA       = 0xF5,         /* Japan UNI-1 even + UNI-2 + FCCA */
173         MKK9_MKKA       = 0xF6,         /* Japan UNI-1 even + 4.9GHz */
174         MKK10_MKKA      = 0xF7,         /* Japan UNI-1 even + UNI-2 + 4.9GHz */
175         MKK6_MKKA1      = 0xF8,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKA1 */
176         MKK6_FCCA       = 0xF9,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + FCCA */
177         MKK7_MKKA1      = 0xFA,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKA1 */
178         MKK7_FCCA       = 0xFB,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + FCCA */
179         MKK9_FCCA       = 0xFC,         /* Japan UNI-1 even + 4.9GHz + FCCA */
180         MKK9_MKKA1      = 0xFD,         /* Japan UNI-1 even + 4.9GHz + MKKA1 */
181         MKK9_MKKC       = 0xFE,         /* Japan UNI-1 even + 4.9GHz + MKKC */
182         MKK9_MKKA2      = 0xFF,         /* Japan UNI-1 even + 4.9GHz + MKKA2 */
183
184         /*
185          * Regulator domains ending in a number (e.g. APL1,
186          * MK1, ETSI4, etc) apply to 5GHz channel and power
187          * information.  Regulator domains ending in a letter
188          * (e.g. APLA, FCCA, etc) apply to 2.4GHz channel and
189          * power information.
190          */
191         APL1            = 0x0150,       /* LAT & Asia */
192         APL2            = 0x0250,       /* LAT & Asia */
193         APL3            = 0x0350,       /* Taiwan */
194         APL4            = 0x0450,       /* Jordan */
195         APL5            = 0x0550,       /* Chile */
196         APL6            = 0x0650,       /* Singapore */
197         APL7            = 0x0750,       /* Taiwan, disable ch52 */
198         APL8            = 0x0850,       /* Malaysia */
199         APL9            = 0x0950,       /* Korea. Before 11/2007. Now used only by APs */
200         APL10           = 0x1050,       /* Korea. After 11/2007. For STAs only */
201
202         ETSI1           = 0x0130,       /* Europe & others */
203         ETSI2           = 0x0230,       /* Europe & others */
204         ETSI3           = 0x0330,       /* Europe & others */
205         ETSI4           = 0x0430,       /* Europe & others */
206         ETSI5           = 0x0530,       /* Europe & others */
207         ETSI6           = 0x0630,       /* Europe & others */
208         ETSI8           = 0x0830,       /* Russia */
209         ETSI9           = 0x0930,       /* Ukraine */
210         ETSIA           = 0x0A30,       /* France */
211         ETSIB           = 0x0B30,       /* Israel */
212         ETSIC           = 0x0C30,       /* Latin America */
213
214         FCC1            = 0x0110,       /* US & others */
215         FCC2            = 0x0120,       /* Canada, Australia & New Zealand */
216         FCC3            = 0x0160,       /* US w/new middle band & DFS */
217         FCC4            = 0x0165,       /* US Public Safety */
218         FCC5            = 0x0166,       /* US w/ 1/2 and 1/4 width channels */
219         FCC6            = 0x0610,       /* Canada and Australia */
220         FCCA            = 0x0A10,
221         FCCB            = 0x0A11,       /* US w/ 1/2 and 1/4 width channels */
222
223         APLD            = 0x0D50,       /* South Korea */
224
225         MKK1            = 0x0140,       /* Japan (UNI-1 odd)*/
226         MKK2            = 0x0240,       /* Japan (4.9 GHz + UNI-1 odd) */
227         MKK3            = 0x0340,       /* Japan (UNI-1 even) */
228         MKK4            = 0x0440,       /* Japan (UNI-1 even + UNI-2) */
229         MKK5            = 0x0540,       /* Japan (UNI-1 even + UNI-2 + mid-band) */
230         MKK6            = 0x0640,       /* Japan (UNI-1 odd + UNI-1 even) */
231         MKK7            = 0x0740,       /* Japan (UNI-1 odd + UNI-1 even + UNI-2 */
232         MKK8            = 0x0840,       /* Japan (UNI-1 odd + UNI-1 even + UNI-2 + mid-band) */
233         MKK9            = 0x0940,       /* Japan (UNI-1 even + 4.9 GHZ) */
234         MKK10           = 0x0B40,       /* Japan (UNI-1 even + UNI-2 + 4.9 GHZ) */
235         MKK11           = 0x1140,       /* Japan (UNI-1 even + UNI-2 + 4.9 GHZ) */
236         MKK12           = 0x1240,       /* Japan (UNI-1 even + UNI-2 + 4.9 GHZ) */
237         MKK13           = 0x0C40,       /* Same as MKK8 but all passive and no adhoc 11a */
238         MKK14           = 0x1440,       /* Japan UNI-1 even + UNI-1 odd + 4.9GHz */
239         MKK15           = 0x1540,       /* Japan UNI-1 even + UNI-1 odd + UNI-2 + 4.9GHz */
240
241         MKKA            = 0x0A40,       /* Japan */
242         MKKC            = 0x0A50,
243
244         NULL1           = 0x0198,
245         WORLD           = 0x0199,
246         DEBUG_REG_DMN   = 0x01ff,
247 };
248
249 #endif