upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / staging / otus / hal / hpreg.h
1 /*
2  * Copyright (c) 2000-2005 ZyDAS Technology Corporation
3  * Copyright (c) 2007-2008 Atheros Communications Inc.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 /*  Module Name : hpreg.h                                               */
18 /*                                                                      */
19 /*  Abstract                                                            */
20 /*      This module contains Regulatory Table definitions.              */
21 /*                                                                      */
22 /*  NOTES                                                               */
23 /*      None                                                            */
24 /*                                                                      */
25 /************************************************************************/
26
27 #ifndef _HPREG_H
28 #define _HPREG_H
29
30 typedef u16_t HAL_CTRY_CODE;            /* country code */
31 typedef u16_t HAL_REG_DOMAIN;           /* regulatory domain code */
32 typedef enum {
33         AH_FALSE = 0,           /* NB: lots of code assumes false is zero */
34         AH_TRUE  = 1,
35 } HAL_BOOL;
36
37
38 /*
39  * Country/Region Codes from MS WINNLS.H
40  * Numbering from ISO 3166
41  */
42 enum CountryCode {
43     CTRY_ALBANIA              = 8,       /* Albania */
44     CTRY_ALGERIA              = 12,      /* Algeria */
45     CTRY_ARGENTINA            = 32,      /* Argentina */
46     CTRY_ARMENIA              = 51,      /* Armenia */
47     CTRY_AUSTRALIA            = 36,      /* Australia */
48     CTRY_AUSTRIA              = 40,      /* Austria */
49     CTRY_AZERBAIJAN           = 31,      /* Azerbaijan */
50     CTRY_BAHRAIN              = 48,      /* Bahrain */
51     CTRY_BELARUS              = 112,     /* Belarus */
52     CTRY_BELGIUM              = 56,      /* Belgium */
53     CTRY_BELIZE               = 84,      /* Belize */
54     CTRY_BOLIVIA              = 68,      /* Bolivia */
55     CTRY_BOSNIA               = 70,      /* Bosnia */
56     CTRY_BRAZIL               = 76,      /* Brazil */
57     CTRY_BRUNEI_DARUSSALAM    = 96,      /* Brunei Darussalam */
58     CTRY_BULGARIA             = 100,     /* Bulgaria */
59     CTRY_CANADA               = 124,     /* Canada */
60     CTRY_CHILE                = 152,     /* Chile */
61     CTRY_CHINA                = 156,     /* People's Republic of China */
62     CTRY_COLOMBIA             = 170,     /* Colombia */
63     CTRY_COSTA_RICA           = 188,     /* Costa Rica */
64     CTRY_CROATIA              = 191,     /* Croatia */
65     CTRY_CYPRUS               = 196,     /* Cyprus */
66     CTRY_CZECH                = 203,     /* Czech Republic */
67     CTRY_DENMARK              = 208,     /* Denmark */
68     CTRY_DOMINICAN_REPUBLIC   = 214,     /* Dominican Republic */
69     CTRY_ECUADOR              = 218,     /* Ecuador */
70     CTRY_EGYPT                = 818,     /* Egypt */
71     CTRY_EL_SALVADOR          = 222,     /* El Salvador */
72     CTRY_ESTONIA              = 233,     /* Estonia */
73     CTRY_FAEROE_ISLANDS       = 234,     /* Faeroe Islands */
74     CTRY_FINLAND              = 246,     /* Finland */
75     CTRY_FRANCE               = 250,     /* France */
76     CTRY_FRANCE2              = 255,     /* France2 */
77     CTRY_GEORGIA              = 268,     /* Georgia */
78     CTRY_GERMANY              = 276,     /* Germany */
79     CTRY_GREECE               = 300,     /* Greece */
80     CTRY_GUATEMALA            = 320,     /* Guatemala */
81     CTRY_HONDURAS             = 340,     /* Honduras */
82     CTRY_HONG_KONG            = 344,     /* Hong Kong S.A.R., P.R.C. */
83     CTRY_HUNGARY              = 348,     /* Hungary */
84     CTRY_ICELAND              = 352,     /* Iceland */
85     CTRY_INDIA                = 356,     /* India */
86     CTRY_INDONESIA            = 360,     /* Indonesia */
87     CTRY_IRAN                 = 364,     /* Iran */
88     CTRY_IRAQ                 = 368,     /* Iraq */
89     CTRY_IRELAND              = 372,     /* Ireland */
90     CTRY_ISRAEL               = 376,     /* Israel */
91     CTRY_ISRAEL2              = 377,     /* Israel2 */
92     CTRY_ITALY                = 380,     /* Italy */
93     CTRY_JAMAICA              = 388,     /* Jamaica */
94     CTRY_JAPAN                = 392,     /* Japan */
95     CTRY_JAPAN1               = 393,     /* Japan (JP1) */
96     CTRY_JAPAN2               = 394,     /* Japan (JP0) */
97     CTRY_JAPAN3               = 395,     /* Japan (JP1-1) */
98     CTRY_JAPAN4               = 396,     /* Japan (JE1) */
99     CTRY_JAPAN5               = 397,     /* Japan (JE2) */
100     CTRY_JAPAN6               = 399,     /* Japan (JP6) */
101
102     CTRY_JAPAN7               = 4007,    /* Japan (J7) */
103     CTRY_JAPAN8               = 4008,    /* Japan (J8) */
104     CTRY_JAPAN9               = 4009,    /* Japan (J9) */
105
106     CTRY_JAPAN10              = 4010,    /* Japan (J10) */
107     CTRY_JAPAN11              = 4011,    /* Japan (J11) */
108     CTRY_JAPAN12              = 4012,    /* Japan (J12) */
109
110     CTRY_JAPAN13              = 4013,    /* Japan (J13) */
111     CTRY_JAPAN14              = 4014,    /* Japan (J14) */
112     CTRY_JAPAN15              = 4015,    /* Japan (J15) */
113
114     CTRY_JAPAN16              = 4016,    /* Japan (J16) */
115     CTRY_JAPAN17              = 4017,    /* Japan (J17) */
116     CTRY_JAPAN18              = 4018,    /* Japan (J18) */
117
118     CTRY_JAPAN19              = 4019,    /* Japan (J19) */
119     CTRY_JAPAN20              = 4020,    /* Japan (J20) */
120     CTRY_JAPAN21              = 4021,    /* Japan (J21) */
121
122     CTRY_JAPAN22              = 4022,    /* Japan (J22) */
123     CTRY_JAPAN23              = 4023,    /* Japan (J23) */
124     CTRY_JAPAN24              = 4024,    /* Japan (J24) */
125
126     CTRY_JAPAN25              = 4025,    /* Japan (J25) */
127     CTRY_JAPAN26              = 4026,    /* Japan (J26) */
128     CTRY_JAPAN27              = 4027,    /* Japan (J27) */
129
130     CTRY_JAPAN28              = 4028,    /* Japan (J28) */
131     CTRY_JAPAN29              = 4029,    /* Japan (J29) */
132     CTRY_JAPAN30              = 4030,    /* Japan (J30) */
133
134     CTRY_JAPAN31              = 4031,    /* Japan (J31) */
135     CTRY_JAPAN32              = 4032,    /* Japan (J32) */
136     CTRY_JAPAN33              = 4033,    /* Japan (J33) */
137
138     CTRY_JAPAN34              = 4034,    /* Japan (J34) */
139     CTRY_JAPAN35              = 4035,    /* Japan (J35) */
140     CTRY_JAPAN36              = 4036,    /* Japan (J36) */
141
142     CTRY_JAPAN37              = 4037,    /* Japan (J37) */
143     CTRY_JAPAN38              = 4038,    /* Japan (J38) */
144     CTRY_JAPAN39              = 4039,    /* Japan (J39) */
145
146     CTRY_JAPAN40              = 4040,    /* Japan (J40) */
147     CTRY_JAPAN41              = 4041,    /* Japan (J41) */
148     CTRY_JAPAN42              = 4042,    /* Japan (J42) */
149     CTRY_JAPAN43              = 4043,    /* Japan (J43) */
150     CTRY_JAPAN44              = 4044,    /* Japan (J44) */
151     CTRY_JAPAN45              = 4045,    /* Japan (J45) */
152     CTRY_JAPAN46              = 4046,    /* Japan (J46) */
153     CTRY_JAPAN47              = 4047,    /* Japan (J47) */
154     CTRY_JAPAN48              = 4048,    /* Japan (J48) */
155     CTRY_JAPAN49              = 4049,    /* Japan (J49) */
156
157     CTRY_JAPAN50              = 4050,    /* Japan (J50) */
158     CTRY_JAPAN51              = 4051,    /* Japan (J51) */
159     CTRY_JAPAN52              = 4052,    /* Japan (J52) */
160     CTRY_JAPAN53              = 4053,    /* Japan (J53) */
161     CTRY_JAPAN54              = 4054,    /* Japan (J54) */
162
163     CTRY_JORDAN               = 400,     /* Jordan */
164     CTRY_KAZAKHSTAN           = 398,     /* Kazakhstan */
165     CTRY_KENYA                = 404,     /* Kenya */
166     CTRY_KOREA_NORTH          = 408,     /* North Korea */
167     CTRY_KOREA_ROC            = 410,     /* South Korea */
168     CTRY_KOREA_ROC2           = 411,     /* South Korea */
169     CTRY_KOREA_ROC3           = 412,     /* 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,     /* the Former Yugoslav Republic of Macedonia */
179     CTRY_MALAYSIA             = 458,     /* Malaysia */
180     CTRY_MALTA                = 470,     /* Malta */
181     CTRY_MEXICO               = 484,     /* Mexico */
182     CTRY_MONACO               = 492,     /* Principality of Monaco */
183     CTRY_MOROCCO              = 504,     /* Morocco */
184     CTRY_NETHERLANDS          = 528,     /* Netherlands */
185     CTRY_NETHERLANDS_ANT      = 530,     /* Netherlands-Antellis */
186     CTRY_NEW_ZEALAND          = 554,     /* New Zealand */
187     CTRY_NICARAGUA            = 558,     /* Nicaragua */
188     CTRY_NORWAY               = 578,     /* Norway */
189     CTRY_OMAN                 = 512,     /* Oman */
190     CTRY_PAKISTAN             = 586,     /* Islamic Republic of Pakistan */
191     CTRY_PANAMA               = 591,     /* Panama */
192     CTRY_PARAGUAY             = 600,     /* Paraguay */
193     CTRY_PERU                 = 604,     /* Peru */
194     CTRY_PHILIPPINES          = 608,     /* Republic of the Philippines */
195     CTRY_POLAND               = 616,     /* Poland */
196     CTRY_PORTUGAL             = 620,     /* Portugal */
197     CTRY_PUERTO_RICO          = 630,     /* Puerto Rico */
198     CTRY_QATAR                = 634,     /* Qatar */
199     CTRY_ROMANIA              = 642,     /* Romania */
200     CTRY_RUSSIA               = 643,     /* Russia */
201     CTRY_SAUDI_ARABIA         = 682,     /* Saudi Arabia */
202     CTRY_SERBIA_MONT          = 891,     /* Serbia and Montenegro */
203     CTRY_SINGAPORE            = 702,     /* Singapore */
204     CTRY_SLOVAKIA             = 703,     /* Slovak Republic */
205     CTRY_SLOVENIA             = 705,     /* Slovenia */
206     CTRY_SOUTH_AFRICA         = 710,     /* South Africa */
207     CTRY_SPAIN                = 724,     /* Spain */
208     CTRY_SRILANKA             = 144,     /* Srilanka */
209     CTRY_SWEDEN               = 752,     /* Sweden */
210     CTRY_SWITZERLAND          = 756,     /* Switzerland */
211     CTRY_SYRIA                = 760,     /* Syria */
212     CTRY_TAIWAN               = 158,     /* Taiwan */
213     CTRY_THAILAND             = 764,     /* Thailand */
214     CTRY_TRINIDAD_Y_TOBAGO    = 780,     /* Trinidad y Tobago */
215     CTRY_TUNISIA              = 788,     /* Tunisia */
216     CTRY_TURKEY               = 792,     /* Turkey */
217     CTRY_UAE                  = 784,     /* U.A.E. */
218     CTRY_UKRAINE              = 804,     /* Ukraine */
219     CTRY_UNITED_KINGDOM       = 826,     /* United Kingdom */
220     CTRY_UNITED_STATES        = 840,     /* United States */
221     CTRY_UNITED_STATES_FCC49  = 842,     /* United States (Public Safety)*/
222     CTRY_URUGUAY              = 858,     /* Uruguay */
223     CTRY_UZBEKISTAN           = 860,     /* Uzbekistan */
224     CTRY_VENEZUELA            = 862,     /* Venezuela */
225     CTRY_VIET_NAM             = 704,     /* Viet Nam */
226     CTRY_YEMEN                = 887,     /* Yemen */
227     CTRY_ZIMBABWE             = 716      /* Zimbabwe */
228 };
229
230 /* Enumerated Regulatory Domain Information 8 bit values indicate that
231  * the regdomain is really a pair of unitary regdomains.  12 bit values
232  * are the real unitary regdomains and are the only ones which have the
233  * frequency bitmasks and flags set.
234  */
235 enum EnumRd {
236         /*
237          * The following regulatory domain definitions are
238          * found in the EEPROM. Each regulatory domain
239          * can operate in either a 5GHz or 2.4GHz wireless mode or
240          * both 5GHz and 2.4GHz wireless modes.
241          * In general, the value holds no special
242          * meaning and is used to decode into either specific
243          * 2.4GHz or 5GHz wireless mode for that particular
244          * regulatory domain.
245          */
246         NO_ENUMRD       = 0x00,
247         NULL1_WORLD     = 0x03,         /* For 11b-only countries (no 11a allowed) */
248         NULL1_ETSIB     = 0x07,         /* Israel */
249         NULL1_ETSIC     = 0x08,
250         FCC1_FCCA       = 0x10,         /* USA */
251         FCC1_WORLD      = 0x11,         /* Hong Kong */
252         FCC4_FCCA       = 0x12,         /* USA - Public Safety */
253         FCC5_FCCA       = 0x13,         /* USA - with no DFS (UNII-1 + UNII-3 only) */
254   FCC6_FCCA       = 0x14,         /* Canada */
255
256         FCC2_FCCA       = 0x20,         /* Canada */
257         FCC2_WORLD      = 0x21,         /* Australia & HK */
258         FCC2_ETSIC      = 0x22,
259   FCC6_WORLD      = 0x23,         /* Australia */
260
261         FRANCE_RES      = 0x31,         /* Legacy France for OEM */
262         FCC3_FCCA       = 0x3A,         /* USA & Canada w/5470 band, 11h, DFS enabled */
263         FCC3_WORLD      = 0x3B,         /* USA & Canada w/5470 band, 11h, DFS enabled */
264
265         ETSI1_WORLD     = 0x37,
266         ETSI3_ETSIA     = 0x32,         /* France (optional) */
267         ETSI2_WORLD     = 0x35,         /* Hungary & others */
268         ETSI3_WORLD     = 0x36,         /* France & others */
269         ETSI4_WORLD     = 0x30,
270         ETSI4_ETSIC     = 0x38,
271         ETSI5_WORLD     = 0x39,
272         ETSI6_WORLD     = 0x34,         /* Bulgaria */
273         ETSI_RESERVED   = 0x33,         /* Reserved (Do not used) */
274
275         MKK1_MKKA       = 0x40,         /* Japan (JP1) */
276         MKK1_MKKB       = 0x41,         /* Japan (JP0) */
277         APL4_WORLD      = 0x42,         /* Singapore */
278         MKK2_MKKA       = 0x43,         /* Japan with 4.9G channels */
279         APL_RESERVED    = 0x44,         /* Reserved (Do not used)  */
280         APL2_WORLD      = 0x45,         /* Korea */
281         APL2_APLC       = 0x46,
282         APL3_WORLD      = 0x47,
283         MKK1_FCCA       = 0x48,         /* Japan (JP1-1) */
284         APL2_APLD       = 0x49,         /* Korea with 2.3G channels */
285         MKK1_MKKA1      = 0x4A,         /* Japan (JE1) */
286         MKK1_MKKA2      = 0x4B,         /* Japan (JE2) */
287         MKK1_MKKC       = 0x4C,         /* Japan (MKK1_MKKA,except Ch14) */
288
289         APL3_FCCA   = 0x50,
290         APL1_WORLD      = 0x52,         /* Latin America */
291         APL1_FCCA       = 0x53,
292         APL1_APLA       = 0x54,
293         APL1_ETSIC      = 0x55,
294         APL2_ETSIC      = 0x56,         /* Venezuela */
295         APL2_FCCA   = 0x57,     /* new Latin America */
296         APL5_WORLD      = 0x58,         /* Chile */
297         APL6_WORLD      = 0x5B,         /* Singapore */
298         APL7_FCCA   = 0x5C,     /* Taiwan 5.47 Band */
299         APL8_WORLD  = 0x5D,     /* Malaysia 5GHz */
300         APL9_WORLD  = 0x5E,     /* Korea 5GHz */
301
302         /*
303          * World mode SKUs
304          */
305         WOR0_WORLD      = 0x60,         /* World0 (WO0 SKU) */
306         WOR1_WORLD      = 0x61,         /* World1 (WO1 SKU) */
307         WOR2_WORLD      = 0x62,         /* World2 (WO2 SKU) */
308         WOR3_WORLD      = 0x63,         /* World3 (WO3 SKU) */
309         WOR4_WORLD      = 0x64,         /* World4 (WO4 SKU) */
310         WOR5_ETSIC      = 0x65,         /* World5 (WO5 SKU) */
311
312         WOR01_WORLD     = 0x66,         /* World0-1 (WW0-1 SKU) */
313         WOR02_WORLD     = 0x67,         /* World0-2 (WW0-2 SKU) */
314         EU1_WORLD       = 0x68,         /* Same as World0-2 (WW0-2 SKU), except active scan ch1-13. No ch14 */
315
316         WOR9_WORLD      = 0x69,         /* World9 (WO9 SKU) */
317         WORA_WORLD      = 0x6A,         /* WorldA (WOA SKU) */
318
319         MKK3_MKKB       = 0x80,         /* Japan UNI-1 even + MKKB */
320         MKK3_MKKA2      = 0x81,         /* Japan UNI-1 even + MKKA2 */
321         MKK3_MKKC       = 0x82,         /* Japan UNI-1 even + MKKC */
322
323         MKK4_MKKB       = 0x83,         /* Japan UNI-1 even + UNI-2 + MKKB */
324         MKK4_MKKA2      = 0x84,         /* Japan UNI-1 even + UNI-2 + MKKA2 */
325         MKK4_MKKC       = 0x85,         /* Japan UNI-1 even + UNI-2 + MKKC */
326
327         MKK5_MKKB       = 0x86,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKB */
328         MKK5_MKKA2      = 0x87,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKA2 */
329         MKK5_MKKC       = 0x88,         /* Japan UNI-1 even + UNI-2 + mid-band + MKKC */
330
331         MKK6_MKKB       = 0x89,         /* Japan UNI-1 even + UNI-1 odd MKKB */
332         MKK6_MKKA2      = 0x8A,         /* Japan UNI-1 even + UNI-1 odd + MKKA2 */
333         MKK6_MKKC       = 0x8B,         /* Japan UNI-1 even + UNI-1 odd + MKKC */
334
335         MKK7_MKKB       = 0x8C,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKB */
336         MKK7_MKKA       = 0x8D,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKA2 */
337         MKK7_MKKC       = 0x8E,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKC */
338
339         MKK8_MKKB       = 0x8F,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKB */
340         MKK8_MKKA2      = 0x90,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKA2 */
341         MKK8_MKKC       = 0x91,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + mid-band + MKKC */
342
343         MKK6_MKKA1      = 0xF8,         /* Japan UNI-1 even + UNI-1 odd + MKKA1 */
344         MKK6_FCCA       = 0xF9,         /* Japan UNI-1 even + UNI-1 odd + FCCA */
345         MKK7_MKKA1      = 0xFA,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + MKKA1 */
346         MKK7_FCCA       = 0xFB,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + FCCA */
347         MKK9_FCCA       = 0xFC,         /* Japan UNI-1 even + 4.9GHz + FCCA */
348         MKK9_MKKA1      = 0xFD,         /* Japan UNI-1 even + 4.9GHz + MKKA1 */
349         MKK9_MKKC       = 0xFE,         /* Japan UNI-1 even + 4.9GHz + MKKC */
350         MKK9_MKKA2      = 0xFF,         /* Japan UNI-1 even + 4.9GHz + MKKA2 */
351
352         MKK10_FCCA      = 0xD0,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + FCCA */
353         MKK10_MKKA1     = 0xD1,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKA1 */
354         MKK10_MKKC      = 0xD2,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKC */
355         MKK10_MKKA2     = 0xD3,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKA2 */
356
357         MKK11_MKKA      = 0xD4,         /* Japan UNI-1 even + UNI-2 + Midband + 4.9GHz + MKKA */
358         MKK11_FCCA      = 0xD5,         /* Japan UNI-1 even + UNI-2 + Midband + 4.9GHz + FCCA */
359         MKK11_MKKA1     = 0xD6,         /* Japan UNI-1 even + UNI-2 + Midband + 4.9GHz + MKKA1 */
360         MKK11_MKKC      = 0xD7,         /* Japan UNI-1 even + UNI-2 + Midband + 4.9GHz + MKKC */
361         MKK11_MKKA2     = 0xD8,         /* Japan UNI-1 even + UNI-2 + Midband + 4.9GHz + MKKA2 */
362
363         MKK12_MKKA      = 0xD9,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + Midband + 4.9GHz + MKKA */
364         MKK12_FCCA      = 0xDA,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + Midband + 4.9GHz + FCCA */
365         MKK12_MKKA1     = 0xDB,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + Midband + 4.9GHz + MKKA1 */
366         MKK12_MKKC      = 0xDC,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + Midband + 4.9GHz + MKKC */
367         MKK12_MKKA2     = 0xDD,         /* Japan UNI-1 even + UNI-1 odd + UNI-2 + Midband + 4.9GHz + MKKA2 */
368
369         /* Following definitions are used only by s/w to map old
370          * Japan SKUs.
371          */
372         MKK3_MKKA       = 0xF0,         /* Japan UNI-1 even + MKKA */
373         MKK3_MKKA1      = 0xF1,         /* Japan UNI-1 even + MKKA1 */
374         MKK3_FCCA       = 0xF2,         /* Japan UNI-1 even + FCCA */
375         MKK4_MKKA       = 0xF3,         /* Japan UNI-1 even + UNI-2 + MKKA */
376         MKK4_MKKA1      = 0xF4,         /* Japan UNI-1 even + UNI-2 + MKKA1 */
377         MKK4_FCCA       = 0xF5,         /* Japan UNI-1 even + UNI-2 + FCCA */
378         MKK9_MKKA       = 0xF6,         /* Japan UNI-1 even + 4.9GHz + MKKA*/
379         MKK10_MKKA      = 0xF7,         /* Japan UNI-1 even + UNI-2 + 4.9GHz + MKKA */
380
381         /*
382          * Regulator domains ending in a number (e.g. APL1,
383          * MK1, ETSI4, etc) apply to 5GHz channel and power
384          * information.  Regulator domains ending in a letter
385          * (e.g. APLA, FCCA, etc) apply to 2.4GHz channel and
386          * power information.
387          */
388         APL1            = 0x0150,       /* LAT & Asia */
389         APL2            = 0x0250,       /* LAT & Asia */
390         APL3            = 0x0350,       /* Taiwan */
391         APL4            = 0x0450,       /* Jordan */
392         APL5            = 0x0550,       /* Chile */
393         APL6            = 0x0650,       /* Singapore */
394         APL7            = 0x0750,       /* Taiwan Middle */
395         APL8            = 0x0850,       /* Malaysia */
396         APL9            = 0x0950,       /* Korea (South) ROC 3 */
397
398         ETSI1           = 0x0130,       /* Europe & others */
399         ETSI2           = 0x0230,       /* Europe & others */
400         ETSI3           = 0x0330,       /* Europe & others */
401         ETSI4           = 0x0430,       /* Europe & others */
402         ETSI5           = 0x0530,       /* Europe & others */
403         ETSI6           = 0x0630,       /* Europe & others */
404         ETSIA           = 0x0A30,       /* France */
405         ETSIB           = 0x0B30,       /* Israel */
406         ETSIC           = 0x0C30,       /* Latin America */
407
408         FCC1            = 0x0110,       /* US & others */
409         FCC2            = 0x0120,       /* Canada, Australia & New Zealand */
410         FCC3            = 0x0160,       /* US w/new middle band & DFS */
411         FCC4            = 0x0165,       /* US Public Safety */
412         FCC5            = 0x0510,       /* US no DFS */
413     FCC6    = 0x0610, /* Canada & Australia */
414
415         FCCA            = 0x0A10,
416
417         APLD            = 0x0D50,       /* South Korea */
418
419         MKK1            = 0x0140,       /* Japan (UNI-1 odd)*/
420         MKK2            = 0x0240,       /* Japan (4.9 GHz + UNI-1 odd) */
421         MKK3            = 0x0340,       /* Japan (UNI-1 even) */
422         MKK4            = 0x0440,       /* Japan (UNI-1 even + UNI-2) */
423         MKK5            = 0x0540,       /* Japan (UNI-1 even + UNI-2 + mid-band) */
424         MKK6            = 0x0640,       /* Japan (UNI-1 odd + UNI-1 even) */
425         MKK7            = 0x0740,       /* Japan (UNI-1 odd + UNI-1 even + UNI-2 */
426         MKK8            = 0x0840,       /* Japan (UNI-1 odd + UNI-1 even + UNI-2 + mid-band) */
427         MKK9            = 0x0940,   /* Japan (UNI-1 even + 4.9 GHZ) */
428         MKK10           = 0x0B40,   /* Japan (UNI-1 even + UNI-2 + 4.9 GHZ) */
429         MKK11           = 0x1140,   /* Japan (UNI-1 even + UNI-2 + mid-band + 4.9 GHZ) */
430         MKK12           = 0x1240,   /* Japan (UNI-1 even + UNI-1 odd + UNI-2 + mid-band + 4.9 GHZ) */
431         MKKA            = 0x0A40,       /* Japan */
432         MKKC            = 0x0A50,
433
434         NULL1           = 0x0198,
435         WORLD           = 0x0199,
436         DEBUG_REG_DMN   = 0x01ff,
437 };
438
439 /* channelFlags */
440 #define ZM_REG_FLAG_CHANNEL_CW_INT      0x0002  /* CW interference detected on channel */
441 #define ZM_REG_FLAG_CHANNEL_TURBO       0x0010  /* Turbo Channel */
442 #define ZM_REG_FLAG_CHANNEL_CCK     0x0020      /* CCK channel */
443 #define ZM_REG_FLAG_CHANNEL_OFDM        0x0040  /* OFDM channel */
444 #define ZM_REG_FLAG_CHANNEL_2GHZ        0x0080  /* 2 GHz spectrum channel. */
445 #define ZM_REG_FLAG_CHANNEL_5GHZ        0x0100  /* 5 GHz spectrum channel */
446 #define ZM_REG_FLAG_CHANNEL_PASSIVE     0x0200  /* Only passive scan allowed in the channel */
447 #define ZM_REG_FLAG_CHANNEL_DYN     0x0400      /* dynamic CCK-OFDM channel */
448 #define ZM_REG_FLAG_CHANNEL_XR      0x0800      /* XR channel */
449 #define ZM_REG_FLAG_CHANNEL_CSA         0x1000  /* Channel by CSA(Channel Switch Announcement) */
450 #define ZM_REG_FLAG_CHANNEL_STURBO      0x2000  /* Static turbo, no 11a-only usage */
451 #define ZM_REG_FLAG_CHANNEL_HALF    0x4000      /* Half rate channel */
452 #define ZM_REG_FLAG_CHANNEL_QUARTER 0x8000      /* Quarter rate channel */
453
454 /* channelFlags */
455 #define CHANNEL_CW_INT  0x0002  /* CW interference detected on channel */
456 #define CHANNEL_TURBO   0x0010  /* Turbo Channel */
457 #define CHANNEL_CCK 0x0020  /* CCK channel */
458 #define CHANNEL_OFDM    0x0040  /* OFDM channel */
459 #define CHANNEL_2GHZ    0x0080  /* 2 GHz spectrum channel. */
460 #define CHANNEL_5GHZ    0x0100  /* 5 GHz spectrum channel */
461 #define CHANNEL_PASSIVE 0x0200  /* Only passive scan allowed in the channel */
462 #define CHANNEL_DYN 0x0400  /* dynamic CCK-OFDM channel */
463 #define CHANNEL_XR  0x0800  /* XR channel */
464 #define CHANNEL_STURBO  0x2000  /* Static turbo, no 11a-only usage */
465 #define CHANNEL_HALF    0x4000  /* Half rate channel */
466 #define CHANNEL_QUARTER 0x8000  /* Quarter rate channel */
467 #define CHANNEL_HT20    0x10000 /* HT20 channel */
468 #define CHANNEL_HT40    0x20000 /* HT40 channel */
469 #define CHANNEL_HT40U   0x40000 /* control channel can be upper channel */
470 #define CHANNEL_HT40L   0x80000 /* control channel can be lower channel */
471
472 /* privFlags */
473 #define ZM_REG_FLAG_CHANNEL_INTERFERENCE        0x01 /* Software use: channel interference
474                                         used for as AR as well as RADAR
475                                         interference detection */
476 #define ZM_REG_FLAG_CHANNEL_DFS         0x02 /* DFS required on channel */
477 #define ZM_REG_FLAG_CHANNEL_4MS_LIMIT   0x04 /* 4msec packet limit on this channel */
478 #define ZM_REG_FLAG_CHANNEL_DFS_CLEAR       0x08 /* if channel has been checked for DFS */
479
480 #define CHANNEL_A   (CHANNEL_5GHZ|CHANNEL_OFDM)
481 #define CHANNEL_B   (CHANNEL_2GHZ|CHANNEL_CCK)
482 #define CHANNEL_PUREG   (CHANNEL_2GHZ|CHANNEL_OFDM)
483 #ifdef notdef
484 #define CHANNEL_G   (CHANNEL_2GHZ|CHANNEL_DYN)
485 #else
486 #define CHANNEL_G   (CHANNEL_2GHZ|CHANNEL_OFDM)
487 #endif
488 #define CHANNEL_T   (CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_TURBO)
489 #define CHANNEL_ST  (CHANNEL_T|CHANNEL_STURBO)
490 #define CHANNEL_108G    (CHANNEL_2GHZ|CHANNEL_OFDM|CHANNEL_TURBO)
491 #define CHANNEL_108A    CHANNEL_T
492 #define CHANNEL_X   (CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_XR)
493 #define CHANNEL_G_HT      (CHANNEL_2GHZ | CHANNEL_OFDM | CHANNEL_HT20)
494 #define CHANNEL_A_HT      (CHANNEL_5GHZ | CHANNEL_OFDM | CHANNEL_HT20)
495
496 #define CHANNEL_G_HT20  (CHANNEL_2GHZ|CHANNEL_HT20)
497 #define CHANNEL_A_HT20  (CHANNEL_5GHZ|CHANNEL_HT20)
498 #define CHANNEL_G_HT40  (CHANNEL_2GHZ|CHANNEL_HT20|CHANNEL_HT40)
499 #define CHANNEL_A_HT40  (CHANNEL_5GHZ|CHANNEL_HT20|CHANNEL_HT40)
500 #define CHANNEL_ALL \
501     (CHANNEL_OFDM|CHANNEL_CCK| CHANNEL_2GHZ | CHANNEL_5GHZ | CHANNEL_TURBO | CHANNEL_HT20 | CHANNEL_HT40)
502 #define CHANNEL_ALL_NOTURBO     (CHANNEL_ALL &~ CHANNEL_TURBO)
503
504 enum {
505     HAL_MODE_11A    = 0x001,        /* 11a channels */
506     HAL_MODE_TURBO  = 0x002,        /* 11a turbo-only channels */
507     HAL_MODE_11B    = 0x004,        /* 11b channels */
508     HAL_MODE_PUREG  = 0x008,        /* 11g channels (OFDM only) */
509 #ifdef notdef
510     HAL_MODE_11G    = 0x010,        /* 11g channels (OFDM/CCK) */
511 #else
512     HAL_MODE_11G    = 0x008,        /* XXX historical */
513 #endif
514     HAL_MODE_108G   = 0x020,        /* 11a+Turbo channels */
515     HAL_MODE_108A   = 0x040,        /* 11g+Turbo channels */
516     HAL_MODE_XR     = 0x100,        /* XR channels */
517     HAL_MODE_11A_HALF_RATE = 0x200,     /* 11A half rate channels */
518     HAL_MODE_11A_QUARTER_RATE = 0x400,  /* 11A quarter rate channels */
519     HAL_MODE_11NG   = 0x4000,           /* 11ng channels */
520     HAL_MODE_11NA   = 0x8000,           /* 11na channels */
521     HAL_MODE_ALL    = 0xffff
522 };
523
524 #endif /* #ifndef _HPREG_H */