add rk3288 pinctrl dts code
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rtl8192cu / core / rtw_rf.c
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2011 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 #define _RTW_RF_C_
21
22 #include <drv_conf.h>
23 #include <osdep_service.h>
24 #include <drv_types.h>
25 #include <recv_osdep.h>
26 #include <xmit_osdep.h>
27
28
29 struct ch_freq {
30         u32 channel;
31         u32 frequency;
32 };
33
34 struct ch_freq ch_freq_map[] = {
35         {1, 2412},{2, 2417},{3, 2422},{4, 2427},{5, 2432},
36         {6, 2437},{7, 2442},{8, 2447},{9, 2452},{10, 2457},
37         {11, 2462},{12, 2467},{13, 2472},{14, 2484},
38         /*  UNII */
39         {36, 5180},{40, 5200},{44, 5220},{48, 5240},{52, 5260},
40         {56, 5280},{60, 5300},{64, 5320},{149, 5745},{153, 5765},
41         {157, 5785},{161, 5805},{165, 5825},{167, 5835},{169, 5845},
42         {171, 5855},{173, 5865},
43         /* HiperLAN2 */
44         {100, 5500},{104, 5520},{108, 5540},{112, 5560},{116, 5580},
45         {120, 5600},{124, 5620},{128, 5640},{132, 5660},{136, 5680},
46         {140, 5700},
47         /* Japan MMAC */
48         {34, 5170},{38, 5190},{42, 5210},{46, 5230},
49         /*  Japan */
50         {184, 4920},{188, 4940},{192, 4960},{196, 4980},
51         {208, 5040},/* Japan, means J08 */
52         {212, 5060},/* Japan, means J12 */
53         {216, 5080},/* Japan, means J16 */
54 };
55
56 int ch_freq_map_num = (sizeof(ch_freq_map) / sizeof(struct ch_freq));
57
58 u32 rtw_ch2freq(u32 channel)
59 {
60         u8      i;
61         u32     freq = 0;
62
63         for (i = 0; i < ch_freq_map_num; i++)
64         {
65                 if (channel == ch_freq_map[i].channel)
66                 {
67                         freq = ch_freq_map[i].frequency;
68                                 break;
69                 }
70         }
71         if (i == ch_freq_map_num)
72                 freq = 2412;
73
74         return freq;
75 }
76
77 u32 rtw_freq2ch(u32 freq)
78 {
79         u8      i;
80         u32     ch = 0;
81
82         for (i = 0; i < ch_freq_map_num; i++)
83         {
84                 if (freq == ch_freq_map[i].frequency)
85                 {
86                         ch = ch_freq_map[i].channel;
87                                 break;
88                 }
89         }
90         if (i == ch_freq_map_num)
91                 ch = 1;
92
93         return ch;
94 }
95