rtchnlplan.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  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. #ifndef __RT_CHANNELPLAN_H__
  21. #define __RT_CHANNELPLAN_H__
  22. enum rt_channel_domain_new {
  23. /* ===== Add new channel plan above this line =============== */
  24. /* For new architecture we define different 2G/5G CH area for all country. */
  25. /* 2.4 G only */
  26. RT_CHANNEL_DOMAIN_2G_WORLD_5G_NULL = 0x20,
  27. RT_CHANNEL_DOMAIN_2G_ETSI1_5G_NULL = 0x21,
  28. RT_CHANNEL_DOMAIN_2G_FCC1_5G_NULL = 0x22,
  29. RT_CHANNEL_DOMAIN_2G_MKK1_5G_NULL = 0x23,
  30. RT_CHANNEL_DOMAIN_2G_ETSI2_5G_NULL = 0x24,
  31. /* 2.4 G + 5G type 1 */
  32. RT_CHANNEL_DOMAIN_2G_FCC1_5G_FCC1 = 0x25,
  33. RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x26,
  34. /* RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x27, */
  35. /* ..... */
  36. RT_CHANNEL_DOMAIN_MAX_NEW,
  37. };
  38. #if 0
  39. #define DOMAIN_CODE_2G_WORLD \
  40. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
  41. #define DOMAIN_CODE_2G_ETSI1 \
  42. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
  43. #define DOMAIN_CODE_2G_ETSI2 \
  44. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
  45. #define DOMAIN_CODE_2G_FCC1 \
  46. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
  47. #define DOMAIN_CODE_2G_MKK1 \
  48. {10, 11, 12, 13}, 4
  49. #define DOMAIN_CODE_5G_ETSI1 \
  50. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
  51. #define DOMAIN_CODE_5G_ETSI2 \
  52. {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
  53. #define DOMAIN_CODE_5G_ETSI3 \
  54. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
  55. #define DOMAIN_CODE_5G_FCC1 \
  56. {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
  57. #define DOMAIN_CODE_5G_FCC2 \
  58. {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
  59. #define DOMAIN_CODE_5G_FCC3 \
  60. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
  61. #define DOMAIN_CODE_5G_FCC4 \
  62. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
  63. #define DOMAIN_CODE_5G_FCC5 \
  64. {149, 153, 157, 161, 165}, 5
  65. #define DOMAIN_CODE_5G_FCC6 \
  66. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  67. #define DOMAIN_CODE_5G_FCC7 \
  68. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  69. #define DOMAIN_CODE_5G_IC1 \
  70. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  71. #define DOMAIN_CODE_5G_KCC1 \
  72. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
  73. #define DOMAIN_CODE_5G_MKK1 \
  74. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
  75. #define DOMAIN_CODE_5G_MKK2 \
  76. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  77. #define DOMAIN_CODE_5G_MKK3 \
  78. {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
  79. #define DOMAIN_CODE_5G_NCC1 \
  80. {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
  81. #define DOMAIN_CODE_5G_NCC2 \
  82. {56, 60, 64, 149, 153, 157, 161, 165}, 8
  83. #define UNDEFINED \
  84. {0}, 0
  85. #endif
  86. /*
  87. *
  88. *
  89. *
  90. Countries "Country Abbreviation" Domain Code SKU's Ch# of 20MHz
  91. 2G 5G Ch# of 40MHz
  92. "Albania阿爾巴尼亞" AL Local Test
  93. "Algeria阿爾及利亞" DZ CE TCF
  94. "Antigua & Barbuda安提瓜島&巴布達" AG 2G_WORLD FCC TCF
  95. "Argentina阿根廷" AR 2G_WORLD Local Test
  96. "Armenia亞美尼亞" AM 2G_WORLD ETSI
  97. "Aruba阿魯巴島" AW 2G_WORLD FCC TCF
  98. "Australia澳洲" AU 2G_WORLD 5G_ETSI2
  99. "Austria奧地利" AT 2G_WORLD 5G_ETSI1 CE
  100. "Azerbaijan阿塞拜彊" AZ 2G_WORLD CE TCF
  101. "Bahamas巴哈馬" BS 2G_WORLD
  102. "Barbados巴巴多斯" BB 2G_WORLD FCC TCF
  103. "Belgium比利時" BE 2G_WORLD 5G_ETSI1 CE
  104. "Bermuda百慕達" BM 2G_WORLD FCC TCF
  105. "Brazil巴西" BR 2G_WORLD Local Test
  106. "Bulgaria保加利亞" BG 2G_WORLD 5G_ETSI1 CE
  107. "Canada加拿大" CA 2G_FCC1 5G_FCC7 IC / FCC IC / FCC
  108. "Cayman Islands開曼群島" KY 2G_WORLD 5G_ETSI1 CE
  109. "Chile智利" CL 2G_WORLD FCC TCF
  110. "China中國" CN 2G_WORLD 5G_FCC5 信部?【2002】353?
  111. "Columbia哥倫比亞" CO 2G_WORLD Voluntary
  112. "Costa Rica哥斯達黎加" CR 2G_WORLD FCC TCF
  113. "Cyprus塞浦路斯" CY 2G_WORLD 5G_ETSI1 CE
  114. "Czech 捷克" CZ 2G_WORLD 5G_ETSI1 CE
  115. "Denmark丹麥" DK 2G_WORLD 5G_ETSI1 CE
  116. "Dominican Republic多明尼加共和國" DO 2G_WORLD FCC TCF
  117. "Egypt埃及" EG 2G_WORLD CE T CF
  118. "El Salvador薩爾瓦多" SV 2G_WORLD Voluntary
  119. "Estonia愛沙尼亞" EE 2G_WORLD 5G_ETSI1 CE
  120. "Finland芬蘭" FI 2G_WORLD 5G_ETSI1 CE
  121. "France法國" FR 5G_E TSI1 CE
  122. "Germany德國" DE 2G_WORLD 5G_ETSI1 CE
  123. "Greece 希臘" GR 2G_WORLD 5G_ETSI1 CE
  124. "Guam關島" GU 2G_WORLD
  125. "Guatemala瓜地馬拉" GT 2G_WORLD
  126. "Haiti海地" HT 2G_WORLD FCC TCF
  127. "Honduras宏都拉斯" HN 2G_WORLD FCC TCF
  128. "Hungary匈牙利" HU 2G_WORLD 5G_ETSI1 CE
  129. "Iceland冰島" IS 2G_WORLD 5G_ETSI1 CE
  130. "India印度" 2G_WORLD 5G_FCC3 FCC/CE TCF
  131. "Ireland愛爾蘭" IE 2G_WORLD 5G_ETSI1 CE
  132. "Israel以色列" IL 5G_F CC6 CE TCF
  133. "Italy義大利" IT 2G_WORLD 5G_ETSI1 CE
  134. "Japan日本" JP 2G_MKK1 5G_MKK1 MKK MKK
  135. "Korea韓國" KR 2G_WORLD 5G_KCC1 KCC KCC
  136. "Latvia拉脫維亞" LV 2G_WORLD 5G_ETSI1 CE
  137. "Lithuania立陶宛" LT 2G_WORLD 5G_ETSI1 CE
  138. "Luxembourg盧森堡" LU 2G_WORLD 5G_ETSI1 CE
  139. "Malaysia馬來西亞" MY 2G_WORLD Local Test
  140. "Malta馬爾他" MT 2G_WORLD 5G_ETSI1 CE
  141. "Mexico墨西哥" MX 2G_WORLD 5G_FCC3 Local Test
  142. "Morocco摩洛哥" MA CE TCF
  143. "Netherlands荷蘭" NL 2G_WORLD 5G_ETSI1 CE
  144. "New Zealand紐西蘭" NZ 2G_WORLD 5G_ETSI2
  145. "Norway挪威" NO 2G_WORLD 5G_ETSI1 CE
  146. "Panama巴拿馬 " PA 2G_FCC1 Voluntary
  147. "Philippines菲律賓" PH 2G_WORLD FCC TCF
  148. "Poland波蘭" PL 2G_WORLD 5G_ETSI1 CE
  149. "Portugal葡萄牙" PT 2G_WORLD 5G_ETSI1 CE
  150. "Romania羅馬尼亞" RO 2G_WORLD 5G_ETSI1 CE
  151. "Russia俄羅斯" RU 2G_WORLD 5G_ETSI3 CE TCF
  152. "Saudi Arabia沙地阿拉伯" SA 2G_WORLD CE TCF
  153. "Singapore新加坡" SG 2G_WORLD
  154. "Slovakia斯洛伐克" SK 2G_WORLD 5G_ETSI1 CE
  155. "Slovenia斯洛維尼亞" SI 2G_WORLD 5G_ETSI1 CE
  156. "South Africa南非" ZA 2G_WORLD CE TCF
  157. "Spain西班牙" ES 5G_ETSI1 CE
  158. "Sweden瑞典" SE 2G_WORLD 5G_ETSI1 CE
  159. "Switzerland瑞士" CH 2G_WORLD 5G_ETSI1 CE
  160. "Taiwan臺灣" TW 2G_FCC1 5G_NCC1 NCC
  161. "Thailand泰國" TH 2G_WORLD FCC/CE TCF
  162. "Turkey土耳其" TR 2G_WORLD
  163. "Ukraine烏克蘭" UA 2G_WORLD Local Test
  164. "United Kingdom英國" GB 2G_WORLD 5G_ETSI1 CE ETSI
  165. "United States美國" US 2G_FCC1 5G_FCC7 FCC FCC
  166. "Venezuela委內瑞拉" VE 2G_WORLD 5G_FCC4 FCC TCF
  167. "Vietnam越南" VN 2G_WORLD FCC/CE TCF
  168. */
  169. /* counter abbervation. */
  170. enum rt_country_name {
  171. RT_CTRY_AL, /* "Albania阿爾巴尼亞" */
  172. RT_CTRY_DZ, /* "Algeria阿爾及利亞" */
  173. RT_CTRY_AG, /* "Antigua & Barbuda安提瓜島&巴布達" */
  174. RT_CTRY_AR, /* "Argentina阿根廷" */
  175. RT_CTRY_AM, /* "Armenia亞美尼亞" */
  176. RT_CTRY_AW, /* "Aruba阿魯巴島" */
  177. RT_CTRY_AU, /* "Australia澳洲" */
  178. RT_CTRY_AT, /* "Austria奧地利" */
  179. RT_CTRY_AZ, /* "Azerbaijan阿塞拜彊" */
  180. RT_CTRY_BS, /* "Bahamas巴哈馬" */
  181. RT_CTRY_BB, /* "Barbados巴巴多斯" */
  182. RT_CTRY_BE, /* "Belgium比利時" */
  183. RT_CTRY_BM, /* "Bermuda百慕達" */
  184. RT_CTRY_BR, /* "Brazil巴西" */
  185. RT_CTRY_BG, /* "Bulgaria保加利亞" */
  186. RT_CTRY_CA, /* "Canada加拿大" */
  187. RT_CTRY_KY, /* "Cayman Islands開曼群島" */
  188. RT_CTRY_CL, /* "Chile智利" */
  189. RT_CTRY_CN, /* "China中國" */
  190. RT_CTRY_CO, /* "Columbia哥倫比亞" */
  191. RT_CTRY_CR, /* "Costa Rica哥斯達黎加" */
  192. RT_CTRY_CY, /* "Cyprus塞浦路斯" */
  193. RT_CTRY_CZ, /* "Czech 捷克" */
  194. RT_CTRY_DK, /* "Denmark丹麥" */
  195. RT_CTRY_DO, /* "Dominican Republic多明尼加共和國" */
  196. RT_CTRY_CE, /* "Egypt埃及" EG 2G_WORLD */
  197. RT_CTRY_SV, /* "El Salvador薩爾瓦多" */
  198. RT_CTRY_EE, /* "Estonia愛沙尼亞" */
  199. RT_CTRY_FI, /* "Finland芬蘭" */
  200. RT_CTRY_FR, /* "France法國" */
  201. RT_CTRY_DE, /* "Germany德國" */
  202. RT_CTRY_GR, /* "Greece 希臘" */
  203. RT_CTRY_GU, /* "Guam關島" */
  204. RT_CTRY_GT, /* "Guatemala瓜地馬拉" */
  205. RT_CTRY_HT, /* "Haiti海地" */
  206. RT_CTRY_HN, /* "Honduras宏都拉斯" */
  207. RT_CTRY_HU, /* "Hungary匈牙利" */
  208. RT_CTRY_IS, /* "Iceland冰島" */
  209. RT_CTRY_IN, /* "India印度" */
  210. RT_CTRY_IE, /* "Ireland愛爾蘭" */
  211. RT_CTRY_IL, /* "Israel以色列" */
  212. RT_CTRY_IT, /* "Italy義大利" */
  213. RT_CTRY_JP, /* "Japan日本" */
  214. RT_CTRY_KR, /* "Korea韓國" */
  215. RT_CTRY_LV, /* "Latvia拉脫維亞" */
  216. RT_CTRY_LT, /* "Lithuania立陶宛" */
  217. RT_CTRY_LU, /* "Luxembourg盧森堡" */
  218. RT_CTRY_MY, /* "Malaysia馬來西亞" */
  219. RT_CTRY_MT, /* "Malta馬爾他" */
  220. RT_CTRY_MX, /* "Mexico墨西哥" */
  221. RT_CTRY_MA, /* "Morocco摩洛哥" */
  222. RT_CTRY_NL, /* "Netherlands荷蘭" */
  223. RT_CTRY_NZ, /* "New Zealand紐西蘭" */
  224. RT_CTRY_NO, /* "Norway挪威" */
  225. RT_CTRY_PA, /* "Panama巴拿馬 " */
  226. RT_CTRY_PH, /* "Philippines菲律賓" */
  227. RT_CTRY_PL, /* "Poland波蘭" */
  228. RT_CTRY_PT, /* "Portugal葡萄牙" */
  229. RT_CTRY_RO, /* "Romania羅馬尼亞" */
  230. RT_CTRY_RU, /* "Russia俄羅斯" */
  231. RT_CTRY_SA, /* "Saudi Arabia沙地阿拉伯" */
  232. RT_CTRY_SG, /* "Singapore新加坡" */
  233. RT_CTRY_SK, /* "Slovakia斯洛伐克" */
  234. RT_CTRY_SI, /* "Slovenia斯洛維尼亞" */
  235. RT_CTRY_ZA, /* "South Africa南非" */
  236. RT_CTRY_ES, /* "Spain西班牙" */
  237. RT_CTRY_SE, /* "Sweden瑞典" */
  238. RT_CTRY_CH, /* "Switzerland瑞士" */
  239. RT_CTRY_TW, /* "Taiwan臺灣" */
  240. RT_CTRY_TH, /* "Thailand泰國" */
  241. RT_CTRY_TR, /* "Turkey土耳其" */
  242. RT_CTRY_UA, /* "Ukraine烏克蘭" */
  243. RT_CTRY_GB, /* "United Kingdom英國" */
  244. RT_CTRY_US, /* "United States美國" */
  245. RT_CTRY_VE, /* "Venezuela委內瑞拉" */
  246. RT_CTRY_VN, /* "Vietnam越南" */
  247. RT_CTRY_MAX,
  248. };
  249. /* Scan type including active and passive scan. */
  250. enum rt_scan_type_new {
  251. SCAN_NULL,
  252. SCAN_ACT,
  253. SCAN_PAS,
  254. SCAN_BOTH,
  255. };
  256. /* Power table sample. */
  257. struct _RT_CHNL_PLAN_LIMIT {
  258. u16 chnl_start;
  259. u16 chnl_end;
  260. u16 freq_start;
  261. u16 freq_end;
  262. };
  263. /*
  264. * 2.4G Regulatory Domains
  265. * */
  266. enum rt_regulation_2g {
  267. RT_2G_NULL,
  268. RT_2G_WORLD,
  269. RT_2G_ETSI1,
  270. RT_2G_FCC1,
  271. RT_2G_MKK1,
  272. RT_2G_ETSI2
  273. };
  274. /* typedef struct _RT_CHANNEL_BEHAVIOR
  275. * {
  276. * u8 chnl;
  277. * enum rt_scan_type_new
  278. *
  279. * }RT_CHANNEL_BEHAVIOR, *PRT_CHANNEL_BEHAVIOR; */
  280. /* typedef struct _RT_CHANNEL_PLAN_TYPE
  281. * {
  282. * RT_CHANNEL_BEHAVIOR
  283. * u8 Chnl_num;
  284. * }RT_CHNL_PLAN_TYPE, *PRT_CHNL_PLAN_TYPE; */
  285. /*
  286. * 2.4G channel number
  287. * channel definition & number
  288. * */
  289. #define CHNL_RT_2G_NULL \
  290. {0}, 0
  291. #define CHNL_RT_2G_WORLD \
  292. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
  293. #define CHNL_RT_2G_WORLD_TEST \
  294. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
  295. #define CHNL_RT_2G_EFSI1 \
  296. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
  297. #define CHNL_RT_2G_FCC1 \
  298. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
  299. #define CHNL_RT_2G_MKK1 \
  300. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
  301. #define CHNL_RT_2G_ETSI2 \
  302. {10, 11, 12, 13}, 4
  303. /*
  304. * 2.4G channel active or passive scan.
  305. * */
  306. #define CHNL_RT_2G_NULL_SCAN_TYPE \
  307. {SCAN_NULL}
  308. #define CHNL_RT_2G_WORLD_SCAN_TYPE \
  309. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}
  310. #define CHNL_RT_2G_EFSI1_SCAN_TYPE \
  311. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  312. #define CHNL_RT_2G_FCC1_SCAN_TYPE \
  313. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  314. #define CHNL_RT_2G_MKK1_SCAN_TYPE \
  315. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  316. #define CHNL_RT_2G_ETSI2_SCAN_TYPE \
  317. {1, 1, 1, 1}
  318. /*
  319. * 2.4G band & Frequency Section
  320. * Freqency start & end / band number
  321. * */
  322. #define FREQ_RT_2G_NULL \
  323. {0}, 0
  324. /* Passive scan CH 12, 13 */
  325. #define FREQ_RT_2G_WORLD \
  326. {2412, 2472}, 1
  327. #define FREQ_RT_2G_EFSI1 \
  328. {2412, 2472}, 1
  329. #define FREQ_RT_2G_FCC1 \
  330. {2412, 2462}, 1
  331. #define FREQ_RT_2G_MKK1 \
  332. {2412, 2484}, 1
  333. #define FREQ_RT_2G_ETSI2 \
  334. {2457, 2472}, 1
  335. /*
  336. * 5G Regulatory Domains
  337. * */
  338. enum rt_regulation_5g {
  339. RT_5G_NULL,
  340. RT_5G_WORLD,
  341. RT_5G_ETSI1,
  342. RT_5G_ETSI2,
  343. RT_5G_ETSI3,
  344. RT_5G_FCC1,
  345. RT_5G_FCC2,
  346. RT_5G_FCC3,
  347. RT_5G_FCC4,
  348. RT_5G_FCC5,
  349. RT_5G_FCC6,
  350. RT_5G_FCC7,
  351. RT_5G_IC1,
  352. RT_5G_KCC1,
  353. RT_5G_MKK1,
  354. RT_5G_MKK2,
  355. RT_5G_MKK3,
  356. RT_5G_NCC1,
  357. };
  358. /*
  359. * 5G channel number
  360. * */
  361. #define CHNL_RT_5G_NULL \
  362. {0}, 0
  363. #define CHNL_RT_5G_WORLD \
  364. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
  365. #define CHNL_RT_5G_ETSI1 \
  366. {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
  367. #define CHNL_RT_5G_ETSI2 \
  368. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
  369. #define CHNL_RT_5G_ETSI3 \
  370. {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
  371. #define CHNL_RT_5G_FCC1 \
  372. {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
  373. #define CHNL_RT_5G_FCC2 \
  374. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
  375. #define CHNL_RT_5G_FCC3 \
  376. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
  377. #define CHNL_RT_5G_FCC4 \
  378. {149, 153, 157, 161, 165}, 5
  379. #define CHNL_RT_5G_FCC5 \
  380. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  381. #define CHNL_RT_5G_FCC6 \
  382. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  383. #define CHNL_RT_5G_FCC7 \
  384. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  385. #define CHNL_RT_5G_IC1 \
  386. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
  387. #define CHNL_RT_5G_KCC1 \
  388. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
  389. #define CHNL_RT_5G_MKK1 \
  390. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  391. #define CHNL_RT_5G_MKK2 \
  392. {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
  393. #define CHNL_RT_5G_MKK3 \
  394. {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
  395. #define CHNL_RT_5G_NCC1 \
  396. {56, 60, 64, 149, 153, 157, 161, 165}, 8
  397. /*
  398. * 5G channel active or passive scan.
  399. * */
  400. #define CHNL_RT_5G_NULL_SCAN_TYPE \
  401. {SCAN_NULL}
  402. #define CHNL_RT_5G_WORLD_SCAN_TYPE \
  403. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  404. #define CHNL_RT_5G_ETSI1_SCAN_TYPE \
  405. {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  406. #define CHNL_RT_5G_ETSI2_SCAN_TYPE \
  407. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
  408. #define CHNL_RT_5G_ETSI3_SCAN_TYPE \
  409. {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
  410. #define CHNL_RT_5G_FCC1_SCAN_TYPE \
  411. {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
  412. #define CHNL_RT_5G_FCC2_SCAN_TYPE \
  413. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
  414. #define CHNL_RT_5G_FCC3_SCAN_TYPE \
  415. {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
  416. #define CHNL_RT_5G_FCC4_SCAN_TYPE \
  417. {149, 153, 157, 161, 165}, 5
  418. #define CHNL_RT_5G_FCC5_SCAN_TYPE \
  419. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  420. #define CHNL_RT_5G_FCC6_SCAN_TYPE \
  421. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  422. #define CHNL_RT_5G_FCC7_SCAN_TYPE \
  423. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
  424. #define CHNL_RT_5G_IC1_SCAN_TYPE \
  425. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
  426. #define CHNL_RT_5G_KCC1_SCAN_TYPE \
  427. {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
  428. #define CHNL_RT_5G_MKK1_SCAN_TYPE \
  429. {36, 40, 44, 48, 52, 56, 60, 64}, 8
  430. #define CHNL_RT_5G_MKK2_SCAN_TYPE \
  431. {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
  432. #define CHNL_RT_5G_MKK3_SCAN_TYPE \
  433. {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
  434. #define CHNL_RT_5G_NCC1_SCAN_TYPE \
  435. {56, 60, 64, 149, 153, 157, 161, 165}, 8
  436. /*
  437. * Global regulation
  438. * */
  439. enum rt_regulation_cmn {
  440. RT_WORLD,
  441. RT_FCC,
  442. RT_MKK,
  443. RT_ETSI,
  444. RT_IC,
  445. RT_CE,
  446. RT_NCC,
  447. };
  448. /*
  449. * Special requirement for different regulation domain.
  450. * For internal test or customerize special request.
  451. * */
  452. enum rt_chnlplan_sreq {
  453. RT_SREQ_NA = 0x0,
  454. RT_SREQ_2G_ADHOC_11N = 0x00000001,
  455. RT_SREQ_2G_ADHOC_11B = 0x00000002,
  456. RT_SREQ_2G_ALL_PASS = 0x00000004,
  457. RT_SREQ_2G_ALL_ACT = 0x00000008,
  458. RT_SREQ_5G_ADHOC_11N = 0x00000010,
  459. RT_SREQ_5G_ADHOC_11AC = 0x00000020,
  460. RT_SREQ_5G_ALL_PASS = 0x00000040,
  461. RT_SREQ_5G_ALL_ACT = 0x00000080,
  462. RT_SREQ_C1_PLAN = 0x00000100,
  463. RT_SREQ_C2_PLAN = 0x00000200,
  464. RT_SREQ_C3_PLAN = 0x00000400,
  465. RT_SREQ_C4_PLAN = 0x00000800,
  466. RT_SREQ_NFC_ON = 0x00001000,
  467. RT_SREQ_MASK = 0x0000FFFF, /* Requirements bit mask */
  468. };
  469. /*
  470. * enum rt_country_name & enum rt_regulation_2g & enum rt_regulation_5g transfer table
  471. *
  472. * */
  473. struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE {
  474. /* */
  475. /* Define countery domain and corresponding */
  476. /* */
  477. enum rt_country_name country_enum;
  478. char country_name[3];
  479. /* char Domain_Name[12]; */
  480. enum rt_regulation_2g domain_2g;
  481. enum rt_regulation_5g domain_5g;
  482. RT_CHANNEL_DOMAIN rt_ch_domain;
  483. /* u8 Country_Area; */
  484. };
  485. #define RT_MAX_CHNL_NUM_2G 13
  486. #define RT_MAX_CHNL_NUM_5G 44
  487. /* Power table sample. */
  488. struct _RT_CHNL_PLAN_PWR_LIMIT {
  489. u16 chnl_start;
  490. u16 chnl_end;
  491. u8 db_max;
  492. u16 m_w_max;
  493. };
  494. #define RT_MAX_BAND_NUM 5
  495. struct _RT_CHANNEL_PLAN_MAXPWR {
  496. /* STRING_T */
  497. struct _RT_CHNL_PLAN_PWR_LIMIT chnl[RT_MAX_BAND_NUM];
  498. u8 band_useful_num;
  499. };
  500. /*
  501. * Power By rate Table.
  502. * */
  503. struct _RT_CHANNEL_PLAN_NEW {
  504. /* */
  505. /* Define countery domain and corresponding */
  506. /* */
  507. /* char country_name[36]; */
  508. /* u8 country_enum; */
  509. /* char Domain_Name[12]; */
  510. struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE *p_ctry_transfer;
  511. RT_CHANNEL_DOMAIN rt_ch_domain;
  512. enum rt_regulation_2g domain_2g;
  513. enum rt_regulation_5g domain_5g;
  514. enum rt_regulation_cmn regulator;
  515. enum rt_chnlplan_sreq chnl_sreq;
  516. /* struct _RT_CHNL_PLAN_LIMIT RtChnl; */
  517. u8 chnl_2g[MAX_CHANNEL_NUM]; /* CHNL_RT_2G_WORLD */
  518. u8 len_2g;
  519. u8 chnl_2g_scan_tp[MAX_CHANNEL_NUM]; /* CHNL_RT_2G_WORLD_SCAN_TYPE */
  520. /* u8 Freq2G[2]; */ /* FREQ_RT_2G_WORLD */
  521. u8 chnl_5g[MAX_CHANNEL_NUM];
  522. u8 len_5g;
  523. u8 chnl_5g_scan_tp[MAX_CHANNEL_NUM];
  524. /* u8 Freq2G[2]; */ /* FREQ_RT_2G_WORLD */
  525. struct _RT_CHANNEL_PLAN_MAXPWR chnl_max_pwr;
  526. };
  527. #endif /* __RT_CHANNELPLAN_H__ */