linux/drivers/net/wireless/realtek/rtlwifi/rtl8723com/phy_common.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2009-2014  Realtek Corporation.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of version 2 of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  12 * more details.
  13 *
  14 * The full GNU General Public License is included in this distribution in the
  15 * file called LICENSE.
  16 *
  17 * Contact Information:
  18 * wlanfae <wlanfae@realtek.com>
  19 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
  20 * Hsinchu 300, Taiwan.
  21 *
  22 * Larry Finger <Larry.Finger@lwfinger.net>
  23 *
  24 *****************************************************************************/
  25
  26#ifndef __PHY_COMMON__
  27#define __PHY_COMMON__
  28
  29#define RT_CANNOT_IO(hw)                        false
  30
  31enum swchnlcmd_id {
  32        CMDID_END,
  33        CMDID_SET_TXPOWEROWER_LEVEL,
  34        CMDID_BBREGWRITE10,
  35        CMDID_WRITEPORT_ULONG,
  36        CMDID_WRITEPORT_USHORT,
  37        CMDID_WRITEPORT_UCHAR,
  38        CMDID_RF_WRITEREG,
  39};
  40
  41struct swchnlcmd {
  42        enum swchnlcmd_id cmdid;
  43        u32 para1;
  44        u32 para2;
  45        u32 msdelay;
  46};
  47
  48u32 rtl8723_phy_query_bb_reg(struct ieee80211_hw *hw,
  49                             u32 regaddr, u32 bitmask);
  50void rtl8723_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr,
  51                              u32 bitmask, u32 data);
  52u32 rtl8723_phy_calculate_bit_shift(u32 bitmask);
  53u32 rtl8723_phy_rf_serial_read(struct ieee80211_hw *hw,
  54                               enum radio_path rfpath, u32 offset);
  55void rtl8723_phy_rf_serial_write(struct ieee80211_hw *hw,
  56                                 enum radio_path rfpath,
  57                                 u32 offset, u32 data);
  58long rtl8723_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw,
  59                                  enum wireless_mode wirelessmode,
  60                                  u8 txpwridx);
  61void rtl8723_phy_init_bb_rf_reg_def(struct ieee80211_hw *hw);
  62bool rtl8723_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
  63                                      u32 cmdtableidx,
  64                                      u32 cmdtablesz,
  65                                      enum swchnlcmd_id cmdid,
  66                                      u32 para1, u32 para2,
  67                                      u32 msdelay);
  68void rtl8723_phy_path_a_fill_iqk_matrix(struct ieee80211_hw *hw,
  69                                        bool iqk_ok,
  70                                        long result[][8],
  71                                        u8 final_candidate,
  72                                        bool btxonly);
  73void rtl8723_save_adda_registers(struct ieee80211_hw *hw, u32 *addareg,
  74                                 u32 *addabackup, u32 registernum);
  75void rtl8723_phy_save_mac_registers(struct ieee80211_hw *hw,
  76                                    u32 *macreg, u32 *macbackup);
  77void rtl8723_phy_reload_adda_registers(struct ieee80211_hw *hw,
  78                                       u32 *addareg, u32 *addabackup,
  79                                       u32 regiesternum);
  80void rtl8723_phy_reload_mac_registers(struct ieee80211_hw *hw,
  81                                      u32 *macreg, u32 *macbackup);
  82void rtl8723_phy_path_adda_on(struct ieee80211_hw *hw, u32 *addareg,
  83                              bool is_patha_on, bool is2t);
  84void rtl8723_phy_mac_setting_calibration(struct ieee80211_hw *hw,
  85                                         u32 *macreg, u32 *macbackup);
  86void rtl8723_phy_path_a_standby(struct ieee80211_hw *hw);
  87void rtl8723_phy_pi_mode_switch(struct ieee80211_hw *hw, bool pi_mode);
  88
  89#endif
  90