1*6f3fcdc8SLarry Finger /* SPDX-License-Identifier: GPL-2.0 */ 2*6f3fcdc8SLarry Finger /* Copyright(c) 2009-2012 Realtek Corporation.*/ 3*6f3fcdc8SLarry Finger 4f1d2b4d3SLarry Finger #ifndef __RTL92S_PHY_H__ 5f1d2b4d3SLarry Finger #define __RTL92S_PHY_H__ 6f1d2b4d3SLarry Finger 7f1d2b4d3SLarry Finger #define MAX_TXPWR_IDX_NMODE_92S 63 8f1d2b4d3SLarry Finger #define MAX_DOZE_WAITING_TIMES_9x 64 9f1d2b4d3SLarry Finger 10f1d2b4d3SLarry Finger /* Channel switch:The size of 11f1d2b4d3SLarry Finger * command tables for switch channel */ 12f1d2b4d3SLarry Finger #define MAX_PRECMD_CNT 16 13f1d2b4d3SLarry Finger #define MAX_RFDEPENDCMD_CNT 16 14f1d2b4d3SLarry Finger #define MAX_POSTCMD_CNT 16 15f1d2b4d3SLarry Finger 16f1d2b4d3SLarry Finger #define RF90_PATH_MAX 4 17f1d2b4d3SLarry Finger #define RF6052_MAX_PATH 2 18f1d2b4d3SLarry Finger 19f1d2b4d3SLarry Finger enum version_8192s { 20f1d2b4d3SLarry Finger VERSION_8192S_ACUT, 21f1d2b4d3SLarry Finger VERSION_8192S_BCUT, 22f1d2b4d3SLarry Finger VERSION_8192S_CCUT 23f1d2b4d3SLarry Finger }; 24f1d2b4d3SLarry Finger 25f1d2b4d3SLarry Finger enum swchnlcmd_id { 26f1d2b4d3SLarry Finger CMDID_END, 27f1d2b4d3SLarry Finger CMDID_SET_TXPOWEROWER_LEVEL, 28f1d2b4d3SLarry Finger CMDID_BBREGWRITE10, 29f1d2b4d3SLarry Finger CMDID_WRITEPORT_ULONG, 30f1d2b4d3SLarry Finger CMDID_WRITEPORT_USHORT, 31f1d2b4d3SLarry Finger CMDID_WRITEPORT_UCHAR, 32f1d2b4d3SLarry Finger CMDID_RF_WRITEREG, 33f1d2b4d3SLarry Finger }; 34f1d2b4d3SLarry Finger 35f1d2b4d3SLarry Finger struct swchnlcmd { 36f1d2b4d3SLarry Finger enum swchnlcmd_id cmdid; 37f1d2b4d3SLarry Finger u32 para1; 38f1d2b4d3SLarry Finger u32 para2; 39f1d2b4d3SLarry Finger u32 msdelay; 40f1d2b4d3SLarry Finger }; 41f1d2b4d3SLarry Finger 42f1d2b4d3SLarry Finger enum baseband_config_type { 43f1d2b4d3SLarry Finger /* Radio Path A */ 44f1d2b4d3SLarry Finger BASEBAND_CONFIG_PHY_REG = 0, 45f1d2b4d3SLarry Finger /* Radio Path B */ 46f1d2b4d3SLarry Finger BASEBAND_CONFIG_AGC_TAB = 1, 47f1d2b4d3SLarry Finger }; 48f1d2b4d3SLarry Finger 49f1d2b4d3SLarry Finger #define hal_get_firmwareversion(rtlpriv) \ 50f1d2b4d3SLarry Finger (((struct rt_firmware *)(rtlpriv->rtlhal.pfirmware))->firmwareversion) 51f1d2b4d3SLarry Finger 52f1d2b4d3SLarry Finger u32 rtl92s_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask); 53f1d2b4d3SLarry Finger void rtl92s_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask, 54f1d2b4d3SLarry Finger u32 data); 55f1d2b4d3SLarry Finger void rtl92s_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation); 56f1d2b4d3SLarry Finger u32 rtl92s_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, 57f1d2b4d3SLarry Finger u32 regaddr, u32 bitmask); 58f1d2b4d3SLarry Finger void rtl92s_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, 59f1d2b4d3SLarry Finger u32 regaddr, u32 bitmask, u32 data); 60f1d2b4d3SLarry Finger void rtl92s_phy_set_bw_mode(struct ieee80211_hw *hw, 61f1d2b4d3SLarry Finger enum nl80211_channel_type ch_type); 62f1d2b4d3SLarry Finger u8 rtl92s_phy_sw_chnl(struct ieee80211_hw *hw); 63f1d2b4d3SLarry Finger bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw, 64f1d2b4d3SLarry Finger enum rf_pwrstate rfpower_state); 65f1d2b4d3SLarry Finger bool rtl92s_phy_mac_config(struct ieee80211_hw *hw); 66f1d2b4d3SLarry Finger void rtl92s_phy_switch_ephy_parameter(struct ieee80211_hw *hw); 67f1d2b4d3SLarry Finger bool rtl92s_phy_bb_config(struct ieee80211_hw *hw); 68f1d2b4d3SLarry Finger bool rtl92s_phy_rf_config(struct ieee80211_hw *hw); 69f1d2b4d3SLarry Finger void rtl92s_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw); 70f1d2b4d3SLarry Finger void rtl92s_phy_set_txpower(struct ieee80211_hw *hw, u8 channel); 71f1d2b4d3SLarry Finger bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fwcmd_io); 72f1d2b4d3SLarry Finger void rtl92s_phy_chk_fwcmd_iodone(struct ieee80211_hw *hw); 73f1d2b4d3SLarry Finger void rtl92s_phy_set_beacon_hwreg(struct ieee80211_hw *hw, u16 beaconinterval); 74f1d2b4d3SLarry Finger u8 rtl92s_phy_config_rf(struct ieee80211_hw *hw, enum radio_path rfpath) ; 75f1d2b4d3SLarry Finger 76f1d2b4d3SLarry Finger #endif 77f1d2b4d3SLarry Finger 78