|
@@ -701,6 +701,8 @@ static void ath9k_hw_init_pll(struct ath_hw *ah,
|
|
|
{
|
|
{
|
|
|
u32 pll;
|
|
u32 pll;
|
|
|
|
|
|
|
|
|
|
+ pll = ath9k_hw_compute_pll_control(ah, chan);
|
|
|
|
|
+
|
|
|
if (AR_SREV_9485(ah) || AR_SREV_9565(ah)) {
|
|
if (AR_SREV_9485(ah) || AR_SREV_9565(ah)) {
|
|
|
/* program BB PLL ki and kd value, ki=0x4, kd=0x40 */
|
|
/* program BB PLL ki and kd value, ki=0x4, kd=0x40 */
|
|
|
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
|
|
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
|
|
@@ -751,7 +753,8 @@ static void ath9k_hw_init_pll(struct ath_hw *ah,
|
|
|
REG_RMW_FIELD(ah, AR_CH0_DDR_DPLL3,
|
|
REG_RMW_FIELD(ah, AR_CH0_DDR_DPLL3,
|
|
|
AR_CH0_DPLL3_PHASE_SHIFT, 0x1);
|
|
AR_CH0_DPLL3_PHASE_SHIFT, 0x1);
|
|
|
|
|
|
|
|
- REG_WRITE(ah, AR_RTC_PLL_CONTROL, 0x1142c);
|
|
|
|
|
|
|
+ REG_WRITE(ah, AR_RTC_PLL_CONTROL,
|
|
|
|
|
+ pll | AR_RTC_9300_PLL_BYPASS);
|
|
|
udelay(1000);
|
|
udelay(1000);
|
|
|
|
|
|
|
|
/* program refdiv, nint, frac to RTC register */
|
|
/* program refdiv, nint, frac to RTC register */
|
|
@@ -767,7 +770,8 @@ static void ath9k_hw_init_pll(struct ath_hw *ah,
|
|
|
} else if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah)) {
|
|
} else if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah)) {
|
|
|
u32 regval, pll2_divint, pll2_divfrac, refdiv;
|
|
u32 regval, pll2_divint, pll2_divfrac, refdiv;
|
|
|
|
|
|
|
|
- REG_WRITE(ah, AR_RTC_PLL_CONTROL, 0x1142c);
|
|
|
|
|
|
|
+ REG_WRITE(ah, AR_RTC_PLL_CONTROL,
|
|
|
|
|
+ pll | AR_RTC_9300_SOC_PLL_BYPASS);
|
|
|
udelay(1000);
|
|
udelay(1000);
|
|
|
|
|
|
|
|
REG_SET_BIT(ah, AR_PHY_PLL_MODE, 0x1 << 16);
|
|
REG_SET_BIT(ah, AR_PHY_PLL_MODE, 0x1 << 16);
|
|
@@ -840,7 +844,6 @@ static void ath9k_hw_init_pll(struct ath_hw *ah,
|
|
|
udelay(1000);
|
|
udelay(1000);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- pll = ath9k_hw_compute_pll_control(ah, chan);
|
|
|
|
|
if (AR_SREV_9565(ah))
|
|
if (AR_SREV_9565(ah))
|
|
|
pll |= 0x40000;
|
|
pll |= 0x40000;
|
|
|
REG_WRITE(ah, AR_RTC_PLL_CONTROL, pll);
|
|
REG_WRITE(ah, AR_RTC_PLL_CONTROL, pll);
|