--- /dev/null
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ *
+ ******************************************************************************/
+
+
+#ifndef __RT_CHANNELPLAN_H__
+#define __RT_CHANNELPLAN_H__
+
+enum rt_channel_domain_new {
+
+ /* ===== Add new channel plan above this line =============== */
+
+ /* For new architecture we define different 2G/5G CH area for all country. */
+ /* 2.4 G only */
+ RT_CHANNEL_DOMAIN_2G_WORLD_5G_NULL = 0x20,
+ RT_CHANNEL_DOMAIN_2G_ETSI1_5G_NULL = 0x21,
+ RT_CHANNEL_DOMAIN_2G_FCC1_5G_NULL = 0x22,
+ RT_CHANNEL_DOMAIN_2G_MKK1_5G_NULL = 0x23,
+ RT_CHANNEL_DOMAIN_2G_ETSI2_5G_NULL = 0x24,
+ /* 2.4 G + 5G type 1 */
+ RT_CHANNEL_DOMAIN_2G_FCC1_5G_FCC1 = 0x25,
+ RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x26,
+ /* RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x27, */
+ /* ..... */
+
+ RT_CHANNEL_DOMAIN_MAX_NEW,
+
+};
+
+
+#if 0
+#define DOMAIN_CODE_2G_WORLD \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
+#define DOMAIN_CODE_2G_ETSI1 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
+#define DOMAIN_CODE_2G_ETSI2 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
+#define DOMAIN_CODE_2G_FCC1 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
+#define DOMAIN_CODE_2G_MKK1 \
+ {10, 11, 12, 13}, 4
+
+#define DOMAIN_CODE_5G_ETSI1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
+#define DOMAIN_CODE_5G_ETSI2 \
+ {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
+#define DOMAIN_CODE_5G_ETSI3 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
+#define DOMAIN_CODE_5G_FCC1 \
+ {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
+#define DOMAIN_CODE_5G_FCC2 \
+ {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
+#define DOMAIN_CODE_5G_FCC3 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
+#define DOMAIN_CODE_5G_FCC4 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
+#define DOMAIN_CODE_5G_FCC5 \
+ {149, 153, 157, 161, 165}, 5
+#define DOMAIN_CODE_5G_FCC6 \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define DOMAIN_CODE_5G_FCC7 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define DOMAIN_CODE_5G_IC1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define DOMAIN_CODE_5G_KCC1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
+#define DOMAIN_CODE_5G_MKK1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
+#define DOMAIN_CODE_5G_MKK2 \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define DOMAIN_CODE_5G_MKK3 \
+ {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
+#define DOMAIN_CODE_5G_NCC1 \
+ {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
+#define DOMAIN_CODE_5G_NCC2 \
+ {56, 60, 64, 149, 153, 157, 161, 165}, 8
+#define UNDEFINED \
+ {0}, 0
+#endif
+
+/*
+ *
+ *
+ *
+
+Countries "Country Abbreviation" Domain Code SKU's Ch# of 20MHz
+ 2G 5G Ch# of 40MHz
+"Albaniaªüº¸¤Ú¥§¨È" AL Local Test
+
+"Algeriaªüº¸¤Î§Q¨È" DZ CE TCF
+
+"Antigua & Barbuda¦w´£¥Ê®q&¤Ú¥¬¹F" AG 2G_WORLD FCC TCF
+
+"Argentinaªü®Ú§Ê" AR 2G_WORLD Local Test
+
+"Armenia¨È¬ü¥§¨È" AM 2G_WORLD ETSI
+
+"Arubaªü¾|¤Ú®q" AW 2G_WORLD FCC TCF
+
+"Australia¿D¬w" AU 2G_WORLD 5G_ETSI2
+
+"Austria¶ø¦a§Q" AT 2G_WORLD 5G_ETSI1 CE
+
+"Azerbaijanªü¶ë«ô¾Ê" AZ 2G_WORLD CE TCF
+
+"Bahamas¤Ú«¢°¨" BS 2G_WORLD
+
+"Barbados¤Ú¤Ú¦h´µ" BB 2G_WORLD FCC TCF
+
+"Belgium¤ñ§Q®É" BE 2G_WORLD 5G_ETSI1 CE
+
+"Bermuda¦Ê¼}¹F" BM 2G_WORLD FCC TCF
+
+"Brazil¤Ú¦è" BR 2G_WORLD Local Test
+
+"Bulgaria«O¥[§Q¨È" BG 2G_WORLD 5G_ETSI1 CE
+
+"Canada¥[®³¤j" CA 2G_FCC1 5G_FCC7 IC / FCC IC / FCC
+
+"Cayman Islands¶}°Ò¸s®q" KY 2G_WORLD 5G_ETSI1 CE
+
+"Chile´¼§Q" CL 2G_WORLD FCC TCF
+
+"China¤¤°ê" CN 2G_WORLD 5G_FCC5 «H³¡?¡i2002¡j353?
+
+"ColumbiaôÛ¤ñ¨È" CO 2G_WORLD Voluntary
+
+"Costa Ricaô´µ¹F¾¤¥[" CR 2G_WORLD FCC TCF
+
+"Cyprus¶ë®ú¸ô´µ" CY 2G_WORLD 5G_ETSI1 CE
+
+"Czech ±¶§J" CZ 2G_WORLD 5G_ETSI1 CE
+
+"Denmark¤¦³Á" DK 2G_WORLD 5G_ETSI1 CE
+
+"Dominican Republic¦h©ú¥§¥[¦@©M°ê" DO 2G_WORLD FCC TCF
+
+"Egypt®J¤Î" EG 2G_WORLD CE T CF
+
+"El SalvadorÂĺ¸¥Ë¦h" SV 2G_WORLD Voluntary
+
+"Estonia·R¨F¥§¨È" EE 2G_WORLD 5G_ETSI1 CE
+
+"FinlandªâÄõ" FI 2G_WORLD 5G_ETSI1 CE
+
+"Franceªk°ê" FR 5G_E TSI1 CE
+
+"Germany¼w°ê" DE 2G_WORLD 5G_ETSI1 CE
+
+"Greece §Æþ" GR 2G_WORLD 5G_ETSI1 CE
+
+"GuamÃö®q" GU 2G_WORLD
+
+"Guatemala¥Ê¦a°¨©Ô" GT 2G_WORLD
+
+"Haiti®ü¦a" HT 2G_WORLD FCC TCF
+
+"Honduras§»³£©Ô´µ" HN 2G_WORLD FCC TCF
+
+"Hungary¦I¤ú§Q" HU 2G_WORLD 5G_ETSI1 CE
+
+"Iceland¦B®q" IS 2G_WORLD 5G_ETSI1 CE
+
+"India¦L«×" 2G_WORLD 5G_FCC3 FCC/CE TCF
+
+"Ireland·Rº¸Äõ" IE 2G_WORLD 5G_ETSI1 CE
+
+"Israel¥H¦â¦C" IL 5G_F CC6 CE TCF
+
+"Italy¸q¤j§Q" IT 2G_WORLD 5G_ETSI1 CE
+
+"Japan¤é¥»" JP 2G_MKK1 5G_MKK1 MKK MKK
+
+"KoreaÁú°ê" KR 2G_WORLD 5G_KCC1 KCC KCC
+
+"Latvia©Ô²æºû¨È" LV 2G_WORLD 5G_ETSI1 CE
+
+"Lithuania¥ß³³©{" LT 2G_WORLD 5G_ETSI1 CE
+
+"Luxembourg¿c´Ë³ù" LU 2G_WORLD 5G_ETSI1 CE
+
+"Malaysia°¨¨Ó¦è¨È" MY 2G_WORLD Local Test
+
+"Malta°¨º¸¥L" MT 2G_WORLD 5G_ETSI1 CE
+
+"Mexico¾¥¦èô" MX 2G_WORLD 5G_FCC3 Local Test
+
+"Morocco¼¯¬¥ô" MA CE TCF
+
+"Netherlands²üÄõ" NL 2G_WORLD 5G_ETSI1 CE
+
+"New Zealand¯Ã¦èÄõ" NZ 2G_WORLD 5G_ETSI2
+
+"Norway®¿«Â" NO 2G_WORLD 5G_ETSI1 CE
+
+"Panama¤Ú®³°¨ " PA 2G_FCC1 Voluntary
+
+"Philippines栮ᯮ" PH 2G_WORLD FCC TCF
+
+"PolandªiÄõ" PL 2G_WORLD 5G_ETSI1 CE
+
+"Portugal¸²µå¤ú" PT 2G_WORLD 5G_ETSI1 CE
+
+"Romaniaù°¨¥§¨È" RO 2G_WORLD 5G_ETSI1 CE
+
+"Russia«Xù´µ" RU 2G_WORLD 5G_ETSI3 CE TCF
+
+"Saudi Arabia¨F¦aªü©Ô§B" SA 2G_WORLD CE TCF
+
+"Singapore·s¥[©Y" SG 2G_WORLD
+
+"Slovakia´µ¬¥¥ï§J" SK 2G_WORLD 5G_ETSI1 CE
+
+"Slovenia´µ¬¥ºû¥§¨È" SI 2G_WORLD 5G_ETSI1 CE
+
+"South Africa«n«D" ZA 2G_WORLD CE TCF
+
+"Spain¦è¯Z¤ú" ES 5G_ETSI1 CE
+
+"Sweden·ç¨å" SE 2G_WORLD 5G_ETSI1 CE
+
+"Switzerland·ç¤h" CH 2G_WORLD 5G_ETSI1 CE
+
+"Taiwan»OÆW" TW 2G_FCC1 5G_NCC1 NCC
+
+"Thailand®õ°ê" TH 2G_WORLD FCC/CE TCF
+
+"Turkey¤g¦Õ¨ä" TR 2G_WORLD
+
+"Ukraine¯Q§JÄõ" UA 2G_WORLD Local Test
+
+"United Kingdom^°ê" GB 2G_WORLD 5G_ETSI1 CE ETSI
+
+"United States¬ü°ê" US 2G_FCC1 5G_FCC7 FCC FCC
+
+"Venezuela©e¤º·ç©Ô" VE 2G_WORLD 5G_FCC4 FCC TCF
+
+"Vietnam¶V«n" VN 2G_WORLD FCC/CE TCF
+
+
+
+*/
+
+/* counter abbervation. */
+enum rt_country_name {
+ RT_CTRY_AL, /* "Albaniaªüº¸¤Ú¥§¨È" */
+ RT_CTRY_DZ, /* "Algeriaªüº¸¤Î§Q¨È" */
+ RT_CTRY_AG, /* "Antigua & Barbuda¦w´£¥Ê®q&¤Ú¥¬¹F" */
+ RT_CTRY_AR, /* "Argentinaªü®Ú§Ê" */
+ RT_CTRY_AM, /* "Armenia¨È¬ü¥§¨È" */
+ RT_CTRY_AW, /* "Arubaªü¾|¤Ú®q" */
+ RT_CTRY_AU, /* "Australia¿D¬w" */
+ RT_CTRY_AT, /* "Austria¶ø¦a§Q" */
+ RT_CTRY_AZ, /* "Azerbaijanªü¶ë«ô¾Ê" */
+ RT_CTRY_BS, /* "Bahamas¤Ú«¢°¨" */
+ RT_CTRY_BB, /* "Barbados¤Ú¤Ú¦h´µ" */
+ RT_CTRY_BE, /* "Belgium¤ñ§Q®É" */
+ RT_CTRY_BM, /* "Bermuda¦Ê¼}¹F" */
+ RT_CTRY_BR, /* "Brazil¤Ú¦è" */
+ RT_CTRY_BG, /* "Bulgaria«O¥[§Q¨È" */
+ RT_CTRY_CA, /* "Canada¥[®³¤j" */
+ RT_CTRY_KY, /* "Cayman Islands¶}°Ò¸s®q" */
+ RT_CTRY_CL, /* "Chile´¼§Q" */
+ RT_CTRY_CN, /* "China¤¤°ê" */
+ RT_CTRY_CO, /* "ColumbiaôÛ¤ñ¨È" */
+ RT_CTRY_CR, /* "Costa Ricaô´µ¹F¾¤¥[" */
+ RT_CTRY_CY, /* "Cyprus¶ë®ú¸ô´µ" */
+ RT_CTRY_CZ, /* "Czech ±¶§J" */
+ RT_CTRY_DK, /* "Denmark¤¦³Á" */
+ RT_CTRY_DO, /* "Dominican Republic¦h©ú¥§¥[¦@©M°ê" */
+ RT_CTRY_CE, /* "Egypt®J¤Î" EG 2G_WORLD */
+ RT_CTRY_SV, /* "El SalvadorÂĺ¸¥Ë¦h" */
+ RT_CTRY_EE, /* "Estonia·R¨F¥§¨È" */
+ RT_CTRY_FI, /* "FinlandªâÄõ" */
+ RT_CTRY_FR, /* "Franceªk°ê" */
+ RT_CTRY_DE, /* "Germany¼w°ê" */
+ RT_CTRY_GR, /* "Greece §Æþ" */
+ RT_CTRY_GU, /* "GuamÃö®q" */
+ RT_CTRY_GT, /* "Guatemala¥Ê¦a°¨©Ô" */
+ RT_CTRY_HT, /* "Haiti®ü¦a" */
+ RT_CTRY_HN, /* "Honduras§»³£©Ô´µ" */
+ RT_CTRY_HU, /* "Hungary¦I¤ú§Q" */
+ RT_CTRY_IS, /* "Iceland¦B®q" */
+ RT_CTRY_IN, /* "India¦L«×" */
+ RT_CTRY_IE, /* "Ireland·Rº¸Äõ" */
+ RT_CTRY_IL, /* "Israel¥H¦â¦C" */
+ RT_CTRY_IT, /* "Italy¸q¤j§Q" */
+ RT_CTRY_JP, /* "Japan¤é¥»" */
+ RT_CTRY_KR, /* "KoreaÁú°ê" */
+ RT_CTRY_LV, /* "Latvia©Ô²æºû¨È" */
+ RT_CTRY_LT, /* "Lithuania¥ß³³©{" */
+ RT_CTRY_LU, /* "Luxembourg¿c´Ë³ù" */
+ RT_CTRY_MY, /* "Malaysia°¨¨Ó¦è¨È" */
+ RT_CTRY_MT, /* "Malta°¨º¸¥L" */
+ RT_CTRY_MX, /* "Mexico¾¥¦èô" */
+ RT_CTRY_MA, /* "Morocco¼¯¬¥ô" */
+ RT_CTRY_NL, /* "Netherlands²üÄõ" */
+ RT_CTRY_NZ, /* "New Zealand¯Ã¦èÄõ" */
+ RT_CTRY_NO, /* "Norway®¿«Â" */
+ RT_CTRY_PA, /* "Panama¤Ú®³°¨ " */
+ RT_CTRY_PH, /* "Philippines栮ᯮ" */
+ RT_CTRY_PL, /* "PolandªiÄõ" */
+ RT_CTRY_PT, /* "Portugal¸²µå¤ú" */
+ RT_CTRY_RO, /* "Romaniaù°¨¥§¨È" */
+ RT_CTRY_RU, /* "Russia«Xù´µ" */
+ RT_CTRY_SA, /* "Saudi Arabia¨F¦aªü©Ô§B" */
+ RT_CTRY_SG, /* "Singapore·s¥[©Y" */
+ RT_CTRY_SK, /* "Slovakia´µ¬¥¥ï§J" */
+ RT_CTRY_SI, /* "Slovenia´µ¬¥ºû¥§¨È" */
+ RT_CTRY_ZA, /* "South Africa«n«D" */
+ RT_CTRY_ES, /* "Spain¦è¯Z¤ú" */
+ RT_CTRY_SE, /* "Sweden·ç¨å" */
+ RT_CTRY_CH, /* "Switzerland·ç¤h" */
+ RT_CTRY_TW, /* "Taiwan»OÆW" */
+ RT_CTRY_TH, /* "Thailand®õ°ê" */
+ RT_CTRY_TR, /* "Turkey¤g¦Õ¨ä" */
+ RT_CTRY_UA, /* "Ukraine¯Q§JÄõ" */
+ RT_CTRY_GB, /* "United Kingdom^°ê" */
+ RT_CTRY_US, /* "United States¬ü°ê" */
+ RT_CTRY_VE, /* "Venezuela©e¤º·ç©Ô" */
+ RT_CTRY_VN, /* "Vietnam¶V«n" */
+ RT_CTRY_MAX,
+
+};
+
+/* Scan type including active and passive scan. */
+enum rt_scan_type_new {
+ SCAN_NULL,
+ SCAN_ACT,
+ SCAN_PAS,
+ SCAN_BOTH,
+};
+
+
+/* Power table sample. */
+
+struct _RT_CHNL_PLAN_LIMIT {
+ u16 chnl_start;
+ u16 chnl_end;
+
+ u16 freq_start;
+ u16 freq_end;
+};
+
+
+/*
+ * 2.4G Regulatory Domains
+ * */
+enum rt_regulation_2g {
+ RT_2G_NULL,
+ RT_2G_WORLD,
+ RT_2G_ETSI1,
+ RT_2G_FCC1,
+ RT_2G_MKK1,
+ RT_2G_ETSI2
+
+};
+
+
+/* typedef struct _RT_CHANNEL_BEHAVIOR
+ * {
+ * u8 chnl;
+ * enum rt_scan_type_new
+ *
+ * }RT_CHANNEL_BEHAVIOR, *PRT_CHANNEL_BEHAVIOR; */
+
+/* typedef struct _RT_CHANNEL_PLAN_TYPE
+ * {
+ * RT_CHANNEL_BEHAVIOR
+ * u8 Chnl_num;
+ * }RT_CHNL_PLAN_TYPE, *PRT_CHNL_PLAN_TYPE; */
+
+/*
+ * 2.4G channel number
+ * channel definition & number
+ * */
+#define CHNL_RT_2G_NULL \
+ {0}, 0
+#define CHNL_RT_2G_WORLD \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
+#define CHNL_RT_2G_WORLD_TEST \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
+
+#define CHNL_RT_2G_EFSI1 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13
+#define CHNL_RT_2G_FCC1 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11
+#define CHNL_RT_2G_MKK1 \
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14
+#define CHNL_RT_2G_ETSI2 \
+ {10, 11, 12, 13}, 4
+
+/*
+ * 2.4G channel active or passive scan.
+ * */
+#define CHNL_RT_2G_NULL_SCAN_TYPE \
+ {SCAN_NULL}
+#define CHNL_RT_2G_WORLD_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}
+#define CHNL_RT_2G_EFSI1_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+#define CHNL_RT_2G_FCC1_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+#define CHNL_RT_2G_MKK1_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+#define CHNL_RT_2G_ETSI2_SCAN_TYPE \
+ {1, 1, 1, 1}
+
+
+/*
+ * 2.4G band & Frequency Section
+ * Freqency start & end / band number
+ * */
+#define FREQ_RT_2G_NULL \
+ {0}, 0
+/* Passive scan CH 12, 13 */
+#define FREQ_RT_2G_WORLD \
+ {2412, 2472}, 1
+#define FREQ_RT_2G_EFSI1 \
+ {2412, 2472}, 1
+#define FREQ_RT_2G_FCC1 \
+ {2412, 2462}, 1
+#define FREQ_RT_2G_MKK1 \
+ {2412, 2484}, 1
+#define FREQ_RT_2G_ETSI2 \
+ {2457, 2472}, 1
+
+
+/*
+ * 5G Regulatory Domains
+ * */
+enum rt_regulation_5g {
+ RT_5G_NULL,
+ RT_5G_WORLD,
+ RT_5G_ETSI1,
+ RT_5G_ETSI2,
+ RT_5G_ETSI3,
+ RT_5G_FCC1,
+ RT_5G_FCC2,
+ RT_5G_FCC3,
+ RT_5G_FCC4,
+ RT_5G_FCC5,
+ RT_5G_FCC6,
+ RT_5G_FCC7,
+ RT_5G_IC1,
+ RT_5G_KCC1,
+ RT_5G_MKK1,
+ RT_5G_MKK2,
+ RT_5G_MKK3,
+ RT_5G_NCC1,
+
+};
+
+/*
+ * 5G channel number
+ * */
+#define CHNL_RT_5G_NULL \
+ {0}, 0
+#define CHNL_RT_5G_WORLD \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
+#define CHNL_RT_5G_ETSI1 \
+ {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
+#define CHNL_RT_5G_ETSI2 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
+#define CHNL_RT_5G_ETSI3 \
+ {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
+#define CHNL_RT_5G_FCC1 \
+ {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
+#define CHNL_RT_5G_FCC2 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
+#define CHNL_RT_5G_FCC3 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
+#define CHNL_RT_5G_FCC4 \
+ {149, 153, 157, 161, 165}, 5
+#define CHNL_RT_5G_FCC5 \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define CHNL_RT_5G_FCC6 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_FCC7 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_IC1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_KCC1 \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
+#define CHNL_RT_5G_MKK1 \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define CHNL_RT_5G_MKK2 \
+ {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
+#define CHNL_RT_5G_MKK3 \
+ {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
+#define CHNL_RT_5G_NCC1 \
+ {56, 60, 64, 149, 153, 157, 161, 165}, 8
+
+/*
+ * 5G channel active or passive scan.
+ * */
+#define CHNL_RT_5G_NULL_SCAN_TYPE \
+ {SCAN_NULL}
+#define CHNL_RT_5G_WORLD_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+#define CHNL_RT_5G_ETSI1_SCAN_TYPE \
+ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+#define CHNL_RT_5G_ETSI2_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 149, 153, 157, 161, 165}, 22
+#define CHNL_RT_5G_ETSI3_SCAN_TYPE \
+ {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
+#define CHNL_RT_5G_FCC1_SCAN_TYPE \
+ {36, 40, 44, 48, 149, 153, 157, 161, 165}, 9
+#define CHNL_RT_5G_FCC2_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165}, 13
+#define CHNL_RT_5G_FCC3_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161}, 12
+#define CHNL_RT_5G_FCC4_SCAN_TYPE \
+ {149, 153, 157, 161, 165}, 5
+#define CHNL_RT_5G_FCC5_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define CHNL_RT_5G_FCC6_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_FCC7_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_IC1_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 149, 153, 157, 161, 165}, 20
+#define CHNL_RT_5G_KCC1_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 19
+#define CHNL_RT_5G_MKK1_SCAN_TYPE \
+ {36, 40, 44, 48, 52, 56, 60, 64}, 8
+#define CHNL_RT_5G_MKK2_SCAN_TYPE \
+ {100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140}, 11
+#define CHNL_RT_5G_MKK3_SCAN_TYPE \
+ {56, 60, 64, 100, 104, 108, 112, 116, 136, 140, 149, 153, 157, 161, 165}, 24
+#define CHNL_RT_5G_NCC1_SCAN_TYPE \
+ {56, 60, 64, 149, 153, 157, 161, 165}, 8
+
+/*
+ * Global regulation
+ * */
+enum rt_regulation_cmn {
+ RT_WORLD,
+ RT_FCC,
+ RT_MKK,
+ RT_ETSI,
+ RT_IC,
+ RT_CE,
+ RT_NCC,
+
+};
+
+
+
+/*
+ * Special requirement for different regulation domain.
+ * For internal test or customerize special request.
+ * */
+enum rt_chnlplan_sreq {
+ RT_SREQ_NA = 0x0,
+ RT_SREQ_2G_ADHOC_11N = 0x00000001,
+ RT_SREQ_2G_ADHOC_11B = 0x00000002,
+ RT_SREQ_2G_ALL_PASS = 0x00000004,
+ RT_SREQ_2G_ALL_ACT = 0x00000008,
+ RT_SREQ_5G_ADHOC_11N = 0x00000010,
+ RT_SREQ_5G_ADHOC_11AC = 0x00000020,
+ RT_SREQ_5G_ALL_PASS = 0x00000040,
+ RT_SREQ_5G_ALL_ACT = 0x00000080,
+ RT_SREQ_C1_PLAN = 0x00000100,
+ RT_SREQ_C2_PLAN = 0x00000200,
+ RT_SREQ_C3_PLAN = 0x00000400,
+ RT_SREQ_C4_PLAN = 0x00000800,
+ RT_SREQ_NFC_ON = 0x00001000,
+ RT_SREQ_MASK = 0x0000FFFF, /* Requirements bit mask */
+
+};
+
+
+/*
+ * enum rt_country_name & enum rt_regulation_2g & enum rt_regulation_5g transfer table
+ *
+ * */
+struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE {
+ /* */
+ /* Define countery domain and corresponding */
+ /* */
+ enum rt_country_name country_enum;
+ char country_name[3];
+
+ /* char Domain_Name[12]; */
+ enum rt_regulation_2g domain_2g;
+
+ enum rt_regulation_5g domain_5g;
+
+ RT_CHANNEL_DOMAIN rt_ch_domain;
+ /* u8 Country_Area; */
+
+};
+
+
+#define RT_MAX_CHNL_NUM_2G 13
+#define RT_MAX_CHNL_NUM_5G 44
+
+/* Power table sample. */
+
+struct _RT_CHNL_PLAN_PWR_LIMIT {
+ u16 chnl_start;
+ u16 chnl_end;
+ u8 db_max;
+ u16 m_w_max;
+};
+
+
+#define RT_MAX_BAND_NUM 5
+
+struct _RT_CHANNEL_PLAN_MAXPWR {
+ /* STRING_T */
+ struct _RT_CHNL_PLAN_PWR_LIMIT chnl[RT_MAX_BAND_NUM];
+ u8 band_useful_num;
+
+
+};
+
+
+/*
+ * Power By rate Table.
+ * */
+
+
+
+struct _RT_CHANNEL_PLAN_NEW {
+ /* */
+ /* Define countery domain and corresponding */
+ /* */
+ /* char country_name[36]; */
+ /* u8 country_enum; */
+
+ /* char Domain_Name[12]; */
+
+
+ struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE *p_ctry_transfer;
+
+ RT_CHANNEL_DOMAIN rt_ch_domain;
+
+ enum rt_regulation_2g domain_2g;
+
+ enum rt_regulation_5g domain_5g;
+
+ enum rt_regulation_cmn regulator;
+
+ enum rt_chnlplan_sreq chnl_sreq;
+
+ /* struct _RT_CHNL_PLAN_LIMIT RtChnl; */
+
+ u8 chnl_2g[MAX_CHANNEL_NUM]; /* CHNL_RT_2G_WORLD */
+ u8 len_2g;
+ u8 chnl_2g_scan_tp[MAX_CHANNEL_NUM]; /* CHNL_RT_2G_WORLD_SCAN_TYPE */
+ /* u8 Freq2G[2]; */ /* FREQ_RT_2G_WORLD */
+
+ u8 chnl_5g[MAX_CHANNEL_NUM];
+ u8 len_5g;
+ u8 chnl_5g_scan_tp[MAX_CHANNEL_NUM];
+ /* u8 Freq2G[2]; */ /* FREQ_RT_2G_WORLD */
+
+ struct _RT_CHANNEL_PLAN_MAXPWR chnl_max_pwr;
+
+
+};
+
+
+#endif /* __RT_CHANNELPLAN_H__ */