net: wireless: rockchip_wlan: add rtl8723cs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723cs / hal / phydm / rtchnlplan.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  *
19  ******************************************************************************/
20
21
22 #ifndef __RT_CHANNELPLAN_H__
23 #define __RT_CHANNELPLAN_H__
24
25 enum rt_channel_domain_new {
26
27         /* ===== Add new channel plan above this line =============== */
28
29         /* For new architecture we define different 2G/5G CH area for all country. */
30         /* 2.4 G only */
31         RT_CHANNEL_DOMAIN_2G_WORLD_5G_NULL                              = 0x20,
32         RT_CHANNEL_DOMAIN_2G_ETSI1_5G_NULL                              = 0x21,
33         RT_CHANNEL_DOMAIN_2G_FCC1_5G_NULL                               = 0x22,
34         RT_CHANNEL_DOMAIN_2G_MKK1_5G_NULL                               = 0x23,
35         RT_CHANNEL_DOMAIN_2G_ETSI2_5G_NULL                              = 0x24,
36         /* 2.4 G + 5G type 1 */
37         RT_CHANNEL_DOMAIN_2G_FCC1_5G_FCC1                               = 0x25,
38         RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1                             = 0x26,
39         /* RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1                          = 0x27, */
40         /* ..... */
41
42         RT_CHANNEL_DOMAIN_MAX_NEW,
43
44 };
45
46
47 #if 0
48 #define DOMAIN_CODE_2G_WORLD \
49         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
50 #define DOMAIN_CODE_2G_ETSI1 \
51         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
52 #define DOMAIN_CODE_2G_ETSI2 \
53         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
54 #define DOMAIN_CODE_2G_FCC1 \
55         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
56 #define DOMAIN_CODE_2G_MKK1 \
57         {10, 11, 12, 13}, 4
58
59 #define DOMAIN_CODE_5G_ETSI1 \
60         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
61 #define DOMAIN_CODE_5G_ETSI2 \
62         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24
63 #define DOMAIN_CODE_5G_ETSI3 \
64         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
65 #define DOMAIN_CODE_5G_FCC1 \
66         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24
67 #define DOMAIN_CODE_5G_FCC2 \
68         {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
69 #define DOMAIN_CODE_5G_FCC3 \
70         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
71 #define DOMAIN_CODE_5G_FCC4 \
72         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
73 #define DOMAIN_CODE_5G_FCC5 \
74         {149, 153, 157, 161, 165}, 5
75 #define DOMAIN_CODE_5G_FCC6 \
76         {36, 40, 44, 48, 52, 56, 60, 64}, 8
77 #define DOMAIN_CODE_5G_FCC7 \
78         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
79 #define DOMAIN_CODE_5G_IC1 \
80         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
81 #define DOMAIN_CODE_5G_KCC1 \
82         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
83 #define DOMAIN_CODE_5G_MKK1 \
84         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
85 #define DOMAIN_CODE_5G_MKK2 \
86         {36, 40, 44, 48, 52, 56, 60, 64}, 8
87 #define DOMAIN_CODE_5G_MKK3 \
88         {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
89 #define DOMAIN_CODE_5G_NCC1 \
90         {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
91 #define DOMAIN_CODE_5G_NCC2 \
92         {56, 60, 64, 149, 153, 157, 161, 165}, 8
93 #define UNDEFINED \
94         {0}, 0
95 #endif
96
97 /*
98  *
99  *
100  *
101
102 Countries                                                       "Country Abbreviation"  Domain Code                                     SKU's   Ch# of 20MHz
103                                                                                                                         2G                      5G                                              Ch# of 40MHz
104 "Albaniaªüº¸¤Ú¥§¨È"                                     AL                                                                                                      Local Test
105
106 "Algeriaªüº¸¤Î§Q¨È"                                     DZ                                                                      CE TCF
107
108 "Antigua & Barbuda¦w´£¥Ê®q&¤Ú¥¬¹F"      AG                                              2G_WORLD                                        FCC TCF
109
110 "Argentinaªü®Ú§Ê"                                       AR                                              2G_WORLD                                        Local Test
111
112 "Armenia¨È¬ü¥§¨È"                                       AM                                              2G_WORLD                                        ETSI
113
114 "Arubaªü¾|¤Ú®q"                                         AW                                              2G_WORLD                                        FCC TCF
115
116 "Australia¿D¬w"                                         AU                                              2G_WORLD                5G_ETSI2
117
118 "Austria¶ø¦a§Q"                                         AT                                              2G_WORLD                5G_ETSI1        CE
119
120 "Azerbaijanªü¶ë«ô¾Ê"                            AZ                                              2G_WORLD                                        CE TCF
121
122 "Bahamas¤Ú«¢°¨"                                         BS                                              2G_WORLD
123
124 "Barbados¤Ú¤Ú¦h´µ"                                      BB                                              2G_WORLD                                        FCC TCF
125
126 "Belgium¤ñ§Q®É"                                         BE                                              2G_WORLD                5G_ETSI1        CE
127
128 "Bermuda¦Ê¼}¹F"                                         BM                                              2G_WORLD                                        FCC TCF
129
130 "Brazil¤Ú¦è"                                            BR                                              2G_WORLD                                        Local Test
131
132 "Bulgaria«O¥[§Q¨È"                                      BG                                              2G_WORLD                5G_ETSI1        CE
133
134 "Canada¥[®³¤j"                                          CA                                              2G_FCC1                 5G_FCC7         IC / FCC        IC / FCC
135
136 "Cayman Islands¶}°Ò¸s®q"                        KY                                              2G_WORLD                5G_ETSI1        CE
137
138 "Chile´¼§Q"                                                     CL                                              2G_WORLD                                        FCC TCF
139
140 "China¤¤°ê"                                                     CN                                              2G_WORLD                5G_FCC5         «H³¡?¡i2002¡j353?
141
142 "Columbia­ô­Û¤ñ¨È"                                      CO                                              2G_WORLD                                        Voluntary
143
144 "Costa Rica­ô´µ¹F¾¤¥["                          CR                                              2G_WORLD                                        FCC TCF
145
146 "Cyprus¶ë®ú¸ô´µ"                                        CY                                              2G_WORLD                5G_ETSI1        CE
147
148 "Czech ±¶§J"                                            CZ                                              2G_WORLD                5G_ETSI1        CE
149
150 "Denmark¤¦³Á"                                           DK                                              2G_WORLD                5G_ETSI1        CE
151
152 "Dominican Republic¦h©ú¥§¥[¦@©M°ê"      DO                                              2G_WORLD                                        FCC TCF
153
154 "Egypt®J¤Î"     EG      2G_WORLD                        CE T                                                                                            CF
155
156 "El SalvadorÂĺ¸¥Ë¦h"                           SV                                              2G_WORLD                                        Voluntary
157
158 "Estonia·R¨F¥§¨È"                                       EE                                              2G_WORLD                5G_ETSI1        CE
159
160 "FinlandªâÄõ"                                           FI                                              2G_WORLD                5G_ETSI1        CE
161
162 "Franceªk°ê"                                            FR                                                                              5G_E            TSI1    CE
163
164 "Germany¼w°ê"                                           DE                                              2G_WORLD                5G_ETSI1        CE
165
166 "Greece §Æþ"                                           GR                                              2G_WORLD                5G_ETSI1        CE
167
168 "GuamÃö®q"                                                      GU                                              2G_WORLD
169
170 "Guatemala¥Ê¦a°¨©Ô"                                     GT                                              2G_WORLD
171
172 "Haiti®ü¦a"                                                     HT                                              2G_WORLD                                        FCC TCF
173
174 "Honduras§»³£©Ô´µ"                                      HN                                              2G_WORLD                                        FCC TCF
175
176 "Hungary¦I¤ú§Q"                                         HU                                              2G_WORLD                5G_ETSI1        CE
177
178 "Iceland¦B®q"                                           IS                                              2G_WORLD                5G_ETSI1        CE
179
180 "India¦L«×"                                                                                             2G_WORLD                5G_FCC3         FCC/CE TCF
181
182 "Ireland·Rº¸Äõ"                                         IE                                              2G_WORLD                5G_ETSI1        CE
183
184 "Israel¥H¦â¦C"                                          IL                                                                              5G_F            CC6     CE TCF
185
186 "Italy¸q¤j§Q"                                           IT                                              2G_WORLD                5G_ETSI1        CE
187
188 "Japan¤é¥»"                                                     JP                                              2G_MKK1                 5G_MKK1         MKK     MKK
189
190 "KoreaÁú°ê"                                                     KR                                              2G_WORLD                5G_KCC1         KCC     KCC
191
192 "Latvia©Ô²æºû¨È"                                        LV                                              2G_WORLD                5G_ETSI1        CE
193
194 "Lithuania¥ß³³©{"                                       LT                                              2G_WORLD                5G_ETSI1        CE
195
196 "Luxembourg¿c´Ë³ù"                                      LU                                              2G_WORLD                5G_ETSI1        CE
197
198 "Malaysia°¨¨Ó¦è¨È"                                      MY                                              2G_WORLD                                        Local Test
199
200 "Malta°¨º¸¥L"                                           MT                                              2G_WORLD                5G_ETSI1        CE
201
202 "Mexico¾¥¦è­ô"                                          MX                                              2G_WORLD                5G_FCC3         Local Test
203
204 "Morocco¼¯¬¥­ô"                                         MA                                                                                                      CE TCF
205
206 "Netherlands²üÄõ"                                       NL                                              2G_WORLD                5G_ETSI1        CE
207
208 "New Zealand¯Ã¦èÄõ"                                     NZ                                              2G_WORLD                5G_ETSI2
209
210 "Norway®¿«Â"                                            NO                                              2G_WORLD                5G_ETSI1        CE
211
212 "Panama¤Ú®³°¨ "                                         PA                                              2G_FCC1                                         Voluntary
213
214 "Philippinesµá«ß»«"                                     PH                                              2G_WORLD                                        FCC TCF
215
216 "PolandªiÄõ"                                            PL                                              2G_WORLD                5G_ETSI1        CE
217
218 "Portugal¸²µå¤ú"                                        PT                                              2G_WORLD                5G_ETSI1        CE
219
220 "Romaniaù°¨¥§¨È"                                       RO                                              2G_WORLD                5G_ETSI1        CE
221
222 "Russia«Xù´µ"                                          RU                                              2G_WORLD                5G_ETSI3        CE TCF
223
224 "Saudi Arabia¨F¦aªü©Ô§B"                        SA                                              2G_WORLD                                        CE TCF
225
226 "Singapore·s¥[©Y"                                       SG                                              2G_WORLD
227
228 "Slovakia´µ¬¥¥ï§J"                                      SK                                              2G_WORLD                5G_ETSI1        CE
229
230 "Slovenia´µ¬¥ºû¥§¨È"                            SI                                              2G_WORLD                5G_ETSI1        CE
231
232 "South Africa«n«D"                                      ZA                                              2G_WORLD                                        CE TCF
233
234 "Spain¦è¯Z¤ú"                                           ES                                                                              5G_ETSI1        CE
235
236 "Sweden·ç¨å"                                            SE                                              2G_WORLD                5G_ETSI1        CE
237
238 "Switzerland·ç¤h"                                       CH                                              2G_WORLD                5G_ETSI1        CE
239
240 "Taiwan»OÆW"                                            TW                                              2G_FCC1                 5G_NCC1 NCC
241
242 "Thailand®õ°ê"                                          TH                                              2G_WORLD                                        FCC/CE TCF
243
244 "Turkey¤g¦Õ¨ä"                                          TR                                              2G_WORLD
245
246 "Ukraine¯Q§JÄõ"                                         UA                                              2G_WORLD                                        Local Test
247
248 "United Kingdom­^°ê"                            GB                                              2G_WORLD                5G_ETSI1        CE      ETSI
249
250 "United States¬ü°ê"                                     US                                              2G_FCC1                 5G_FCC7         FCC     FCC
251
252 "Venezuela©e¤º·ç©Ô"                                     VE                                              2G_WORLD                5G_FCC4         FCC TCF
253
254 "Vietnam¶V«n"                                           VN                                              2G_WORLD                                        FCC/CE TCF
255
256
257
258 */
259
260 /* counter abbervation. */
261 enum rt_country_name {
262         RT_CTRY_AL,                             /*      "Albaniaªüº¸¤Ú¥§¨È" */
263         RT_CTRY_DZ,             /* "Algeriaªüº¸¤Î§Q¨È" */
264         RT_CTRY_AG,             /* "Antigua & Barbuda¦w´£¥Ê®q&¤Ú¥¬¹F" */
265         RT_CTRY_AR,             /* "Argentinaªü®Ú§Ê" */
266         RT_CTRY_AM,             /* "Armenia¨È¬ü¥§¨È" */
267         RT_CTRY_AW,             /* "Arubaªü¾|¤Ú®q" */
268         RT_CTRY_AU,             /* "Australia¿D¬w" */
269         RT_CTRY_AT,             /* "Austria¶ø¦a§Q" */
270         RT_CTRY_AZ,             /* "Azerbaijanªü¶ë«ô¾Ê" */
271         RT_CTRY_BS,             /* "Bahamas¤Ú«¢°¨" */
272         RT_CTRY_BB,             /* "Barbados¤Ú¤Ú¦h´µ" */
273         RT_CTRY_BE,             /* "Belgium¤ñ§Q®É" */
274         RT_CTRY_BM,             /* "Bermuda¦Ê¼}¹F" */
275         RT_CTRY_BR,             /* "Brazil¤Ú¦è" */
276         RT_CTRY_BG,             /* "Bulgaria«O¥[§Q¨È" */
277         RT_CTRY_CA,             /* "Canada¥[®³¤j" */
278         RT_CTRY_KY,             /* "Cayman Islands¶}°Ò¸s®q" */
279         RT_CTRY_CL,             /* "Chile´¼§Q" */
280         RT_CTRY_CN,             /* "China¤¤°ê" */
281         RT_CTRY_CO,             /* "Columbia­ô­Û¤ñ¨È" */
282         RT_CTRY_CR,             /* "Costa Rica­ô´µ¹F¾¤¥[" */
283         RT_CTRY_CY,             /* "Cyprus¶ë®ú¸ô´µ" */
284         RT_CTRY_CZ,             /* "Czech ±¶§J" */
285         RT_CTRY_DK,             /* "Denmark¤¦³Á" */
286         RT_CTRY_DO,             /* "Dominican Republic¦h©ú¥§¥[¦@©M°ê" */
287         RT_CTRY_CE,             /* "Egypt®J¤Î"  EG      2G_WORLD */
288         RT_CTRY_SV,             /* "El SalvadorÂĺ¸¥Ë¦h" */
289         RT_CTRY_EE,             /* "Estonia·R¨F¥§¨È" */
290         RT_CTRY_FI,             /* "FinlandªâÄõ" */
291         RT_CTRY_FR,             /* "Franceªk°ê" */
292         RT_CTRY_DE,             /* "Germany¼w°ê" */
293         RT_CTRY_GR,             /* "Greece §Æþ" */
294         RT_CTRY_GU,             /* "GuamÃö®q" */
295         RT_CTRY_GT,             /* "Guatemala¥Ê¦a°¨©Ô" */
296         RT_CTRY_HT,             /* "Haiti®ü¦a" */
297         RT_CTRY_HN,             /* "Honduras§»³£©Ô´µ" */
298         RT_CTRY_HU,             /* "Hungary¦I¤ú§Q" */
299         RT_CTRY_IS,             /* "Iceland¦B®q" */
300         RT_CTRY_IN,             /* "India¦L«×" */
301         RT_CTRY_IE,             /* "Ireland·Rº¸Äõ" */
302         RT_CTRY_IL,             /* "Israel¥H¦â¦C" */
303         RT_CTRY_IT,             /* "Italy¸q¤j§Q" */
304         RT_CTRY_JP,             /* "Japan¤é¥»" */
305         RT_CTRY_KR,             /* "KoreaÁú°ê" */
306         RT_CTRY_LV,             /* "Latvia©Ô²æºû¨È" */
307         RT_CTRY_LT,             /* "Lithuania¥ß³³©{" */
308         RT_CTRY_LU,             /* "Luxembourg¿c´Ë³ù" */
309         RT_CTRY_MY,             /* "Malaysia°¨¨Ó¦è¨È" */
310         RT_CTRY_MT,             /* "Malta°¨º¸¥L" */
311         RT_CTRY_MX,             /* "Mexico¾¥¦è­ô" */
312         RT_CTRY_MA,             /* "Morocco¼¯¬¥­ô" */
313         RT_CTRY_NL,             /* "Netherlands²üÄõ" */
314         RT_CTRY_NZ,             /* "New Zealand¯Ã¦èÄõ" */
315         RT_CTRY_NO,             /* "Norway®¿«Â" */
316         RT_CTRY_PA,             /* "Panama¤Ú®³°¨ " */
317         RT_CTRY_PH,             /* "Philippinesµá«ß»«" */
318         RT_CTRY_PL,             /* "PolandªiÄõ" */
319         RT_CTRY_PT,             /* "Portugal¸²µå¤ú" */
320         RT_CTRY_RO,             /* "Romaniaù°¨¥§¨È" */
321         RT_CTRY_RU,             /* "Russia«Xù´µ" */
322         RT_CTRY_SA,             /* "Saudi Arabia¨F¦aªü©Ô§B" */
323         RT_CTRY_SG,             /* "Singapore·s¥[©Y" */
324         RT_CTRY_SK,             /* "Slovakia´µ¬¥¥ï§J" */
325         RT_CTRY_SI,             /* "Slovenia´µ¬¥ºû¥§¨È" */
326         RT_CTRY_ZA,             /* "South Africa«n«D" */
327         RT_CTRY_ES,             /* "Spain¦è¯Z¤ú" */
328         RT_CTRY_SE,             /* "Sweden·ç¨å" */
329         RT_CTRY_CH,             /* "Switzerland·ç¤h" */
330         RT_CTRY_TW,             /* "Taiwan»OÆW" */
331         RT_CTRY_TH,             /* "Thailand®õ°ê" */
332         RT_CTRY_TR,             /* "Turkey¤g¦Õ¨ä" */
333         RT_CTRY_UA,             /* "Ukraine¯Q§JÄõ" */
334         RT_CTRY_GB,             /* "United Kingdom­^°ê" */
335         RT_CTRY_US,             /* "United States¬ü°ê" */
336         RT_CTRY_VE,             /* "Venezuela©e¤º·ç©Ô" */
337         RT_CTRY_VN,             /* "Vietnam¶V«n" */
338         RT_CTRY_MAX,
339
340 };
341
342 /* Scan type including active and passive scan. */
343 enum rt_scan_type_new {
344         SCAN_NULL,
345         SCAN_ACT,
346         SCAN_PAS,
347         SCAN_BOTH,
348 };
349
350
351 /* Power table sample. */
352
353 struct _RT_CHNL_PLAN_LIMIT {
354         u16     chnl_start;
355         u16     chnl_end;
356
357         u16     freq_start;
358         u16     freq_end;
359 };
360
361
362 /*
363  * 2.4G Regulatory Domains
364  *   */
365 enum rt_regulation_2g {
366         RT_2G_NULL,
367         RT_2G_WORLD,
368         RT_2G_ETSI1,
369         RT_2G_FCC1,
370         RT_2G_MKK1,
371         RT_2G_ETSI2
372
373 };
374
375
376 /* typedef struct _RT_CHANNEL_BEHAVIOR
377  * {
378  *      u8      chnl;
379  *      enum rt_scan_type_new
380  *
381  * }RT_CHANNEL_BEHAVIOR, *PRT_CHANNEL_BEHAVIOR; */
382
383 /* typedef struct _RT_CHANNEL_PLAN_TYPE
384  * {
385  *      RT_CHANNEL_BEHAVIOR
386  *      u8                                      Chnl_num;
387  * }RT_CHNL_PLAN_TYPE, *PRT_CHNL_PLAN_TYPE; */
388
389 /*
390  * 2.4G channel number
391  * channel definition & number
392  *   */
393 #define CHNL_RT_2G_NULL \
394         {0}, 0
395 #define CHNL_RT_2G_WORLD \
396         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
397 #define CHNL_RT_2G_WORLD_TEST \
398         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
399
400 #define CHNL_RT_2G_EFSI1 \
401         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
402 #define CHNL_RT_2G_FCC1 \
403         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
404 #define CHNL_RT_2G_MKK1 \
405         {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
406 #define CHNL_RT_2G_ETSI2 \
407         {10, 11, 12, 13}, 4
408
409 /*
410  * 2.4G channel active or passive scan.
411  *   */
412 #define CHNL_RT_2G_NULL_SCAN_TYPE \
413         {SCAN_NULL}
414 #define CHNL_RT_2G_WORLD_SCAN_TYPE \
415         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}
416 #define CHNL_RT_2G_EFSI1_SCAN_TYPE \
417         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
418 #define CHNL_RT_2G_FCC1_SCAN_TYPE \
419         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
420 #define CHNL_RT_2G_MKK1_SCAN_TYPE \
421         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
422 #define CHNL_RT_2G_ETSI2_SCAN_TYPE \
423         {1, 1, 1, 1}
424
425
426 /*
427  * 2.4G band & Frequency Section
428  * Freqency start & end / band number
429  *   */
430 #define FREQ_RT_2G_NULL \
431         {0}, 0
432 /* Passive scan CH 12, 13 */
433 #define FREQ_RT_2G_WORLD \
434         {2412, 2472}, 1
435 #define FREQ_RT_2G_EFSI1 \
436         {2412, 2472}, 1
437 #define FREQ_RT_2G_FCC1 \
438         {2412, 2462}, 1
439 #define FREQ_RT_2G_MKK1 \
440         {2412, 2484}, 1
441 #define FREQ_RT_2G_ETSI2 \
442         {2457, 2472}, 1
443
444
445 /*
446  * 5G Regulatory Domains
447  *   */
448 enum rt_regulation_5g {
449         RT_5G_NULL,
450         RT_5G_WORLD,
451         RT_5G_ETSI1,
452         RT_5G_ETSI2,
453         RT_5G_ETSI3,
454         RT_5G_FCC1,
455         RT_5G_FCC2,
456         RT_5G_FCC3,
457         RT_5G_FCC4,
458         RT_5G_FCC5,
459         RT_5G_FCC6,
460         RT_5G_FCC7,
461         RT_5G_IC1,
462         RT_5G_KCC1,
463         RT_5G_MKK1,
464         RT_5G_MKK2,
465         RT_5G_MKK3,
466         RT_5G_NCC1,
467
468 };
469
470 /*
471  * 5G channel number
472  *   */
473 #define CHNL_RT_5G_NULL \
474         {0}, 0
475 #define CHNL_RT_5G_WORLD \
476         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
477 #define CHNL_RT_5G_ETSI1 \
478         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24
479 #define CHNL_RT_5G_ETSI2 \
480         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
481 #define CHNL_RT_5G_ETSI3 \
482         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24
483 #define CHNL_RT_5G_FCC1 \
484         {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
485 #define CHNL_RT_5G_FCC2 \
486         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
487 #define CHNL_RT_5G_FCC3 \
488         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
489 #define CHNL_RT_5G_FCC4 \
490         {149, 153, 157, 161, 165}, 5
491 #define CHNL_RT_5G_FCC5 \
492         {36, 40, 44, 48, 52, 56, 60, 64}, 8
493 #define CHNL_RT_5G_FCC6 \
494         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
495 #define CHNL_RT_5G_FCC7 \
496         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
497 #define CHNL_RT_5G_IC1 \
498         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
499 #define CHNL_RT_5G_KCC1 \
500         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
501 #define CHNL_RT_5G_MKK1 \
502         {36, 40, 44, 48, 52, 56, 60, 64}, 8
503 #define CHNL_RT_5G_MKK2 \
504         {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
505 #define CHNL_RT_5G_MKK3 \
506         {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
507 #define CHNL_RT_5G_NCC1 \
508         {56, 60, 64, 149, 153, 157, 161, 165}, 8
509
510 /*
511  * 5G channel active or passive scan.
512  *   */
513 #define CHNL_RT_5G_NULL_SCAN_TYPE \
514         {SCAN_NULL}
515 #define CHNL_RT_5G_WORLD_SCAN_TYPE \
516         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
517 #define CHNL_RT_5G_ETSI1_SCAN_TYPE \
518         {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
519 #define CHNL_RT_5G_ETSI2_SCAN_TYPE \
520         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
521 #define CHNL_RT_5G_ETSI3_SCAN_TYPE \
522         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165}, 24
523 #define CHNL_RT_5G_FCC1_SCAN_TYPE \
524         {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
525 #define CHNL_RT_5G_FCC2_SCAN_TYPE \
526         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
527 #define CHNL_RT_5G_FCC3_SCAN_TYPE \
528         {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
529 #define CHNL_RT_5G_FCC4_SCAN_TYPE \
530         {149, 153, 157, 161, 165}, 5
531 #define CHNL_RT_5G_FCC5_SCAN_TYPE \
532         {36, 40, 44, 48, 52, 56, 60, 64}, 8
533 #define CHNL_RT_5G_FCC6_SCAN_TYPE \
534         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
535 #define CHNL_RT_5G_FCC7_SCAN_TYPE \
536         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
537 #define CHNL_RT_5G_IC1_SCAN_TYPE \
538         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
539 #define CHNL_RT_5G_KCC1_SCAN_TYPE \
540         {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
541 #define CHNL_RT_5G_MKK1_SCAN_TYPE \
542         {36, 40, 44, 48, 52, 56, 60, 64}, 8
543 #define CHNL_RT_5G_MKK2_SCAN_TYPE \
544         {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
545 #define CHNL_RT_5G_MKK3_SCAN_TYPE \
546         {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
547 #define CHNL_RT_5G_NCC1_SCAN_TYPE \
548         {56, 60, 64, 149, 153, 157, 161, 165}, 8
549
550 /*
551  * Global regulation
552  *   */
553 enum rt_regulation_cmn {
554         RT_WORLD,
555         RT_FCC,
556         RT_MKK,
557         RT_ETSI,
558         RT_IC,
559         RT_CE,
560         RT_NCC,
561
562 };
563
564
565
566 /*
567  * Special requirement for different regulation domain.
568  * For internal test or customerize special request.
569  *   */
570 enum rt_chnlplan_sreq {
571         RT_SREQ_NA                                              = 0x0,
572         RT_SREQ_2G_ADHOC_11N                    = 0x00000001,
573         RT_SREQ_2G_ADHOC_11B                    = 0x00000002,
574         RT_SREQ_2G_ALL_PASS                             = 0x00000004,
575         RT_SREQ_2G_ALL_ACT                              = 0x00000008,
576         RT_SREQ_5G_ADHOC_11N                    = 0x00000010,
577         RT_SREQ_5G_ADHOC_11AC                   = 0x00000020,
578         RT_SREQ_5G_ALL_PASS                             = 0x00000040,
579         RT_SREQ_5G_ALL_ACT                              = 0x00000080,
580         RT_SREQ_C1_PLAN                                 = 0x00000100,
581         RT_SREQ_C2_PLAN                                 = 0x00000200,
582         RT_SREQ_C3_PLAN                                 = 0x00000400,
583         RT_SREQ_C4_PLAN                                 = 0x00000800,
584         RT_SREQ_NFC_ON                                  = 0x00001000,
585         RT_SREQ_MASK                                    = 0x0000FFFF,   /* Requirements bit mask */
586
587 };
588
589
590 /*
591  * enum rt_country_name & enum rt_regulation_2g & enum rt_regulation_5g transfer table
592  *
593  *   */
594 struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE {
595         /*  */
596         /* Define countery domain and corresponding */
597         /*  */
598         enum rt_country_name            country_enum;
599         char                            country_name[3];
600
601         /* char         Domain_Name[12]; */
602         enum rt_regulation_2g   domain_2g;
603
604         enum rt_regulation_5g   domain_5g;
605
606         RT_CHANNEL_DOMAIN       rt_ch_domain;
607         /* u8           Country_Area; */
608
609 };
610
611
612 #define         RT_MAX_CHNL_NUM_2G              13
613 #define         RT_MAX_CHNL_NUM_5G              44
614
615 /* Power table sample. */
616
617 struct _RT_CHNL_PLAN_PWR_LIMIT {
618         u16     chnl_start;
619         u16     chnl_end;
620         u8      db_max;
621         u16     m_w_max;
622 };
623
624
625 #define         RT_MAX_BAND_NUM                 5
626
627 struct _RT_CHANNEL_PLAN_MAXPWR {
628         /*      STRING_T */
629         struct _RT_CHNL_PLAN_PWR_LIMIT  chnl[RT_MAX_BAND_NUM];
630         u8                              band_useful_num;
631
632
633 };
634
635
636 /*
637  * Power By rate Table.
638  *   */
639
640
641
642 struct _RT_CHANNEL_PLAN_NEW {
643         /*  */
644         /* Define countery domain and corresponding */
645         /*  */
646         /* char         country_name[36]; */
647         /* u8           country_enum; */
648
649         /* char         Domain_Name[12]; */
650
651
652         struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE          *p_ctry_transfer;
653
654         RT_CHANNEL_DOMAIN               rt_ch_domain;
655
656         enum rt_regulation_2g           domain_2g;
657
658         enum rt_regulation_5g           domain_5g;
659
660         enum rt_regulation_cmn          regulator;
661
662         enum rt_chnlplan_sreq           chnl_sreq;
663
664         /* struct _RT_CHNL_PLAN_LIMIT           RtChnl; */
665
666         u8      chnl_2g[MAX_CHANNEL_NUM];                               /* CHNL_RT_2G_WORLD */
667         u8      len_2g;
668         u8      chnl_2g_scan_tp[MAX_CHANNEL_NUM];                       /* CHNL_RT_2G_WORLD_SCAN_TYPE */
669         /* u8   Freq2G[2];                                                               */ /* FREQ_RT_2G_WORLD */
670
671         u8      chnl_5g[MAX_CHANNEL_NUM];
672         u8      len_5g;
673         u8      chnl_5g_scan_tp[MAX_CHANNEL_NUM];
674         /* u8   Freq2G[2];                                                               */ /* FREQ_RT_2G_WORLD */
675
676         struct _RT_CHANNEL_PLAN_MAXPWR  chnl_max_pwr;
677
678
679 };
680
681
682 #endif /* __RT_CHANNELPLAN_H__ */