xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852be/phl/phl_chnlplan.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2020 Realtek Corporation.
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  *****************************************************************************/
15 #include "phl_headers.h"
16 #include "phl_chnlplan.h"
17 
18 const struct chdef_2ghz chdef2g[MAX_CHDEF_2GHZ] = {
19     {0, {0x00, 0x00}, {0x00, 0x00}},
20     {1, {0xff, 0x1f}, {0x00, 0x18}},
21     {2, {0xff, 0x1f}, {0x00, 0x00}},
22     {3, {0xff, 0x07}, {0x00, 0x00}},
23     {4, {0xff, 0x3f}, {0x00, 0x00}},
24     {5, {0x00, 0x1e}, {0x00, 0x00}},
25     {6, {0xff, 0x3f}, {0x00, 0x38}},
26 };
27 
28 
29 const struct chdef_5ghz chdef5g[MAX_CHDEF_5GHZ] = {
30     {0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
31     {1, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
32     {2, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x00, 0x00, 0x00},
33     {3, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x00, 0x00},
34     {4, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x01}, {0x00, 0x00}, {0xff, 0x01}, 0x1f, 0x00, 0x00},
35     {5, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x7f, 0x00}, {0x00, 0x00}, {0x7f, 0x00}, 0x0f, 0x00, 0x00},
36     {6, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
37     {7, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
38     {8, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
39     {9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
40     {10, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
41     {11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x00, 0x00, 0x00},
42     {12, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
43     {13, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
44     {14, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
45     {15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
46     {16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0xff, 0x07}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
47     {17, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x07}, {0x00, 0x00}, {0x00, 0x07}, 0x1f, 0x00, 0x00},
48     {18, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
49     {19, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x00, 0x00, 0x00},
50     {20, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x0f, 0x00, 0x00},
51     {21, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x07}, {0x00, 0x00}, {0x00, 0x07}, 0x00, 0x00, 0x00},
52     {22, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x1f, 0x00, 0x00},
53     {23, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x00}, {0x00, 0x00}, {0xff, 0x00}, 0x1f, 0x00, 0x00},
54     {24, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
55     {25, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
56     {26, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
57     {27, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x1f, 0x07}, {0x1f, 0x07}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
58     {28, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
59     {29, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
60     {30, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
61     {31, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
62     {32, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x00, 0x00},
63     {33, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x0f}, {0x00, 0x00}, {0x1f, 0x0f}, 0x1f, 0x00, 0x00},
64     {34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
65     {35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x00, 0x00, 0x00},
66     {36, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x0f, {0xff, 0x0f}, {0xff, 0x0f}, {0xff, 0x0f}, 0x1f, 0x1f, 0x00},
67     {37, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x00, 0x00, 0x00},
68     {38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x00, 0x00, 0x00},
69     {39, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x00}, {0x00, 0x00}, {0xff, 0x00}, 0x1f, 0x00, 0x1f},
70     {40, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x07}, {0x00, 0x00}, {0x1f, 0x07}, 0x1f, 0x00, 0x00},
71     {41, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x1f, 0x00},
72     {42, 0x0f, 0x0f, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x07}, {0x00, 0x00}, {0xff, 0x07}, 0x1f, 0x1f, 0x00},
73     {43, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x06}, {0xff, 0x06}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
74     {44, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x1f, 0x07}, {0x1f, 0x07}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
75     {45, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x1f, 0x1f, 0x00},
76     {46, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, 0x0f, 0x00, 0x00},
77     {47, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, {0xff, 0x07}, {0xff, 0x07}, {0x00, 0x00}, 0x00, 0x00, 0x00},
78     {48, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0x00, 0x00, 0x00},
79     {49, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x01}, {0x00, 0x00}, {0xff, 0x01}, 0x00, 0x00, 0x00},
80     {50, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x00, 0x0f}, {0x00, 0x00}, {0x00, 0x0f}, 0x1f, 0x00, 0x00},
81     {51, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x1f, 0x00}, {0x00, 0x00}, {0x1f, 0x00}, 0x00, 0x00, 0x00},
82     {52, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0xff, 0x0f}, {0x00, 0x00}, {0xff, 0x0f}, 0xff, 0x00, 0x00},
83     {53, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, {0x0f, 0x00}, {0x00, 0x00}, {0x0f, 0x00}, 0x1f, 0x00, 0x00},
84 };
85 
86 
87 const struct regulatory_domain_mapping rdmap[MAX_RD_MAP_NUM] = {
88     {0x00, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 49}},
89     {0x01, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 50}},
90     {0x02, {REGULATION_ETSI, 3}, {REGULATION_ETSI, 7}},
91     {0x03, {REGULATION_ACMA, 2}, {REGULATION_ACMA, 33}},
92     {0x04, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 51}},
93     {0x05, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 6}},
94     {0x06, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 7}},
95     {0x07, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 23}},
96     {0x08, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 21}},
97     {0x09, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 17}},
98     {0x1b, {REGULATION_FCC, 2}, {REGULATION_FCC, 52}},
99     {0x1c, {REGULATION_KCC, 2}, {REGULATION_KCC, 53}},
100     {0x20, {REGULATION_WW, 1}, {REGULATION_NA, 0}},
101     {0x21, {REGULATION_ETSI, 2}, {REGULATION_NA, 0}},
102     {0x22, {REGULATION_FCC, 3}, {REGULATION_NA, 0}},
103     {0x23, {REGULATION_MKK, 4}, {REGULATION_NA, 0}},
104     {0x24, {REGULATION_ETSI, 5}, {REGULATION_NA, 0}},
105     {0x25, {REGULATION_FCC, 3}, {REGULATION_FCC, 3}},
106     {0x26, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 2}},
107     {0x27, {REGULATION_MKK, 4}, {REGULATION_MKK, 2}},
108     {0x28, {REGULATION_KCC, 1}, {REGULATION_KCC, 5}},
109     {0x29, {REGULATION_FCC, 1}, {REGULATION_FCC, 6}},
110     {0x2a, {REGULATION_FCC, 2}, {REGULATION_NA, 0}},
111     {0x2b, {REGULATION_IC, 2}, {REGULATION_IC, 33}},
112     {0x2c, {REGULATION_MKK, 2}, {REGULATION_NA, 0}},
113     {0x2d, {REGULATION_CHILE, 1}, {REGULATION_CHILE, 22}},
114     {0x2e, {REGULATION_WW, 3}, {REGULATION_WW, 37}},
115     {0x2f, {REGULATION_CHILE, 1}, {REGULATION_CHILE, 38}},
116     {0x30, {REGULATION_FCC, 1}, {REGULATION_FCC, 7}},
117     {0x31, {REGULATION_FCC, 1}, {REGULATION_FCC, 8}},
118     {0x32, {REGULATION_FCC, 1}, {REGULATION_FCC, 9}},
119     {0x33, {REGULATION_FCC, 1}, {REGULATION_FCC, 10}},
120     {0x34, {REGULATION_FCC, 3}, {REGULATION_FCC, 1}},
121     {0x35, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 3}},
122     {0x36, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 4}},
123     {0x37, {REGULATION_MKK, 4}, {REGULATION_MKK, 10}},
124     {0x38, {REGULATION_MKK, 4}, {REGULATION_MKK, 11}},
125     {0x39, {REGULATION_NCC, 3}, {REGULATION_NCC, 12}},
126     {0x3a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 2}},
127     {0x3b, {REGULATION_ACMA, 2}, {REGULATION_ACMA, 1}},
128     {0x3c, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 10}},
129     {0x3d, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 15}},
130     {0x3e, {REGULATION_KCC, 2}, {REGULATION_KCC, 3}},
131     {0x3f, {REGULATION_FCC, 3}, {REGULATION_FCC, 22}},
132     {0x40, {REGULATION_NCC, 3}, {REGULATION_NCC, 13}},
133     {0x41, {REGULATION_WW, 6}, {REGULATION_NA, 0}},
134     {0x42, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 14}},
135     {0x43, {REGULATION_FCC, 3}, {REGULATION_FCC, 6}},
136     {0x44, {REGULATION_NCC, 3}, {REGULATION_NCC, 9}},
137     {0x45, {REGULATION_ACMA, 1}, {REGULATION_ACMA, 1}},
138     {0x46, {REGULATION_FCC, 3}, {REGULATION_FCC, 15}},
139     {0x47, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 10}},
140     {0x48, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 7}},
141     {0x49, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 6}},
142     {0x4a, {REGULATION_IC, 3}, {REGULATION_IC, 33}},
143     {0x4b, {REGULATION_KCC, 2}, {REGULATION_KCC, 22}},
144     {0x4c, {REGULATION_FCC, 3}, {REGULATION_FCC, 28}},
145     {0x4d, {REGULATION_MEX, 2}, {REGULATION_MEX, 1}},
146     {0x4e, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 42}},
147     {0x4f, {REGULATION_NA, 0}, {REGULATION_MKK, 43}},
148     {0x50, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 16}},
149     {0x51, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 9}},
150     {0x52, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 17}},
151     {0x53, {REGULATION_NCC, 3}, {REGULATION_NCC, 18}},
152     {0x54, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 15}},
153     {0x55, {REGULATION_FCC, 3}, {REGULATION_FCC, 1}},
154     {0x56, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 19}},
155     {0x57, {REGULATION_FCC, 3}, {REGULATION_FCC, 20}},
156     {0x58, {REGULATION_MKK, 2}, {REGULATION_MKK, 14}},
157     {0x59, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 21}},
158     {0x5a, {REGULATION_NA, 0}, {REGULATION_FCC, 44}},
159     {0x5b, {REGULATION_NA, 0}, {REGULATION_FCC, 45}},
160     {0x5c, {REGULATION_NA, 0}, {REGULATION_FCC, 43}},
161     {0x5d, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 8}},
162     {0x5e, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 3}},
163     {0x5f, {REGULATION_MKK, 2}, {REGULATION_MKK, 47}},
164     {0x60, {REGULATION_FCC, 3}, {REGULATION_FCC, 9}},
165     {0x61, {REGULATION_FCC, 2}, {REGULATION_FCC, 1}},
166     {0x62, {REGULATION_FCC, 2}, {REGULATION_FCC, 3}},
167     {0x63, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 23}},
168     {0x64, {REGULATION_MKK, 2}, {REGULATION_MKK, 24}},
169     {0x65, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 24}},
170     {0x66, {REGULATION_FCC, 3}, {REGULATION_FCC, 27}},
171     {0x67, {REGULATION_FCC, 3}, {REGULATION_FCC, 25}},
172     {0x68, {REGULATION_FCC, 2}, {REGULATION_FCC, 27}},
173     {0x69, {REGULATION_FCC, 2}, {REGULATION_FCC, 25}},
174     {0x6a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 25}},
175     {0x6b, {REGULATION_FCC, 1}, {REGULATION_FCC, 29}},
176     {0x6c, {REGULATION_FCC, 1}, {REGULATION_FCC, 26}},
177     {0x6d, {REGULATION_FCC, 2}, {REGULATION_FCC, 28}},
178     {0x6e, {REGULATION_FCC, 1}, {REGULATION_FCC, 25}},
179     {0x6f, {REGULATION_NA, 0}, {REGULATION_ETSI, 6}},
180     {0x70, {REGULATION_NA, 0}, {REGULATION_ETSI, 30}},
181     {0x71, {REGULATION_NA, 0}, {REGULATION_ETSI, 25}},
182     {0x72, {REGULATION_NA, 0}, {REGULATION_ETSI, 31}},
183     {0x73, {REGULATION_FCC, 1}, {REGULATION_FCC, 1}},
184     {0x74, {REGULATION_FCC, 2}, {REGULATION_FCC, 19}},
185     {0x75, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 32}},
186     {0x76, {REGULATION_FCC, 2}, {REGULATION_FCC, 22}},
187     {0x77, {REGULATION_ETSI, 1}, {REGULATION_ETSI, 34}},
188     {0x78, {REGULATION_FCC, 3}, {REGULATION_FCC, 35}},
189     {0x79, {REGULATION_MKK, 2}, {REGULATION_MKK, 2}},
190     {0x7a, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 28}},
191     {0x7b, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 46}},
192     {0x7c, {REGULATION_ETSI, 2}, {REGULATION_ETSI, 47}},
193     {0x7d, {REGULATION_MKK, 4}, {REGULATION_MKK, 48}},
194     {0x7e, {REGULATION_MKK, 2}, {REGULATION_MKK, 48}},
195     {0x7f, {REGULATION_WW, 1}, {REGULATION_WW, 36}},
196 };
197 
198 
199 
200