iio: adc: qcom-vadc-common: add reverse scaling for PMIC5 Gen2 ADC_TM
authorJishnu Prakash <quic_jprakash@quicinc.com>
Sun, 3 Apr 2022 13:17:47 +0000 (18:47 +0530)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 19 May 2022 10:11:51 +0000 (12:11 +0200)
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: Jishnu Prakash <quic_jprakash@quicinc.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/1648991869-20899-3-git-send-email-quic_jprakash@quicinc.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/iio/adc/qcom-vadc-common.c
include/linux/iio/adc/qcom-vadc-common.h

index 6c6aec848f989baf287829236889283651103466..d5209f32adb3e265acd51d56dda32e6d0be42e21 100644 (file)
@@ -677,6 +677,17 @@ u16 qcom_adc_tm5_temp_volt_scale(unsigned int prescale_ratio,
 }
 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,
                    unsigned int prescale_ratio,
                    const struct adc5_data *data,
index ce78d4804994baba70cf39f67d1f3bf0f927f4c4..aa21b032e861e2e82c0e223392c36c0782a06651 100644 (file)
@@ -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,
                                 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_hw_settle_time_from_dt(u32 value, const unsigned int *hw_settle);