/****************************************************************************** * * 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