xref: /freebsd/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.h (revision b4c3e9b5b09c829b4135aff738bd2893ed052377)
1*b4c3e9b5SBjoern A. Zeeb // SPDX-License-Identifier: ISC
2*b4c3e9b5SBjoern A. Zeeb /*
3*b4c3e9b5SBjoern A. Zeeb  * Copyright (c) 2010 Broadcom Corporation
4*b4c3e9b5SBjoern A. Zeeb  */
5*b4c3e9b5SBjoern A. Zeeb 
6*b4c3e9b5SBjoern A. Zeeb #ifndef _BRCM_PHY_LCN_H_
7*b4c3e9b5SBjoern A. Zeeb #define _BRCM_PHY_LCN_H_
8*b4c3e9b5SBjoern A. Zeeb 
9*b4c3e9b5SBjoern A. Zeeb #include <types.h>
10*b4c3e9b5SBjoern A. Zeeb 
11*b4c3e9b5SBjoern A. Zeeb struct brcms_phy_lcnphy {
12*b4c3e9b5SBjoern A. Zeeb 	int lcnphy_txrf_sp_9_override;
13*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_full_cal_channel;
14*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_cal_counter;
15*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_cal_temper;
16*b4c3e9b5SBjoern A. Zeeb 	bool lcnphy_recal;
17*b4c3e9b5SBjoern A. Zeeb 
18*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rc_cap;
19*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_mcs20_po;
20*b4c3e9b5SBjoern A. Zeeb 
21*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tr_isolation_mid;
22*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tr_isolation_low;
23*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tr_isolation_hi;
24*b4c3e9b5SBjoern A. Zeeb 
25*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_bx_arch;
26*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rx_power_offset;
27*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vf;
28*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vc;
29*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_gs;
30*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tssi_val;
31*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vf_lowtemp;
32*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vc_lowtemp;
33*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_gs_lowtemp;
34*b4c3e9b5SBjoern A. Zeeb 
35*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vf_hightemp;
36*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_vc_hightemp;
37*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_rssi_gs_hightemp;
38*b4c3e9b5SBjoern A. Zeeb 
39*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_pa0b0;
40*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_pa0b1;
41*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_pa0b2;
42*b4c3e9b5SBjoern A. Zeeb 
43*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_rawtempsense;
44*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_measPower;
45*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tempsense_slope;
46*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_freqoffset_corr;
47*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tempsense_option;
48*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_tempcorrx;
49*b4c3e9b5SBjoern A. Zeeb 	bool lcnphy_iqcal_swp_dis;
50*b4c3e9b5SBjoern A. Zeeb 	bool lcnphy_hw_iqcal_en;
51*b4c3e9b5SBjoern A. Zeeb 	uint lcnphy_bandedge_corr;
52*b4c3e9b5SBjoern A. Zeeb 	bool lcnphy_spurmod;
53*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_tssi_tx_cnt;
54*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_tssi_idx;
55*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_tssi_npt;
56*b4c3e9b5SBjoern A. Zeeb 
57*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_target_tx_freq;
58*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_tx_power_idx_override;
59*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_noise_samples;
60*b4c3e9b5SBjoern A. Zeeb 
61*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_papdRxGnIdx;
62*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_papd_rxGnCtrl_init;
63*b4c3e9b5SBjoern A. Zeeb 
64*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_gain_idx_14_lowword;
65*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_gain_idx_14_hiword;
66*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_gain_idx_27_lowword;
67*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_gain_idx_27_hiword;
68*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_ofdmgainidxtableoffset;
69*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_dsssgainidxtableoffset;
70*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_tr_R_gain_val;
71*b4c3e9b5SBjoern A. Zeeb 	u32 lcnphy_tr_T_gain_val;
72*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_input_pwr_offset_db;
73*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_Med_Low_Gain_db;
74*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_Very_Low_Gain_db;
75*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_lastsensed_temperature;
76*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_pkteng_rssi_slope;
77*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_saved_tx_user_target[TXP_NUM_RATES];
78*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_volt_winner;
79*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_volt_low;
80*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_54_48_36_24mbps_backoff;
81*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_11n_backoff;
82*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_lowerofdm;
83*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_cck;
84*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_psat_2pt3_detected;
85*b4c3e9b5SBjoern A. Zeeb 	s32 lcnphy_lowest_Re_div_Im;
86*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_final_papd_cal_idx;
87*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_extstxctrl4;
88*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_extstxctrl0;
89*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_extstxctrl1;
90*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_cck_dig_filt_type;
91*b4c3e9b5SBjoern A. Zeeb 	s16 lcnphy_ofdm_dig_filt_type;
92*b4c3e9b5SBjoern A. Zeeb 	struct lcnphy_cal_results lcnphy_cal_results;
93*b4c3e9b5SBjoern A. Zeeb 
94*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_psat_pwr;
95*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_psat_indx;
96*b4c3e9b5SBjoern A. Zeeb 	s32 lcnphy_min_phase;
97*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_final_idx;
98*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_start_idx;
99*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_current_index;
100*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_logen_buf_1;
101*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_local_ovr_2;
102*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_local_oval_6;
103*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_local_oval_5;
104*b4c3e9b5SBjoern A. Zeeb 	u16 lcnphy_logen_mixer_1;
105*b4c3e9b5SBjoern A. Zeeb 
106*b4c3e9b5SBjoern A. Zeeb 	u8 lcnphy_aci_stat;
107*b4c3e9b5SBjoern A. Zeeb 	uint lcnphy_aci_start_time;
108*b4c3e9b5SBjoern A. Zeeb 	s8 lcnphy_tx_power_offset[TXP_NUM_RATES];
109*b4c3e9b5SBjoern A. Zeeb };
110*b4c3e9b5SBjoern A. Zeeb #endif				/* _BRCM_PHY_LCN_H_ */
111