1 /******************************************************************************
3 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
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.
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
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
19 ******************************************************************************/
21 /******************************************************************************
24 data Who Remark (Internal History)
26 05/14/2012 MH Collect RTK inernal infromation and generate channel plan draft.
28 ******************************************************************************/
30 /* ************************************************************
32 * ************************************************************ */
33 #include "mp_precomp.h"
34 #include "phydm_precomp.h"
35 #include "rtchnlplan.h"
40 * channel Plan Domain Code
45 Domain Code EEPROM Countries in Specific Domain
46 2G RD 5G RD Bit[6:0] 2G 5G
47 Case Old Define 00h~1Fh Old Define Old Define
48 1 2G_WORLD 5G_NULL 20h Worldwird 13 NA
49 2 2G_ETSI1 5G_NULL 21h Europe 2G NA
50 3 2G_FCC1 5G_NULL 22h US 2G NA
51 4 2G_MKK1 5G_NULL 23h Japan 2G NA
52 5 2G_ETSI2 5G_NULL 24h France 2G NA
53 6 2G_FCC1 5G_FCC1 25h US 2G US 5G ¤K¤j°ê»{ÃÒ
54 7 2G_WORLD 5G_ETSI1 26h Worldwird 13 Europe ¤K¤j°ê»{ÃÒ
55 8 2G_MKK1 5G_MKK1 27h Japan 2G Japan 5G ¤K¤j°ê»{ÃÒ
56 9 2G_WORLD 5G_KCC1 28h Worldwird 13 Korea ¤K¤j°ê»{ÃÒ
57 10 2G_WORLD 5G_FCC2 29h Worldwird 13 US o/w DFS Channels
58 11 2G_WORLD 5G_FCC3 30h Worldwird 13 India, Mexico
59 12 2G_WORLD 5G_FCC4 31h Worldwird 13 Venezuela
60 13 2G_WORLD 5G_FCC5 32h Worldwird 13 China
61 14 2G_WORLD 5G_FCC6 33h Worldwird 13 Israel
62 15 2G_FCC1 5G_FCC7 34h US 2G US/Canada ¤K¤j°ê»{ÃÒ
63 16 2G_WORLD 5G_ETSI2 35h Worldwird 13 Australia, New Zealand ¤K¤j°ê»{ÃÒ
64 17 2G_WORLD 5G_ETSI3 36h Worldwird 13 Russia
65 18 2G_MKK1 5G_MKK2 37h Japan 2G Japan (W52, W53)
66 19 2G_MKK1 5G_MKK3 38h Japan 2G Japan (W56)
67 20 2G_FCC1 5G_NCC1 39h US 2G Taiwan ¤K¤j°ê»{ÃÒ
69 NA 2G_WORLD 5G_FCC1 7F FCC FCC DFS Channels Realtek Define
75 2.4G Regulatory Domains
76 Case 2G RD regulation Channels Frequencyes Note Countries in Specific Domain
77 1 2G_WORLD ETSI 1~13 2412~2472 Passive scan CH 12, 13 Worldwird 13
78 2 2G_ETSI1 ETSI 1~13 2412~2472 Europe
79 3 2G_FCC1 FCC 1~11 2412~2462 US
80 4 2G_MKK1 MKK 1~13, 14 2412~2472, 2484 Japan
81 5 2G_ETSI2 ETSI 10~13 2457~2472 France
87 Case 5G RD regulation Channels Frequencyes Note Countries in Specific Domain
88 1 5G_NULL NA NA NA Do not support 5GHz
89 2 5G_ETSI1 ETSI "36~48, 52~64,
90 100~140" "5180~5240, 5260~5230
91 5500~5700" Band1, Ban2, Band3 Europe
92 3 5G_ETSI2 ETSI "36~48, 52~64,
93 100~140, 149~165" "5180~5240, 5260~5230
94 5500~5700, 5745~5825" Band1, Ban2, Band3, Band4 Australia, New Zealand
95 4 5G_ETSI3 ETSI "36~48, 52~64,
98 5500~5660, 5745~5825" Band1, Ban2, Band3(except CH 136, 140), Band4" Russia
99 5 5G_FCC1 FCC "36~48, 52~64,
101 "5180~5240, 5260~5230
102 5500~5700, 5745~5825" Band1(5150~5250MHz),
105 Band4(5725~5850MHz)" US
106 6 5G_FCC2 FCC 36~48, 149~165 5180~5240, 5745~5825 Band1, Band4 FCC o/w DFS Channels
107 7 5G_FCC3 FCC "36~48, 52~64,
108 149~165" "5180~5240, 5260~5230
109 5745~5825" Band1, Ban2, Band4 India, Mexico
110 8 5G_FCC4 FCC "36~48, 52~64,
111 149~161" "5180~5240, 5260~5230
112 5745~5805" Band1, Ban2,
113 Band4(except CH 165)" Venezuela
114 9 5G_FCC5 FCC 149~165 5745~5825 Band4 China
115 10 5G_FCC6 FCC 36~48, 52~64 5180~5240, 5260~5230 Band1, Band2 Israel
120 149~165" "5180~5240, 5260~5230
121 5500~5580, 5680, 5700,
122 5745~5825" "Band1, Band2,
123 Band3(except 5600~5650MHz),
126 12 5G_KCC1 KCC "36~48, 52~64,
127 100~124, 149~165" "5180~5240, 5260~5230
128 5500~5620, 5745~5825" "Band1, Ban2,
131 13 5G_MKK1 MKK "36~48, 52~64,
132 100~140" "5180~5240, 5260~5230
133 5500~5700" W52, W53, W56 Japan
134 14 5G_MKK2 MKK 36~48, 52~64 5180~5240, 5260~5230 W52, W53 Japan (W52, W53)
135 15 5G_MKK3 MKK 100~140 5500~5700 W56 Japan (W56)
136 16 5G_NCC1 NCC "56~64,
139 5500~5580, 5680, 5700,
140 5745~5825" "Band2(except CH 52),
141 Band3(except 5600~5650MHz),
152 2.4G band Regulatory Domains RTL8192D
153 channel number channel Frequency US Canada Europe Spain France Japan Japan 20M 40M
154 (MHz) (FCC) (IC) (ETSI) (MPHPT)
164 10 2457 v v v v v v v v
165 11 2462 v v v v v v v v
175 * 5G Operating channel
179 5G band RTL8192D RTL8195 (Jaguar) Jaguar 2 Regulatory Domains
180 channel number channel Frequency Global Global Global "US
181 (FCC 15.407)" "Canada
182 (FCC, except 5.6~5.65GHz)" Argentina, Australia, New Zealand, Brazil, S. Africa (FCC/ETSI) "Europe
183 (CE 301 893)" China India, Mexico, Singapore Israel, Turkey "Japan
184 (MIC Item 19-3, 19-3-2)" Korea Russia, Ukraine "Taiwan
186 (MHz) (20MHz) (20MHz) (40MHz) (80MHz) (160MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz) (20MHz)
190 5.25GHz" 36 5180 v v v v v Indoor Indoor v Indoor v Indoor Indoor v v v
191 40 5200 v v v Indoor Indoor v Indoor v Indoor Indoor v v v
192 44 5220 v v v v Indoor Indoor v Indoor v Indoor Indoor v v v
193 48 5240 v v v Indoor Indoor v Indoor v Indoor Indoor v v v
198 (DFS)" 52 5260 v v v v v v v v Indoor v Indoor Indoor v v v
199 56 5280 v v v v v v Indoor v Indoor Indoor v v Indoor v
200 60 5300 v v v v v v v Indoor v Indoor Indoor v v Indoor v
201 64 5320 v v v v v v Indoor v Indoor Indoor v v Indoor v
207 (DFS)" 100 5500 v v v v v v v v v v v v v
208 104 5520 v v v v v v v v v v v
209 108 5540 v v v v v v v v v v v v
210 112 5560 v v v v v v v v v v v
211 116 5580 v v v v v v v v v v v v v
212 120 5600 v v v Indoor v Indoor v v v
213 124 5620 v v v v Indoor v Indoor v v v
214 128 5640 v v v Indoor v Indoor v v
215 132 5660 v v v E v Indoor v Indoor v v
216 136 5680 v v v v v v v v v
217 140 5700 v v E v v v v v v v
223 (~5.9GHz)" 149 5745 v v v v v v v v v v v v v v
224 153 5765 v v v v v v v v v v v v
225 157 5785 v v v v v v v v v v v v v
226 161 5805 v v v v v v v v v v v v
227 165 5825 v v P P v v v v v v v v v
231 channel count 28 28 14 7 0 28 24 20 24 19 5 13 8 19 20 22 15 12
232 E: FCC accepted the ask for CH144 from Accord. PS: 160MHz ¥Î 80MHz+80MHz¹ê²{¡H Argentina Belgium (¤ñ§Q®É) India Israel Russia
233 P: Customer's requirement from James. Australia The Netherlands (²üÄõ) Mexico Turkey Ukraine
234 New Zealand UK (^°ê) Singapore
235 Brazil Switzerland (·ç¤h)
240 /*---------------------------Define Local Constant---------------------------*/
243 /* define Maximum Power v.s each band for each region
246 * RT_CHANNEL_DOMAIN_Region ={{{chnl_start, chnl_end, Pwr_dB_Max}, {Chn2_Start, Chn2_end, Pwr_dB_Max}, {Chn3_Start, Chn3_end, Pwr_dB_Max}, {Chn4_Start, Chn4_end, Pwr_dB_Max}, {Chn5_Start, Chn5_end, Pwr_dB_Max}}, Limit_Num}
247 * RT_CHANNEL_DOMAIN_FCC ={{{01,11,30}, {36,48,17}, {52,64,24}, {100,140,24}, {149,165,30}}, 5}
248 * "NR" is non-release channle.
249 * Issue--- Israel--Russia--New Zealand
250 * DOMAIN_01= (2G_WORLD, 5G_NULL)
251 * DOMAIN_02= (2G_ETSI1, 5G_NULL)
252 * DOMAIN_03= (2G_FCC1, 5G_NULL)
253 * DOMAIN_04= (2G_MKK1, 5G_NULL)
254 * DOMAIN_05= (2G_ETSI2, 5G_NULL)
255 * DOMAIN_06= (2G_FCC1, 5G_FCC1)
256 * DOMAIN_07= (2G_WORLD, 5G_ETSI1)
257 * DOMAIN_08= (2G_MKK1, 5G_MKK1)
258 * DOMAIN_09= (2G_WORLD, 5G_KCC1)
259 * DOMAIN_10= (2G_WORLD, 5G_FCC2)
260 * DOMAIN_11= (2G_WORLD, 5G_FCC3)----india
261 * DOMAIN_12= (2G_WORLD, 5G_FCC4)----Venezuela
262 * DOMAIN_13= (2G_WORLD, 5G_FCC5)----China
263 * DOMAIN_14= (2G_WORLD, 5G_FCC6)----Israel
264 * DOMAIN_15= (2G_FCC1, 5G_FCC7)-----Canada
265 * DOMAIN_16= (2G_WORLD, 5G_ETSI2)---Australia
266 * DOMAIN_17= (2G_WORLD, 5G_ETSI3)---Russia
267 * DOMAIN_18= (2G_MKK1, 5G_MKK2)-----Japan
268 * DOMAIN_19= (2G_MKK1, 5G_MKK3)-----Japan
269 * DOMAIN_20= (2G_FCC1, 5G_NCC1)-----Taiwan
270 * DOMAIN_21= (2G_FCC1, 5G_NCC1)-----Taiwan */
273 static struct _RT_CHANNEL_PLAN_MAXPWR chnl_plan_pwr_max_2g[] = {
281 /* RT_CHANNEL_DOMAIN_ETSI */
282 {{{1, 11, 17}, {40, 56, 17}, {60, 128, 17}, {0, 0, 0}, {149, 165, 17}}, 4},
284 /* RT_CHANNEL_DOMAIN_MKK */
285 {{{1, 11, 17}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}}, 1},
287 /* Add new channel plan mex power table. */
293 /* ===========================================1:(2G_WORLD, 5G_NULL) */
295 struct _RT_CHANNEL_PLAN_MAXPWR RT_DOMAIN_01 = {{{01, 13, 20}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}}, 1}
297 /* ===========================================2:(2G_ETSI1, 5G_NULL) */
299 RT_DOMAIN_02 = {{{01, 13, 20}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}}, 1}
301 /* ===========================================3:(2G_FCC1, 5G_NULL) */
303 RT_DOMAIN_03 = {{{01, 11, 30}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}}, 1}
305 /* ===========================================4:(2G_MKK1, 5G_NULL) */
307 RT_DOMAIN_04 = {{{01, 14, 23}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}}, 1}
309 /* ===========================================5:(2G_ETSI2, 5G_NULL) */
311 RT_DOMAIN_05 = {{{10, 13, 20}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}}, 1}
313 /* ===========================================6:(2G_FCC1, 5G_FCC1) */
315 RT_DOMAIN_06 = {{{01, 13, 30}, {36, 48, 17}, {52, 64, 24}, {100, 140, 24}, {149, 165, 30}}, 5}
317 /* ===========================================7:(2G_WORLD, 5G_ETSI1) */
319 RT_DOMAIN_07 = {{{01, 13, 20}, {36, 48, 23}, {52, 64, 23}, {100, 140, 30}, {NR, NR, 0}}, 4}
321 /* ===========================================8:(2G_MKK1, 5G_MKK1) */
323 RT_DOMAIN_08 = {{{01, 14, 23}, {36, 48, 23}, {52, 64, 23}, {100, 140, 23}, {NR, NR, 0}}, 4}
325 /* ===========================================9:(2G_WORLD, 5G_KCC1) */
327 RT_DOMAIN_09 = {{{01, 13, 20}, {36, 48, 17}, {52, 64, 23}, {100, 124, 23}, {149, 165, 23}}, 5}
329 /* ===========================================10:(2G_WORLD, 5G_FCC2) */
331 RT_DOMAIN_10 = {{{01, 13, 20}, {36, 48, 17}, {NR, NR, 0}, {NR, NR, 0}, {149, 165, 30}}, 3}
333 /* ===========================================11:(2G_WORLD, 5G_FCC3) */
334 RT_DOMAIN_11 = {{{01, 13, 20}, {36, 48, 23}, {52, 64, 23}, {NR, NR, 0}, {149, 165, 23}}, 4}
336 /* ===========================================12:(2G_WORLD, 5G_FCC4) */
337 RT_DOMAIN_12 = {{{01, 13, 20}, {36, 48, 24}, {52, 64, 24}, {NR, NR, 0}, {149, 161, 27}}, 4}
339 /* ===========================================13:(2G_WORLD, 5G_FCC5) */
340 RT_DOMAIN_13 = {{{01, 13, 20}, {NR, NR, 0}, {NR, NR, 0}, {NR, NR, 0}, {149, 165, 27}}, 2}
342 /* ===========================================14:(2G_WORLD, 5G_FCC6) */
343 RT_DOMAIN_14 = {{{01, 13, 20}, {36, 48, 17}, {52, 64, 17}, {NR, NR, 0}, {NR, NR, 0}}, 3}
345 /* ===========================================15:(2G_FCC1, 5G_FCC7) */
346 RT_DOMAIN_15 = {{{01, 11, 30}, {36, 48, 23}, {52, 64, 24}, {100, 140, 24}, {149, 165, 30}}, 5}
348 /* ===========================================16:(2G_WORLD, 5G_ETSI2) */
349 RT_DOMAIN_16 = {{{01, 13, 20}, {36, 48, 23}, {52, 64, 23}, {100, 140, 30}, {149, 165, 30}}, 5}
351 /* ===========================================17:(2G_WORLD, 5G_ETSI3) */
352 RT_DOMAIN_17 = {{{01, 13, 20}, {36, 48, 23}, {52, 64, 23}, {100, 132, 30}, {149, 165, 20}}, 5}
354 /* ===========================================18:(2G_MKK1, 5G_MKK2) */
355 RT_DOMAIN_18 = {{{01, 14, 23}, {36, 48, 23}, {52, 64, 23}, {NR, NR, 0}, {NR, NR, 0}}, 3}
357 /* ===========================================19:(2G_MKK1, 5G_MKK3) */
358 RT_DOMAIN_19 = {{{01, 14, 23}, {NR, NR, 0}, {NR, NR, 0}, {100, 140, 23}, {NR, NR, 0}}, 2}
360 /* ===========================================20:(2G_FCC1, 5G_NCC1) */
361 RT_DOMAIN_20 = {{{01, 11, 30}, {NR, NR, 0}, {56, 64, 23}, {100, 140, 24}, {149, 165, 30}}, 4}
363 /* ===========================================21:(2G_FCC1, 5G_NCC2) */
364 RT_DOMAIN_21 = {{{01, 11, 30}, {NR, NR, 0}, {56, 64, 23}, {NR, NR, 0}, {149, 165, 30}}, 3}
366 /* ===========================================22:(2G_WORLD, 5G_FCC3) */
367 RT_DOMAIN_22 = {{{01, 13, 24}, {36, 48, 20}, {52, 64, 24}, {NR, NR, 0}, {149, 165, 30}}, 4}
369 /* ===========================================23:(2G_WORLD, 5G_ETSI2) */
370 RT_DOMAIN_23 = {{{01, 13, 20}, {36, 48, 23}, {52, 64, 23}, {100, 140, 30}, {149, 165, 30}}, 5}
375 * counter & Realtek channel plan transfer table.
377 struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE rt_ctry_chnl_tbl[] = {
380 RT_CTRY_AL, /* "Albaniaªüº¸¤Ú¥§¨È" */
384 RT_CHANNEL_DOMAIN_UNDEFINED /* 2G/5G world. */
388 RT_CTRY_BB, /* "Barbados¤Ú¤Ú¦h´µ" */
392 RT_CHANNEL_DOMAIN_EFUSE_0x20 /* 2G world. 5G_NULL */
396 RT_CTRY_DE, /* "Germany¼w°ê" */
400 RT_CHANNEL_DOMAIN_EFUSE_0x26
404 RT_CTRY_US, /* "Germany¼w°ê" */
408 RT_CHANNEL_DOMAIN_EFUSE_0x34
412 RT_CTRY_JP, /* "Germany¼w°ê" */
416 RT_CHANNEL_DOMAIN_EFUSE_0x34
420 RT_CTRY_TW, /* "Germany¼w°ê" */
424 RT_CHANNEL_DOMAIN_EFUSE_0x39
428 }; /* rt_ctry_chnl_tbl */
431 * Realtek Defined channel plan.
435 static struct _RT_CHANNEL_PLAN_NEW rt_chnl_plan[] = {
436 /* channel Plan 0x20. */
438 &rt_ctry_chnl_tbl[1], /* struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE Country & channel plan transfer table. */
439 RT_CHANNEL_DOMAIN_EFUSE_0x20, /* RT_CHANNEL_DOMAIN RT channel Plan Define */
440 RT_2G_WORLD, /* enum rt_regulation_2g */
441 RT_5G_NULL, /* enum rt_regulation_5g */
442 RT_WORLD, /* enum rt_regulation_cmn RT Regulatory domain definition. */
443 RT_SREQ_NA, /* RT channel plan special & customerize requirement. */
446 CHNL_RT_2G_WORLD_SCAN_TYPE,
447 &chnl_plan_pwr_max_2g[0],
450 CHNL_RT_5G_NULL_SCAN_TYPE,
455 /* channel Plan 0x26. */
457 &rt_ctry_chnl_tbl[1], /* struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE Country & channel plan transfer table. */
458 RT_CHANNEL_DOMAIN_EFUSE_0x26, /* RT_CHANNEL_DOMAIN RT channel Plan Define */
459 RT_2G_WORLD, /* enum rt_regulation_2g */
460 RT_5G_ETSI1, /* enum rt_regulation_5g */
461 RT_WORLD, /* enum rt_regulation_cmn RT Regulatory domain definition. */
462 RT_SREQ_NA, /* RT channel plan special & customerize requirement. */
464 CHNL_RT_2G_WORLD, /* 2G workd cannel */
465 CHNL_RT_2G_WORLD_SCAN_TYPE,
466 &chnl_plan_pwr_max_2g[1],
469 CHNL_RT_5G_ETSI1_SCAN_TYPE,