示例#1
0
bool rtl92c_phy_bb_config(struct ieee80211_hw *hw)
{
	bool rtstatus = true;
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	u16 regval;
	u32 regvaldw;
	u8 reg_hwparafile = 1;

	_rtl92c_phy_init_bb_rf_register_definition(hw);
	regval = rtl_read_word(rtlpriv, REG_SYS_FUNC_EN);
	rtl_write_word(rtlpriv, REG_SYS_FUNC_EN,
		       regval | BIT(13) | BIT(0) | BIT(1));
	rtl_write_byte(rtlpriv, REG_AFE_PLL_CTRL, 0x83);
	rtl_write_byte(rtlpriv, REG_AFE_PLL_CTRL + 1, 0xdb);
	rtl_write_byte(rtlpriv, REG_RF_CTRL, RF_EN | RF_RSTB | RF_SDMRSTB);
	rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN,
		       FEN_PPLL | FEN_PCIEA | FEN_DIO_PCIE |
		       FEN_BB_GLB_RSTn | FEN_BBRSTB);
	rtl_write_byte(rtlpriv, REG_AFE_XTAL_CTRL + 1, 0x80);
	regvaldw = rtl_read_dword(rtlpriv, REG_LEDCFG0);
	rtl_write_dword(rtlpriv, REG_LEDCFG0, regvaldw | BIT(23));
	if (reg_hwparafile == 1)
		rtstatus = _rtl92c_phy_bb8192c_config_parafile(hw);
	return rtstatus;
}
示例#2
0
bool rtl92cu_phy_bb_config( struct ieee80211_hw *hw )
{
	bool rtstatus = true;
	struct rtl_priv *rtlpriv = rtl_priv( hw );
	struct rtl_hal *rtlhal = rtl_hal( rtl_priv( hw ) );
	u16 regval;
	u32 regval32;
	u8 b_reg_hwparafile = 1;

	_rtl92c_phy_init_bb_rf_register_definition( hw );
	regval = rtl_read_word( rtlpriv, REG_SYS_FUNC_EN );
	rtl_write_word( rtlpriv, REG_SYS_FUNC_EN, regval | BIT( 13 ) |
		       BIT( 0 ) | BIT( 1 ) );
	rtl_write_byte( rtlpriv, REG_AFE_PLL_CTRL, 0x83 );
	rtl_write_byte( rtlpriv, REG_AFE_PLL_CTRL + 1, 0xdb );
	rtl_write_byte( rtlpriv, REG_RF_CTRL, RF_EN | RF_RSTB | RF_SDMRSTB );
	if ( IS_HARDWARE_TYPE_8192CE( rtlhal ) ) {
		rtl_write_byte( rtlpriv, REG_SYS_FUNC_EN, FEN_PPLL | FEN_PCIEA |
			       FEN_DIO_PCIE |	FEN_BB_GLB_RSTn | FEN_BBRSTB );
	} else if ( IS_HARDWARE_TYPE_8192CU( rtlhal ) ) {
		rtl_write_byte( rtlpriv, REG_SYS_FUNC_EN, FEN_USBA | FEN_USBD |
			       FEN_BB_GLB_RSTn | FEN_BBRSTB );
	}
	regval32 = rtl_read_dword( rtlpriv, 0x87c );
	rtl_write_dword( rtlpriv, 0x87c, regval32 & ( ~BIT( 31 ) ) );
	if ( IS_HARDWARE_TYPE_8192CU( rtlhal ) )
		rtl_write_byte( rtlpriv, REG_LDOHCI12_CTRL, 0x0f );
	rtl_write_byte( rtlpriv, REG_AFE_XTAL_CTRL + 1, 0x80 );
	if ( b_reg_hwparafile == 1 )
		rtstatus = _rtl92c_phy_bb8192c_config_parafile( hw );
	return rtstatus;
}