net: wireless: rockchip_wlan: add rtl8723cs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723cs / hal / phydm / rtchnlplan.h
diff --git a/drivers/net/wireless/rockchip_wlan/rtl8723cs/hal/phydm/rtchnlplan.h b/drivers/net/wireless/rockchip_wlan/rtl8723cs/hal/phydm/rtchnlplan.h
new file mode 100644 (file)
index 0000000..2e5a24c
--- /dev/null
@@ -0,0 +1,682 @@
+/******************************************************************************
+ *
+ * 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__ */