hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/******************************************************************************
 *
 * Copyright(c) 2019 Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 *****************************************************************************/
#ifndef _HALRF_API_H_
#define _HALRF_API_H_
/*@--------------------------[Define] ---------------------------------------*/
#define HALRF_ABS(a,b) ((a>b) ? (a-b) : (b-a))
/*@--------------------------[Enum]------------------------------------------*/
enum phlrf_lna_set {
   PHLRF_LNA_DISABLE = 0,
   PHLRF_LNA_ENABLE = 1,
};
 
enum halrf_rfk_type {
   RF_BTC_IQK        = 0,
   RF_BTC_LCK        = 1,
   RF_BTC_DPK        = 2,
   RF_BTC_TXGAPK        = 3,
   RF_BTC_DACK        = 4,
   RF_BTC_RXDCK        = 5,
   RF_BTC_TSSI        = 6
};
 
enum halrf_rfk_process {
   RFK_STOP        = 0,
   RFK_START        = 1,
   RFK_ONESHOT_START    = 2,
   RFK_ONESHOT_STOP    = 3
};
 
enum halrf_event_idx {
   RF_EVENT_PWR_TRK = 0,
   RF_EVENT_IQK = 1,
   RF_EVENT_DPK = 2,
   RF_EVENT_TXGAPK = 3,
   RF_EVENT_DACK = 4
};
 
enum halrf_event_func {
   RF_EVENT_OFF = 0,
   RF_EVENT_ON = 1,
   RF_EVENT_TRIGGER = 2
};
 
 
/*@--------------------------[Structure]-------------------------------------*/
 
/*@--------------------------[Prptotype]-------------------------------------*/
struct rf_info;
 
u32 phlrf_psd_log2base(struct rf_info *rf, u32 val);
 
void phlrf_rf_lna_setting(struct rf_info *rf, enum phlrf_lna_set type);
 
void halrf_bkp(struct rf_info *rf, u32 *bp_reg, u32 *bp, u32 reg_num);
 
void halrf_bkprf(struct rf_info *rf, u32 *bp_reg, u32 bp[][4], u32 reg_num, u32 path_num);
 
void halrf_reload_bkp(struct rf_info *rf, u32 *bp_reg, u32 *bp, u32 reg_num);
   
void halrf_reload_bkprf(struct rf_info *rf,
              u32 *bp_reg,
              u32 bp[][4],
              u32 reg_num,
              u8 path_num);
 
u8 halrf_kpath(struct rf_info *rf, enum phl_phy_idx phy_idx);
 
void halrf_tmac_tx_pause(struct rf_info *rf, enum phl_phy_idx band_idx, bool pause);
 
void halrf_trigger_thermal(struct rf_info *rf);
 
u8 halrf_only_get_thermal(struct rf_info *rf, enum rf_path path);
 
void halrf_thermal_period(struct rf_info *rf);
 
void halrf_btc_rfk_ntfy(struct rf_info *rf, u8 phy_map, enum halrf_rfk_type type,
           enum halrf_rfk_process process);
void halrf_fcs_init(struct rf_info *rf);
void halrf_fast_chl_sw_backup(struct rf_info *rf, u8 chl_index, u8 t_index);
void halrf_fast_chl_sw_reload(struct rf_info *rf, u8 chl_index, u8 t_index);
 
/*FW Offload*/
void halrf_write_fwofld_start(struct rf_info *rf);
void halrf_write_fwofld_end(struct rf_info *rf);
 
void  halrf_quick_check_rf(void *rf_void);
#endif