xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8189fs/hal/phydm/phydm_psd.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /******************************************************************************
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Copyright(c) 2007 - 2017  Realtek Corporation.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify it
6*4882a593Smuzhiyun  * under the terms of version 2 of the GNU General Public License as
7*4882a593Smuzhiyun  * published by the Free Software Foundation.
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This program is distributed in the hope that it will be useful, but WITHOUT
10*4882a593Smuzhiyun  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11*4882a593Smuzhiyun  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12*4882a593Smuzhiyun  * more details.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  * The full GNU General Public License is included in this distribution in the
15*4882a593Smuzhiyun  * file called LICENSE.
16*4882a593Smuzhiyun  *
17*4882a593Smuzhiyun  * Contact Information:
18*4882a593Smuzhiyun  * wlanfae <wlanfae@realtek.com>
19*4882a593Smuzhiyun  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20*4882a593Smuzhiyun  * Hsinchu 300, Taiwan.
21*4882a593Smuzhiyun  *
22*4882a593Smuzhiyun  * Larry Finger <Larry.Finger@lwfinger.net>
23*4882a593Smuzhiyun  *
24*4882a593Smuzhiyun  *****************************************************************************/
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #ifndef __PHYDMPSD_H__
27*4882a593Smuzhiyun #define __PHYDMPSD_H__
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /*@#define PSD_VERSION	"1.0"*/ /*@2016.09.22  Dino*/
30*4882a593Smuzhiyun /*@2016.10.07  Dino, Add Option for PSD Tone index Selection */
31*4882a593Smuzhiyun /*@2019.04.26  Early return & "IF0" for JGR3 ICs */
32*4882a593Smuzhiyun #define PSD_VERSION "1.2"
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #ifdef CONFIG_PSD_TOOL
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun struct psd_info {
38*4882a593Smuzhiyun 	u8	psd_in_progress;
39*4882a593Smuzhiyun 	u32	psd_reg;
40*4882a593Smuzhiyun 	u32	psd_report_reg;
41*4882a593Smuzhiyun 	u8	psd_pwr_common_offset;
42*4882a593Smuzhiyun 	u16	sw_avg_time;
43*4882a593Smuzhiyun 	u16	fft_smp_point;
44*4882a593Smuzhiyun 	u32	rf_0x18_bkp;
45*4882a593Smuzhiyun 	u32	rf_0x18_bkp_b;
46*4882a593Smuzhiyun 	u16	psd_fc_channel;
47*4882a593Smuzhiyun 	u32	psd_bw_rf_reg;
48*4882a593Smuzhiyun 	u8	psd_result[128];
49*4882a593Smuzhiyun 	u8	noise_k_en;
50*4882a593Smuzhiyun };
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun u32 phydm_get_psd_data(void *dm_void, u32 psd_tone_idx, u32 igi);
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun void phydm_psd_debug(void *dm_void, char input[][16], u32 *_used,
55*4882a593Smuzhiyun 		     char *output, u32 *_out_len);
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun u8 phydm_psd(void *dm_void, u32 igi, u16 start_point, u16 stop_point);
58*4882a593Smuzhiyun 
59*4882a593Smuzhiyun void phydm_psd_para_setting(void *dm_void, u8 sw_avg_time, u8 hw_avg_time,
60*4882a593Smuzhiyun 			    u8 i_q_setting, u16 fft_smp_point, u8 ant_sel,
61*4882a593Smuzhiyun 			    u8 psd_input, u8 channel, u8 noise_k_en);
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun void phydm_psd_init(void *dm_void);
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun u8 phydm_get_psd_result_table(void *dm_void, int index);
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun #endif
68*4882a593Smuzhiyun #endif
69