1 /*
2  * Copyright (c) 2010 Broadcom Corporation
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef _wlc_phy_lcn_h_
18 #define _wlc_phy_lcn_h_
19 
20 struct phy_info_lcnphy {
21 	int lcnphy_txrf_sp_9_override;
22 	u8 lcnphy_full_cal_channel;
23 	u8 lcnphy_cal_counter;
24 	u16 lcnphy_cal_temper;
25 	bool lcnphy_recal;
26 
27 	u8 lcnphy_rc_cap;
28 	u32 lcnphy_mcs20_po;
29 
30 	u8 lcnphy_tr_isolation_mid;
31 	u8 lcnphy_tr_isolation_low;
32 	u8 lcnphy_tr_isolation_hi;
33 
34 	u8 lcnphy_bx_arch;
35 	u8 lcnphy_rx_power_offset;
36 	u8 lcnphy_rssi_vf;
37 	u8 lcnphy_rssi_vc;
38 	u8 lcnphy_rssi_gs;
39 	u8 lcnphy_tssi_val;
40 	u8 lcnphy_rssi_vf_lowtemp;
41 	u8 lcnphy_rssi_vc_lowtemp;
42 	u8 lcnphy_rssi_gs_lowtemp;
43 
44 	u8 lcnphy_rssi_vf_hightemp;
45 	u8 lcnphy_rssi_vc_hightemp;
46 	u8 lcnphy_rssi_gs_hightemp;
47 
48 	s16 lcnphy_pa0b0;
49 	s16 lcnphy_pa0b1;
50 	s16 lcnphy_pa0b2;
51 
52 	u16 lcnphy_rawtempsense;
53 	u8 lcnphy_measPower;
54 	u8 lcnphy_tempsense_slope;
55 	u8 lcnphy_freqoffset_corr;
56 	u8 lcnphy_tempsense_option;
57 	u8 lcnphy_tempcorrx;
58 	bool lcnphy_iqcal_swp_dis;
59 	bool lcnphy_hw_iqcal_en;
60 	uint lcnphy_bandedge_corr;
61 	bool lcnphy_spurmod;
62 	u16 lcnphy_tssi_tx_cnt;
63 	u16 lcnphy_tssi_idx;
64 	u16 lcnphy_tssi_npt;
65 
66 	u16 lcnphy_target_tx_freq;
67 	s8 lcnphy_tx_power_idx_override;
68 	u16 lcnphy_noise_samples;
69 
70 	u32 lcnphy_papdRxGnIdx;
71 	u32 lcnphy_papd_rxGnCtrl_init;
72 
73 	u32 lcnphy_gain_idx_14_lowword;
74 	u32 lcnphy_gain_idx_14_hiword;
75 	u32 lcnphy_gain_idx_27_lowword;
76 	u32 lcnphy_gain_idx_27_hiword;
77 	s16 lcnphy_ofdmgainidxtableoffset;
78 	s16 lcnphy_dsssgainidxtableoffset;
79 	u32 lcnphy_tr_R_gain_val;
80 	u32 lcnphy_tr_T_gain_val;
81 	s8 lcnphy_input_pwr_offset_db;
82 	u16 lcnphy_Med_Low_Gain_db;
83 	u16 lcnphy_Very_Low_Gain_db;
84 	s8 lcnphy_lastsensed_temperature;
85 	s8 lcnphy_pkteng_rssi_slope;
86 	u8 lcnphy_saved_tx_user_target[TXP_NUM_RATES];
87 	u8 lcnphy_volt_winner;
88 	u8 lcnphy_volt_low;
89 	u8 lcnphy_54_48_36_24mbps_backoff;
90 	u8 lcnphy_11n_backoff;
91 	u8 lcnphy_lowerofdm;
92 	u8 lcnphy_cck;
93 	u8 lcnphy_psat_2pt3_detected;
94 	s32 lcnphy_lowest_Re_div_Im;
95 	s8 lcnphy_final_papd_cal_idx;
96 	u16 lcnphy_extstxctrl4;
97 	u16 lcnphy_extstxctrl0;
98 	u16 lcnphy_extstxctrl1;
99 	s16 lcnphy_cck_dig_filt_type;
100 	s16 lcnphy_ofdm_dig_filt_type;
101 	lcnphy_cal_results_t lcnphy_cal_results;
102 
103 	u8 lcnphy_psat_pwr;
104 	u8 lcnphy_psat_indx;
105 	s32 lcnphy_min_phase;
106 	u8 lcnphy_final_idx;
107 	u8 lcnphy_start_idx;
108 	u8 lcnphy_current_index;
109 	u16 lcnphy_logen_buf_1;
110 	u16 lcnphy_local_ovr_2;
111 	u16 lcnphy_local_oval_6;
112 	u16 lcnphy_local_oval_5;
113 	u16 lcnphy_logen_mixer_1;
114 
115 	u8 lcnphy_aci_stat;
116 	uint lcnphy_aci_start_time;
117 	s8 lcnphy_tx_power_offset[TXP_NUM_RATES];
118 };
119 #endif				/* _wlc_phy_lcn_h_ */
120