[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1635264275-12530-3-git-send-email-quic_jprakash@quicinc.com>
Date: Tue, 26 Oct 2021 21:34:34 +0530
From: Jishnu Prakash <quic_jprakash@...cinc.com>
To: <agross@...nel.org>, <bjorn.andersson@...aro.org>,
<devicetree@...r.kernel.org>, <mka@...omium.org>,
<dmitry.baryshkov@...aro.org>, <robh+dt@...nel.org>,
<knaack.h@....de>, <lars@...afoo.de>, <pmeerw@...erw.net>,
<manivannan.sadhasivam@...aro.org>, <linus.walleij@...aro.org>,
<quic_kgunda@...cinc.com>, <quic_aghayal@...cinc.com>,
<daniel.lezcano@...aro.org>, <rui.zhang@...el.com>,
<quic_subbaram@...cinc.com>, <jic23@...nel.org>,
<Jonathan.Cameron@...wei.com>, <amitk@...nel.org>,
Jishnu Prakash <quic_jprakash@...cinc.com>,
<linux-arm-msm@...r.kernel.org>, <linux-iio@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
CC: <linux-arm-msm-owner@...r.kernel.org>, <linux-pm@...r.kernel.org>
Subject: [PATCH V2 2/3] 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: Jishnu Prakash <quic_jprakash@...cinc.com>
---
drivers/iio/adc/qcom-vadc-common.c | 11 +++++++++++
include/linux/iio/adc/qcom-vadc-common.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/drivers/iio/adc/qcom-vadc-common.c b/drivers/iio/adc/qcom-vadc-common.c
index 1472389..194d7c3 100644
--- a/drivers/iio/adc/qcom-vadc-common.c
+++ b/drivers/iio/adc/qcom-vadc-common.c
@@ -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,
diff --git a/include/linux/iio/adc/qcom-vadc-common.h b/include/linux/iio/adc/qcom-vadc-common.h
index 33f60f4..598a5d2 100644
--- a/include/linux/iio/adc/qcom-vadc-common.h
+++ b/include/linux/iio/adc/qcom-vadc-common.h
@@ -161,6 +161,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);
--
2.7.4
Powered by blists - more mailing lists