Commit 238e34ad authored by Jishnu Prakash's avatar Jishnu Prakash Committed by Daniel Lezcano
Browse files

iio: adc: qcom-vadc-common: add reverse scaling for PMIC5 Gen2 ADC_TM



Add reverse scaling function for PMIC5 Gen2 ADC_TM, to convert
temperature to raw ADC code, for setting thresholds for
thermistor channels.

Signed-off-by: default avatarJishnu Prakash <quic_jprakash@quicinc.com>
Acked-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/1648991869-20899-3-git-send-email-quic_jprakash@quicinc.com


Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent e46e003a
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -677,6 +677,17 @@ u16 qcom_adc_tm5_temp_volt_scale(unsigned int prescale_ratio,
}
}
EXPORT_SYMBOL(qcom_adc_tm5_temp_volt_scale);
EXPORT_SYMBOL(qcom_adc_tm5_temp_volt_scale);


u16 qcom_adc_tm5_gen2_temp_res_scale(int temp)
{
	int64_t resistance;

	resistance = qcom_vadc_map_temp_voltage(adcmap7_100k,
		ARRAY_SIZE(adcmap7_100k), temp);

	return div64_s64(resistance * RATIO_MAX_ADC7, resistance + R_PU_100K);
}
EXPORT_SYMBOL(qcom_adc_tm5_gen2_temp_res_scale);

int qcom_adc5_hw_scale(enum vadc_scale_fn_type scaletype,
int qcom_adc5_hw_scale(enum vadc_scale_fn_type scaletype,
		    unsigned int prescale_ratio,
		    unsigned int prescale_ratio,
		    const struct adc5_data *data,
		    const struct adc5_data *data,
+2 −0
Original line number Original line Diff line number Diff line
@@ -152,6 +152,8 @@ int qcom_adc5_hw_scale(enum vadc_scale_fn_type scaletype,
u16 qcom_adc_tm5_temp_volt_scale(unsigned int prescale_ratio,
u16 qcom_adc_tm5_temp_volt_scale(unsigned int prescale_ratio,
				 u32 full_scale_code_volt, int temp);
				 u32 full_scale_code_volt, int temp);


u16 qcom_adc_tm5_gen2_temp_res_scale(int temp);

int qcom_adc5_prescaling_from_dt(u32 num, u32 den);
int qcom_adc5_prescaling_from_dt(u32 num, u32 den);


int qcom_adc5_hw_settle_time_from_dt(u32 value, const unsigned int *hw_settle);
int qcom_adc5_hw_settle_time_from_dt(u32 value, const unsigned int *hw_settle);