2 * Copyright (c) 2004, 2005 Reyk Floeter <reyk@openbsd.org>
4 * Permission to use, copy, modify, and 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.
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.
17 #ifndef _IEEE80211_REGDOMAIN_H_
18 #define _IEEE80211_REGDOMAIN_H_
20 #include <linux/types.h>
22 /* Default regulation domain if stored value EEPROM value is invalid */
23 #define AR5K_TUNE_REGDOMAIN DMN_FCC2_FCCA /* Canada */
24 #define AR5K_TUNE_CTRY CTRY_DEFAULT
29 DMN_NULL_WORLD = 0x03,
30 DMN_NULL_ETSIB = 0x07,
31 DMN_NULL_ETSIC = 0x08,
33 DMN_FCC1_WORLD = 0x11,
35 DMN_FCC2_WORLD = 0x21,
36 DMN_FCC2_ETSIC = 0x22,
37 DMN_FRANCE_NULL = 0x31,
39 DMN_ETSI1_WORLD = 0x37,
40 DMN_ETSI3_ETSIA = 0x32,
41 DMN_ETSI2_WORLD = 0x35,
42 DMN_ETSI3_WORLD = 0x36,
43 DMN_ETSI4_WORLD = 0x30,
44 DMN_ETSI4_ETSIC = 0x38,
45 DMN_ETSI5_WORLD = 0x39,
46 DMN_ETSI6_WORLD = 0x34,
50 DMN_APL4_WORLD = 0x42,
53 DMN_APL2_WORLD = 0x45,
55 DMN_APL3_WORLD = 0x47,
58 DMN_MKK1_MKKA1 = 0x4A,
59 DMN_MKK1_MKKA2 = 0x4B,
60 DMN_APL1_WORLD = 0x52,
63 DMN_APL1_ETSIC = 0x55,
64 DMN_APL2_ETSIC = 0x56,
65 DMN_APL5_WORLD = 0x58,
66 DMN_WOR0_WORLD = 0x60,
67 DMN_WOR1_WORLD = 0x61,
68 DMN_WOR2_WORLD = 0x62,
69 DMN_WOR3_WORLD = 0x63,
70 DMN_WOR4_WORLD = 0x64,
71 DMN_WOR5_ETSIC = 0x65,
72 DMN_WOR01_WORLD = 0x66,
73 DMN_WOR02_WORLD = 0x67,
75 DMN_WOR9_WORLD = 0x69,
76 DMN_WORA_WORLD = 0x6A,
78 DMN_APL1 = 0xf0000001,
79 DMN_APL2 = 0xf0000002,
80 DMN_APL3 = 0xf0000004,
81 DMN_APL4 = 0xf0000008,
82 DMN_APL5 = 0xf0000010,
83 DMN_ETSI1 = 0xf0000020,
84 DMN_ETSI2 = 0xf0000040,
85 DMN_ETSI3 = 0xf0000080,
86 DMN_ETSI4 = 0xf0000100,
87 DMN_ETSI5 = 0xf0000200,
88 DMN_ETSI6 = 0xf0000400,
89 DMN_ETSIA = 0xf0000800,
90 DMN_ETSIB = 0xf0001000,
91 DMN_ETSIC = 0xf0002000,
92 DMN_FCC1 = 0xf0004000,
93 DMN_FCC2 = 0xf0008000,
94 DMN_FCC3 = 0xf0010000,
95 DMN_FCCA = 0xf0020000,
96 DMN_APLD = 0xf0040000,
97 DMN_MKK1 = 0xf0080000,
98 DMN_MKK2 = 0xf0100000,
99 DMN_MKKA = 0xf0200000,
100 DMN_NULL = 0xf0400000,
101 DMN_WORLD = 0xf0800000,
102 DMN_DEBUG = 0xf1000000 /* used for debugging */
105 #define IEEE80211_DMN(_d) ((_d) & ~0xf0000000)
107 enum ath5k_countrycode {
108 CTRY_DEFAULT = 0, /* Default domain (NA) */
109 CTRY_ALBANIA = 8, /* Albania */
110 CTRY_ALGERIA = 12, /* Algeria */
111 CTRY_ARGENTINA = 32, /* Argentina */
112 CTRY_ARMENIA = 51, /* Armenia */
113 CTRY_AUSTRALIA = 36, /* Australia */
114 CTRY_AUSTRIA = 40, /* Austria */
115 CTRY_AZERBAIJAN = 31, /* Azerbaijan */
116 CTRY_BAHRAIN = 48, /* Bahrain */
117 CTRY_BELARUS = 112, /* Belarus */
118 CTRY_BELGIUM = 56, /* Belgium */
119 CTRY_BELIZE = 84, /* Belize */
120 CTRY_BOLIVIA = 68, /* Bolivia */
121 CTRY_BRAZIL = 76, /* Brazil */
122 CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
123 CTRY_BULGARIA = 100, /* Bulgaria */
124 CTRY_CANADA = 124, /* Canada */
125 CTRY_CHILE = 152, /* Chile */
126 CTRY_CHINA = 156, /* People's Republic of China */
127 CTRY_COLOMBIA = 170, /* Colombia */
128 CTRY_COSTA_RICA = 188, /* Costa Rica */
129 CTRY_CROATIA = 191, /* Croatia */
130 CTRY_CYPRUS = 196, /* Cyprus */
131 CTRY_CZECH = 203, /* Czech Republic */
132 CTRY_DENMARK = 208, /* Denmark */
133 CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
134 CTRY_ECUADOR = 218, /* Ecuador */
135 CTRY_EGYPT = 818, /* Egypt */
136 CTRY_EL_SALVADOR = 222, /* El Salvador */
137 CTRY_ESTONIA = 233, /* Estonia */
138 CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
139 CTRY_FINLAND = 246, /* Finland */
140 CTRY_FRANCE = 250, /* France */
141 CTRY_FRANCE2 = 255, /* France2 */
142 CTRY_GEORGIA = 268, /* Georgia */
143 CTRY_GERMANY = 276, /* Germany */
144 CTRY_GREECE = 300, /* Greece */
145 CTRY_GUATEMALA = 320, /* Guatemala */
146 CTRY_HONDURAS = 340, /* Honduras */
147 CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
148 CTRY_HUNGARY = 348, /* Hungary */
149 CTRY_ICELAND = 352, /* Iceland */
150 CTRY_INDIA = 356, /* India */
151 CTRY_INDONESIA = 360, /* Indonesia */
152 CTRY_IRAN = 364, /* Iran */
153 CTRY_IRAQ = 368, /* Iraq */
154 CTRY_IRELAND = 372, /* Ireland */
155 CTRY_ISRAEL = 376, /* Israel */
156 CTRY_ITALY = 380, /* Italy */
157 CTRY_JAMAICA = 388, /* Jamaica */
158 CTRY_JAPAN = 392, /* Japan */
159 CTRY_JAPAN1 = 393, /* Japan (JP1) */
160 CTRY_JAPAN2 = 394, /* Japan (JP0) */
161 CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
162 CTRY_JAPAN4 = 396, /* Japan (JE1) */
163 CTRY_JAPAN5 = 397, /* Japan (JE2) */
164 CTRY_JORDAN = 400, /* Jordan */
165 CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
166 CTRY_KENYA = 404, /* Kenya */
167 CTRY_KOREA_NORTH = 408, /* North Korea */
168 CTRY_KOREA_ROC = 410, /* South Korea */
169 CTRY_KOREA_ROC2 = 411, /* South Korea */
170 CTRY_KUWAIT = 414, /* Kuwait */
171 CTRY_LATVIA = 428, /* Latvia */
172 CTRY_LEBANON = 422, /* Lebanon */
173 CTRY_LIBYA = 434, /* Libya */
174 CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
175 CTRY_LITHUANIA = 440, /* Lithuania */
176 CTRY_LUXEMBOURG = 442, /* Luxembourg */
177 CTRY_MACAU = 446, /* Macau */
178 CTRY_MACEDONIA = 807, /* Republic of Macedonia */
179 CTRY_MALAYSIA = 458, /* Malaysia */
180 CTRY_MEXICO = 484, /* Mexico */
181 CTRY_MONACO = 492, /* Principality of Monaco */
182 CTRY_MOROCCO = 504, /* Morocco */
183 CTRY_NETHERLANDS = 528, /* Netherlands */
184 CTRY_NEW_ZEALAND = 554, /* New Zealand */
185 CTRY_NICARAGUA = 558, /* Nicaragua */
186 CTRY_NORWAY = 578, /* Norway */
187 CTRY_OMAN = 512, /* Oman */
188 CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
189 CTRY_PANAMA = 591, /* Panama */
190 CTRY_PARAGUAY = 600, /* Paraguay */
191 CTRY_PERU = 604, /* Peru */
192 CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
193 CTRY_POLAND = 616, /* Poland */
194 CTRY_PORTUGAL = 620, /* Portugal */
195 CTRY_PUERTO_RICO = 630, /* Puerto Rico */
196 CTRY_QATAR = 634, /* Qatar */
197 CTRY_ROMANIA = 642, /* Romania */
198 CTRY_RUSSIA = 643, /* Russia */
199 CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
200 CTRY_SINGAPORE = 702, /* Singapore */
201 CTRY_SLOVAKIA = 703, /* Slovak Republic */
202 CTRY_SLOVENIA = 705, /* Slovenia */
203 CTRY_SOUTH_AFRICA = 710, /* South Africa */
204 CTRY_SPAIN = 724, /* Spain */
205 CTRY_SRI_LANKA = 728, /* Sri Lanka */
206 CTRY_SWEDEN = 752, /* Sweden */
207 CTRY_SWITZERLAND = 756, /* Switzerland */
208 CTRY_SYRIA = 760, /* Syria */
209 CTRY_TAIWAN = 158, /* Taiwan */
210 CTRY_THAILAND = 764, /* Thailand */
211 CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
212 CTRY_TUNISIA = 788, /* Tunisia */
213 CTRY_TURKEY = 792, /* Turkey */
214 CTRY_UAE = 784, /* U.A.E. */
215 CTRY_UKRAINE = 804, /* Ukraine */
216 CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
217 CTRY_UNITED_STATES = 840, /* United States */
218 CTRY_URUGUAY = 858, /* Uruguay */
219 CTRY_UZBEKISTAN = 860, /* Uzbekistan */
220 CTRY_VENEZUELA = 862, /* Venezuela */
221 CTRY_VIET_NAM = 704, /* Viet Nam */
222 CTRY_YEMEN = 887, /* Yemen */
223 CTRY_ZIMBABWE = 716, /* Zimbabwe */
226 #define IEEE80211_CHANNELS_2GHZ_MIN 2412 /* 2GHz channel 1 */
227 #define IEEE80211_CHANNELS_2GHZ_MAX 2732 /* 2GHz channel 26 */
228 #define IEEE80211_CHANNELS_5GHZ_MIN 5005 /* 5GHz channel 1 */
229 #define IEEE80211_CHANNELS_5GHZ_MAX 6100 /* 5GHz channel 220 */
231 struct ath5k_regchannel {
233 enum ath5k_regdom domain;
237 #define IEEE80211_CHANNELS_2GHZ { \
238 /*2412*/ { 1, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
239 /*2417*/ { 2, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
240 /*2422*/ { 3, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
241 /*2427*/ { 4, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
242 /*2432*/ { 5, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
243 /*2437*/ { 6, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
244 /*2442*/ { 7, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
245 /*2447*/ { 8, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
246 /*2452*/ { 9, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
247 /*2457*/ { 10, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
248 /*2462*/ { 11, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
249 /*2467*/ { 12, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
250 /*2472*/ { 13, DMN_APLD, CHANNEL_CCK|CHANNEL_OFDM }, \
252 /*2432*/ { 5, DMN_ETSIB, CHANNEL_CCK|CHANNEL_OFDM }, \
253 /*2437*/ { 6, DMN_ETSIB, CHANNEL_CCK|CHANNEL_OFDM|CHANNEL_TURBO }, \
254 /*2442*/ { 7, DMN_ETSIB, CHANNEL_CCK|CHANNEL_OFDM }, \
256 /*2412*/ { 1, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
257 /*2417*/ { 2, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
258 /*2422*/ { 3, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
259 /*2427*/ { 4, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
260 /*2432*/ { 5, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
261 /*2437*/ { 6, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM|CHANNEL_TURBO }, \
262 /*2442*/ { 7, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
263 /*2447*/ { 8, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
264 /*2452*/ { 9, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
265 /*2457*/ { 10, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
266 /*2462*/ { 11, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
267 /*2467*/ { 12, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
268 /*2472*/ { 13, DMN_ETSIC, CHANNEL_CCK|CHANNEL_OFDM }, \
270 /*2412*/ { 1, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
271 /*2417*/ { 2, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
272 /*2422*/ { 3, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
273 /*2427*/ { 4, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
274 /*2432*/ { 5, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
275 /*2437*/ { 6, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM|CHANNEL_TURBO }, \
276 /*2442*/ { 7, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
277 /*2447*/ { 8, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
278 /*2452*/ { 9, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
279 /*2457*/ { 10, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
280 /*2462*/ { 11, DMN_FCCA, CHANNEL_CCK|CHANNEL_OFDM }, \
282 /*2412*/ { 1, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
283 /*2417*/ { 2, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
284 /*2422*/ { 3, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
285 /*2427*/ { 4, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
286 /*2432*/ { 5, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
287 /*2437*/ { 6, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
288 /*2442*/ { 7, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
289 /*2447*/ { 8, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
290 /*2452*/ { 9, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
291 /*2457*/ { 10, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
292 /*2462*/ { 11, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
293 /*2467*/ { 12, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
294 /*2472*/ { 13, DMN_MKKA, CHANNEL_CCK|CHANNEL_OFDM }, \
295 /*2484*/ { 14, DMN_MKKA, CHANNEL_CCK }, \
297 /*2412*/ { 1, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
298 /*2417*/ { 2, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
299 /*2422*/ { 3, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
300 /*2427*/ { 4, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
301 /*2432*/ { 5, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
302 /*2437*/ { 6, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM|CHANNEL_TURBO }, \
303 /*2442*/ { 7, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
304 /*2447*/ { 8, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
305 /*2452*/ { 9, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
306 /*2457*/ { 10, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
307 /*2462*/ { 11, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
308 /*2467*/ { 12, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
309 /*2472*/ { 13, DMN_WORLD, CHANNEL_CCK|CHANNEL_OFDM }, \
312 #define IEEE80211_CHANNELS_5GHZ { \
313 /*5745*/ { 149, DMN_APL1, CHANNEL_OFDM }, \
314 /*5765*/ { 153, DMN_APL1, CHANNEL_OFDM }, \
315 /*5785*/ { 157, DMN_APL1, CHANNEL_OFDM }, \
316 /*5805*/ { 161, DMN_APL1, CHANNEL_OFDM }, \
317 /*5825*/ { 165, DMN_APL1, CHANNEL_OFDM }, \
319 /*5745*/ { 149, DMN_APL2, CHANNEL_OFDM }, \
320 /*5765*/ { 153, DMN_APL2, CHANNEL_OFDM }, \
321 /*5785*/ { 157, DMN_APL2, CHANNEL_OFDM }, \
322 /*5805*/ { 161, DMN_APL2, CHANNEL_OFDM }, \
324 /*5280*/ { 56, DMN_APL3, CHANNEL_OFDM }, \
325 /*5300*/ { 60, DMN_APL3, CHANNEL_OFDM }, \
326 /*5320*/ { 64, DMN_APL3, CHANNEL_OFDM }, \
327 /*5745*/ { 149, DMN_APL3, CHANNEL_OFDM }, \
328 /*5765*/ { 153, DMN_APL3, CHANNEL_OFDM }, \
329 /*5785*/ { 157, DMN_APL3, CHANNEL_OFDM }, \
330 /*5805*/ { 161, DMN_APL3, CHANNEL_OFDM }, \
332 /*5180*/ { 36, DMN_APL4, CHANNEL_OFDM }, \
333 /*5200*/ { 40, DMN_APL4, CHANNEL_OFDM }, \
334 /*5220*/ { 44, DMN_APL4, CHANNEL_OFDM }, \
335 /*5240*/ { 48, DMN_APL4, CHANNEL_OFDM }, \
336 /*5745*/ { 149, DMN_APL4, CHANNEL_OFDM }, \
337 /*5765*/ { 153, DMN_APL4, CHANNEL_OFDM }, \
338 /*5785*/ { 157, DMN_APL4, CHANNEL_OFDM }, \
339 /*5805*/ { 161, DMN_APL4, CHANNEL_OFDM }, \
340 /*5825*/ { 165, DMN_APL4, CHANNEL_OFDM }, \
342 /*5745*/ { 149, DMN_APL5, CHANNEL_OFDM }, \
343 /*5765*/ { 153, DMN_APL5, CHANNEL_OFDM }, \
344 /*5785*/ { 157, DMN_APL5, CHANNEL_OFDM }, \
345 /*5805*/ { 161, DMN_APL5, CHANNEL_OFDM }, \
346 /*5825*/ { 165, DMN_APL5, CHANNEL_OFDM }, \
348 /*5180*/ { 36, DMN_ETSI1, CHANNEL_OFDM }, \
349 /*5200*/ { 40, DMN_ETSI1, CHANNEL_OFDM }, \
350 /*5220*/ { 44, DMN_ETSI1, CHANNEL_OFDM }, \
351 /*5240*/ { 48, DMN_ETSI1, CHANNEL_OFDM }, \
352 /*5260*/ { 52, DMN_ETSI1, CHANNEL_OFDM }, \
353 /*5280*/ { 56, DMN_ETSI1, CHANNEL_OFDM }, \
354 /*5300*/ { 60, DMN_ETSI1, CHANNEL_OFDM }, \
355 /*5320*/ { 64, DMN_ETSI1, CHANNEL_OFDM }, \
356 /*5500*/ { 100, DMN_ETSI1, CHANNEL_OFDM }, \
357 /*5520*/ { 104, DMN_ETSI1, CHANNEL_OFDM }, \
358 /*5540*/ { 108, DMN_ETSI1, CHANNEL_OFDM }, \
359 /*5560*/ { 112, DMN_ETSI1, CHANNEL_OFDM }, \
360 /*5580*/ { 116, DMN_ETSI1, CHANNEL_OFDM }, \
361 /*5600*/ { 120, DMN_ETSI1, CHANNEL_OFDM }, \
362 /*5620*/ { 124, DMN_ETSI1, CHANNEL_OFDM }, \
363 /*5640*/ { 128, DMN_ETSI1, CHANNEL_OFDM }, \
364 /*5660*/ { 132, DMN_ETSI1, CHANNEL_OFDM }, \
365 /*5680*/ { 136, DMN_ETSI1, CHANNEL_OFDM }, \
366 /*5700*/ { 140, DMN_ETSI1, CHANNEL_OFDM }, \
368 /*5180*/ { 36, DMN_ETSI2, CHANNEL_OFDM }, \
369 /*5200*/ { 40, DMN_ETSI2, CHANNEL_OFDM }, \
370 /*5220*/ { 44, DMN_ETSI2, CHANNEL_OFDM }, \
371 /*5240*/ { 48, DMN_ETSI2, CHANNEL_OFDM }, \
373 /*5180*/ { 36, DMN_ETSI3, CHANNEL_OFDM }, \
374 /*5200*/ { 40, DMN_ETSI3, CHANNEL_OFDM }, \
375 /*5220*/ { 44, DMN_ETSI3, CHANNEL_OFDM }, \
376 /*5240*/ { 48, DMN_ETSI3, CHANNEL_OFDM }, \
377 /*5260*/ { 52, DMN_ETSI3, CHANNEL_OFDM }, \
378 /*5280*/ { 56, DMN_ETSI3, CHANNEL_OFDM }, \
379 /*5300*/ { 60, DMN_ETSI3, CHANNEL_OFDM }, \
380 /*5320*/ { 64, DMN_ETSI3, CHANNEL_OFDM }, \
382 /*5180*/ { 36, DMN_ETSI4, CHANNEL_OFDM }, \
383 /*5200*/ { 40, DMN_ETSI4, CHANNEL_OFDM }, \
384 /*5220*/ { 44, DMN_ETSI4, CHANNEL_OFDM }, \
385 /*5240*/ { 48, DMN_ETSI4, CHANNEL_OFDM }, \
386 /*5260*/ { 52, DMN_ETSI4, CHANNEL_OFDM }, \
387 /*5280*/ { 56, DMN_ETSI4, CHANNEL_OFDM }, \
388 /*5300*/ { 60, DMN_ETSI4, CHANNEL_OFDM }, \
389 /*5320*/ { 64, DMN_ETSI4, CHANNEL_OFDM }, \
391 /*5180*/ { 36, DMN_ETSI5, CHANNEL_OFDM }, \
392 /*5200*/ { 40, DMN_ETSI5, CHANNEL_OFDM }, \
393 /*5220*/ { 44, DMN_ETSI5, CHANNEL_OFDM }, \
394 /*5240*/ { 48, DMN_ETSI5, CHANNEL_OFDM }, \
396 /*5180*/ { 36, DMN_ETSI6, CHANNEL_OFDM }, \
397 /*5200*/ { 40, DMN_ETSI6, CHANNEL_OFDM }, \
398 /*5220*/ { 44, DMN_ETSI6, CHANNEL_OFDM }, \
399 /*5240*/ { 48, DMN_ETSI6, CHANNEL_OFDM }, \
400 /*5260*/ { 52, DMN_ETSI6, CHANNEL_OFDM }, \
401 /*5280*/ { 56, DMN_ETSI6, CHANNEL_OFDM }, \
402 /*5500*/ { 100, DMN_ETSI6, CHANNEL_OFDM }, \
403 /*5520*/ { 104, DMN_ETSI6, CHANNEL_OFDM }, \
404 /*5540*/ { 108, DMN_ETSI6, CHANNEL_OFDM }, \
405 /*5560*/ { 112, DMN_ETSI6, CHANNEL_OFDM }, \
406 /*5580*/ { 116, DMN_ETSI6, CHANNEL_OFDM }, \
407 /*5600*/ { 120, DMN_ETSI6, CHANNEL_OFDM }, \
408 /*5620*/ { 124, DMN_ETSI6, CHANNEL_OFDM }, \
409 /*5640*/ { 128, DMN_ETSI6, CHANNEL_OFDM }, \
410 /*5660*/ { 132, DMN_ETSI6, CHANNEL_OFDM }, \
411 /*5680*/ { 136, DMN_ETSI6, CHANNEL_OFDM }, \
412 /*5700*/ { 140, DMN_ETSI6, CHANNEL_OFDM }, \
414 /*5180*/ { 36, DMN_FCC1, CHANNEL_OFDM }, \
415 /*5200*/ { 40, DMN_FCC1, CHANNEL_OFDM }, \
416 /*5210*/ { 42, DMN_FCC1, CHANNEL_OFDM|CHANNEL_TURBO }, \
417 /*5220*/ { 44, DMN_FCC1, CHANNEL_OFDM }, \
418 /*5240*/ { 48, DMN_FCC1, CHANNEL_OFDM }, \
419 /*5250*/ { 50, DMN_FCC1, CHANNEL_OFDM|CHANNEL_TURBO }, \
420 /*5260*/ { 52, DMN_FCC1, CHANNEL_OFDM }, \
421 /*5280*/ { 56, DMN_FCC1, CHANNEL_OFDM }, \
422 /*5290*/ { 58, DMN_FCC1, CHANNEL_OFDM|CHANNEL_TURBO }, \
423 /*5300*/ { 60, DMN_FCC1, CHANNEL_OFDM }, \
424 /*5320*/ { 64, DMN_FCC1, CHANNEL_OFDM }, \
425 /*5745*/ { 149, DMN_FCC1, CHANNEL_OFDM }, \
426 /*5760*/ { 152, DMN_FCC1, CHANNEL_OFDM|CHANNEL_TURBO }, \
427 /*5765*/ { 153, DMN_FCC1, CHANNEL_OFDM }, \
428 /*5785*/ { 157, DMN_FCC1, CHANNEL_OFDM }, \
429 /*5800*/ { 160, DMN_FCC1, CHANNEL_OFDM|CHANNEL_TURBO }, \
430 /*5805*/ { 161, DMN_FCC1, CHANNEL_OFDM }, \
431 /*5825*/ { 165, DMN_FCC1, CHANNEL_OFDM }, \
433 /*5180*/ { 36, DMN_FCC2, CHANNEL_OFDM }, \
434 /*5200*/ { 40, DMN_FCC2, CHANNEL_OFDM }, \
435 /*5220*/ { 44, DMN_FCC2, CHANNEL_OFDM }, \
436 /*5240*/ { 48, DMN_FCC2, CHANNEL_OFDM }, \
437 /*5260*/ { 52, DMN_FCC2, CHANNEL_OFDM }, \
438 /*5280*/ { 56, DMN_FCC2, CHANNEL_OFDM }, \
439 /*5300*/ { 60, DMN_FCC2, CHANNEL_OFDM }, \
440 /*5320*/ { 64, DMN_FCC2, CHANNEL_OFDM }, \
441 /*5745*/ { 149, DMN_FCC2, CHANNEL_OFDM }, \
442 /*5765*/ { 153, DMN_FCC2, CHANNEL_OFDM }, \
443 /*5785*/ { 157, DMN_FCC2, CHANNEL_OFDM }, \
444 /*5805*/ { 161, DMN_FCC2, CHANNEL_OFDM }, \
445 /*5825*/ { 165, DMN_FCC2, CHANNEL_OFDM }, \
447 /*5180*/ { 36, DMN_FCC3, CHANNEL_OFDM }, \
448 /*5200*/ { 40, DMN_FCC3, CHANNEL_OFDM }, \
449 /*5210*/ { 42, DMN_FCC3, CHANNEL_OFDM|CHANNEL_TURBO }, \
450 /*5220*/ { 44, DMN_FCC3, CHANNEL_OFDM }, \
451 /*5240*/ { 48, DMN_FCC3, CHANNEL_OFDM }, \
452 /*5250*/ { 50, DMN_FCC3, CHANNEL_OFDM|CHANNEL_TURBO }, \
453 /*5260*/ { 52, DMN_FCC3, CHANNEL_OFDM }, \
454 /*5280*/ { 56, DMN_FCC3, CHANNEL_OFDM }, \
455 /*5290*/ { 58, DMN_FCC3, CHANNEL_OFDM|CHANNEL_TURBO }, \
456 /*5300*/ { 60, DMN_FCC3, CHANNEL_OFDM }, \
457 /*5320*/ { 64, DMN_FCC3, CHANNEL_OFDM }, \
458 /*5500*/ { 100, DMN_FCC3, CHANNEL_OFDM }, \
459 /*5520*/ { 104, DMN_FCC3, CHANNEL_OFDM }, \
460 /*5540*/ { 108, DMN_FCC3, CHANNEL_OFDM }, \
461 /*5560*/ { 112, DMN_FCC3, CHANNEL_OFDM }, \
462 /*5580*/ { 116, DMN_FCC3, CHANNEL_OFDM }, \
463 /*5600*/ { 120, DMN_FCC3, CHANNEL_OFDM }, \
464 /*5620*/ { 124, DMN_FCC3, CHANNEL_OFDM }, \
465 /*5640*/ { 128, DMN_FCC3, CHANNEL_OFDM }, \
466 /*5660*/ { 132, DMN_FCC3, CHANNEL_OFDM }, \
467 /*5680*/ { 136, DMN_FCC3, CHANNEL_OFDM }, \
468 /*5700*/ { 140, DMN_FCC3, CHANNEL_OFDM }, \
469 /*5745*/ { 149, DMN_FCC3, CHANNEL_OFDM }, \
470 /*5760*/ { 152, DMN_FCC3, CHANNEL_OFDM|CHANNEL_TURBO }, \
471 /*5765*/ { 153, DMN_FCC3, CHANNEL_OFDM }, \
472 /*5785*/ { 157, DMN_FCC3, CHANNEL_OFDM }, \
473 /*5800*/ { 160, DMN_FCC3, CHANNEL_OFDM|CHANNEL_TURBO }, \
474 /*5805*/ { 161, DMN_FCC3, CHANNEL_OFDM }, \
475 /*5825*/ { 165, DMN_FCC3, CHANNEL_OFDM }, \
477 /*5170*/ { 34, DMN_MKK1, CHANNEL_OFDM }, \
478 /*5190*/ { 38, DMN_MKK1, CHANNEL_OFDM }, \
479 /*5210*/ { 42, DMN_MKK1, CHANNEL_OFDM }, \
480 /*5230*/ { 46, DMN_MKK1, CHANNEL_OFDM }, \
482 /*5040*/ { 8, DMN_MKK2, CHANNEL_OFDM }, \
483 /*5060*/ { 12, DMN_MKK2, CHANNEL_OFDM }, \
484 /*5080*/ { 16, DMN_MKK2, CHANNEL_OFDM }, \
485 /*5170*/ { 34, DMN_MKK2, CHANNEL_OFDM }, \
486 /*5190*/ { 38, DMN_MKK2, CHANNEL_OFDM }, \
487 /*5210*/ { 42, DMN_MKK2, CHANNEL_OFDM }, \
488 /*5230*/ { 46, DMN_MKK2, CHANNEL_OFDM }, \
490 /*5180*/ { 36, DMN_WORLD, CHANNEL_OFDM }, \
491 /*5200*/ { 40, DMN_WORLD, CHANNEL_OFDM }, \
492 /*5220*/ { 44, DMN_WORLD, CHANNEL_OFDM }, \
493 /*5240*/ { 48, DMN_WORLD, CHANNEL_OFDM }, \
496 enum ath5k_regdom ath5k_regdom2flag(enum ath5k_regdom, u16);
497 u16 ath5k_regdom_from_ieee(enum ath5k_regdom ieee);
498 enum ath5k_regdom ath5k_regdom_to_ieee(u16 regdomain);