Path: blob/master/ALFA-W1F1/RTL8814AU/hal/rtl8814a/rtl8814a_rf6052.c
1307 views
/******************************************************************************1*2* Copyright(c) 2007 - 2017 Realtek Corporation.3*4* This program is free software; you can redistribute it and/or modify it5* under the terms of version 2 of the GNU General Public License as6* published by the Free Software Foundation.7*8* This program is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for11* more details.12*13*****************************************************************************/14#define _RTL8814A_RF6052_C_1516/* #include <drv_types.h> */17#include <rtl8814a_hal.h>181920/*-----------------------------------------------------------------------------21* Function: PHY_RF6052SetBandwidth()22*23* Overview: This function is called by SetBWModeCallback8190Pci() only24*25* Input: PADAPTER Adapter26* WIRELESS_BANDWIDTH_E Bandwidth //20M or 40M27*28* Output: NONE29*30* Return: NONE31*32* Note: For RF type 0222D33*---------------------------------------------------------------------------*/34void35PHY_RF6052SetBandwidth8814A(36PADAPTER Adapter,37enum channel_width Bandwidth) /* 20M or 40M */38{39switch (Bandwidth) {40case CHANNEL_WIDTH_20:41/*RTW_INFO("PHY_RF6052SetBandwidth8814A(), set 20MHz\n");*/42phy_set_rf_reg(Adapter, RF_PATH_A, RF_CHNLBW_Jaguar, BIT11 | BIT10, 3);43phy_set_rf_reg(Adapter, RF_PATH_B, RF_CHNLBW_Jaguar, BIT11 | BIT10, 3);44phy_set_rf_reg(Adapter, RF_PATH_C, RF_CHNLBW_Jaguar, BIT11 | BIT10, 3);45phy_set_rf_reg(Adapter, RF_PATH_D, RF_CHNLBW_Jaguar, BIT11 | BIT10, 3);46break;4748case CHANNEL_WIDTH_40:49/*RTW_INFO("PHY_RF6052SetBandwidth8814A(), set 40MHz\n");*/50phy_set_rf_reg(Adapter, RF_PATH_A, RF_CHNLBW_Jaguar, BIT11 | BIT10, 1);51phy_set_rf_reg(Adapter, RF_PATH_B, RF_CHNLBW_Jaguar, BIT11 | BIT10, 1);52phy_set_rf_reg(Adapter, RF_PATH_C, RF_CHNLBW_Jaguar, BIT11 | BIT10, 1);53phy_set_rf_reg(Adapter, RF_PATH_D, RF_CHNLBW_Jaguar, BIT11 | BIT10, 1);54break;5556case CHANNEL_WIDTH_80:57/*RTW_INFO("PHY_RF6052SetBandwidth8814A(), set 80MHz\n");*/58phy_set_rf_reg(Adapter, RF_PATH_A, RF_CHNLBW_Jaguar, BIT11 | BIT10, 0);59phy_set_rf_reg(Adapter, RF_PATH_B, RF_CHNLBW_Jaguar, BIT11 | BIT10, 0);60phy_set_rf_reg(Adapter, RF_PATH_C, RF_CHNLBW_Jaguar, BIT11 | BIT10, 0);61phy_set_rf_reg(Adapter, RF_PATH_D, RF_CHNLBW_Jaguar, BIT11 | BIT10, 0);62break;6364default:65RTW_INFO("PHY_RF6052SetBandwidth8814A(): unknown Bandwidth: %#X\n", Bandwidth);66break;67}68}6970static int71phy_RF6052_Config_ParaFile_8814A(72PADAPTER Adapter73)74{75u32 u4RegValue = 0;76enum rf_path eRFPath;77int rtStatus = _SUCCESS;78HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);7980/* 3 */ /* ----------------------------------------------------------------- */81/* 3 */ /* <2> Initialize RF */82/* 3 */ /* ----------------------------------------------------------------- */83/* for(eRFPath = RF_PATH_A; eRFPath <pHalData->NumTotalRFPath; eRFPath++) */84for (eRFPath = 0; eRFPath < pHalData->NumTotalRFPath; eRFPath++) {85/*----Initialize RF fom connfiguration file----*/86switch (eRFPath) {87case RF_PATH_A:88#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE89if (PHY_ConfigRFWithParaFile(Adapter, PHY_FILE_RADIO_A, eRFPath) == _FAIL)90#endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */91{92#ifdef CONFIG_EMBEDDED_FWIMG93if (odm_config_rf_with_header_file(&pHalData->odmpriv, CONFIG_RF_RADIO, eRFPath) == HAL_STATUS_FAILURE)94rtStatus = _FAIL;95#endif /* CONFIG_EMBEDDED_FWIMG */96}97break;98case RF_PATH_B:99#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE100if (PHY_ConfigRFWithParaFile(Adapter, PHY_FILE_RADIO_B, eRFPath) == _FAIL)101#endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */102{103#ifdef CONFIG_EMBEDDED_FWIMG104if (odm_config_rf_with_header_file(&pHalData->odmpriv, CONFIG_RF_RADIO, eRFPath) == HAL_STATUS_FAILURE)105rtStatus = _FAIL;106#endif /* CONFIG_EMBEDDED_FWIMG */107}108break;109case RF_PATH_C:110#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE111if (PHY_ConfigRFWithParaFile(Adapter, PHY_FILE_RADIO_C, eRFPath) == _FAIL)112#endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */113{114#ifdef CONFIG_EMBEDDED_FWIMG115if (odm_config_rf_with_header_file(&pHalData->odmpriv, CONFIG_RF_RADIO, eRFPath) == HAL_STATUS_FAILURE)116rtStatus = _FAIL;117#endif /* CONFIG_EMBEDDED_FWIMG */118}119break;120case RF_PATH_D:121#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE122if (PHY_ConfigRFWithParaFile(Adapter, PHY_FILE_RADIO_D, eRFPath) == _FAIL)123#endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */124{125#ifdef CONFIG_EMBEDDED_FWIMG126if (odm_config_rf_with_header_file(&pHalData->odmpriv, CONFIG_RF_RADIO, eRFPath) == HAL_STATUS_FAILURE)127rtStatus = _FAIL;128#endif /* CONFIG_EMBEDDED_FWIMG */129}130break;131default:132break;133}134135if (rtStatus != _SUCCESS) {136RTW_INFO("%s():Radio[%d] Fail!!", __FUNCTION__, eRFPath);137goto phy_RF6052_Config_ParaFile_Fail;138}139140}141142u4RegValue = phy_query_rf_reg(Adapter, RF_PATH_A, RF_RCK1_Jaguar, bRFRegOffsetMask);143phy_set_rf_reg(Adapter, RF_PATH_B, RF_RCK1_Jaguar, bRFRegOffsetMask, u4RegValue);144phy_set_rf_reg(Adapter, RF_PATH_C, RF_RCK1_Jaguar, bRFRegOffsetMask, u4RegValue);145phy_set_rf_reg(Adapter, RF_PATH_D, RF_RCK1_Jaguar, bRFRegOffsetMask, u4RegValue);146147/* 3 ----------------------------------------------------------------- */148/* 3 Configuration of Tx Power Tracking */149/* 3 ----------------------------------------------------------------- */150151#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE152if (PHY_ConfigRFWithTxPwrTrackParaFile(Adapter, PHY_FILE_TXPWR_TRACK) == _FAIL)153#endif /* CONFIG_LOAD_PHY_PARA_FROM_FILE */154{155#ifdef CONFIG_EMBEDDED_FWIMG156odm_config_rf_with_tx_pwr_track_header_file(&pHalData->odmpriv);157#endif158}159160161phy_RF6052_Config_ParaFile_Fail:162return rtStatus;163}164165166int167PHY_RF6052_Config_8814A(168PADAPTER Adapter)169{170int rtStatus = _SUCCESS;171172/* */173/* Config BB and RF */174/* */175rtStatus = phy_RF6052_Config_ParaFile_8814A(Adapter);176177return rtStatus;178}179180181/* End of HalRf6052.c */182183184