Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80fe43f2 authored by Rajkumar Manoharan's avatar Rajkumar Manoharan Committed by John W. Linville
Browse files

ath9k_hw: Read and configure thermocal for AR9462



Read and configure thermometer calibration results read from
OTP card.

Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 02eba421
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -4015,6 +4015,24 @@ static void ar9003_hw_thermometer_apply(struct ath_hw *ah)
	}
}

static void ar9003_hw_thermo_cal_apply(struct ath_hw *ah)
{
	u32 data, ko, kg;

	if (!AR_SREV_9462_20(ah))
		return;
	ar9300_otp_read_word(ah, 1, &data);
	ko = data & 0xff;
	kg = (data >> 8) & 0xff;
	if (ko || kg) {
		REG_RMW_FIELD(ah, AR_PHY_BB_THERM_ADC_3,
			      AR_PHY_BB_THERM_ADC_3_THERM_ADC_OFFSET, ko);
		REG_RMW_FIELD(ah, AR_PHY_BB_THERM_ADC_3,
			      AR_PHY_BB_THERM_ADC_3_THERM_ADC_SCALE_GAIN,
			      kg + 256);
	}
}

static void ath9k_hw_ar9300_set_board_values(struct ath_hw *ah,
					     struct ath9k_channel *chan)
{
@@ -4031,6 +4049,7 @@ static void ath9k_hw_ar9300_set_board_values(struct ath_hw *ah,
	ar9003_hw_apply_tuning_caps(ah);
	ar9003_hw_txend_to_xpa_off_apply(ah, is2ghz);
	ar9003_hw_thermometer_apply(ah);
	ar9003_hw_thermo_cal_apply(ah);
}

static void ath9k_hw_ar9300_set_addac(struct ath_hw *ah,
+6 −0
Original line number Diff line number Diff line
@@ -609,6 +609,12 @@
#define AR_PHY_BB_THERM_ADC_1_INIT_THERM		0x000000ff
#define AR_PHY_BB_THERM_ADC_1_INIT_THERM_S		0

#define AR_PHY_BB_THERM_ADC_3				(AR_SM_BASE + 0x250)
#define AR_PHY_BB_THERM_ADC_3_THERM_ADC_SCALE_GAIN	0x0001ff00
#define AR_PHY_BB_THERM_ADC_3_THERM_ADC_SCALE_GAIN_S	8
#define AR_PHY_BB_THERM_ADC_3_THERM_ADC_OFFSET		0x000000ff
#define AR_PHY_BB_THERM_ADC_3_THERM_ADC_OFFSET_S	0

#define AR_PHY_BB_THERM_ADC_4				(AR_SM_BASE + 0x254)
#define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_VALUE	0x000000ff
#define AR_PHY_BB_THERM_ADC_4_LATEST_THERM_VALUE_S	0