From 040b690e9fc8c2ea7b95ed14b0af05502469f9f9 Mon Sep 17 00:00:00 2001 From: Jishnu Prakash Date: Sun, 14 Aug 2022 11:06:31 +0530 Subject: [PATCH] iio: qcom-spmi-adc5-gen3: update API for immediate conversions When requesting immediate conversion for an ADC channel which has TM functionality configured on channel 0 of second or further SDAM, if the same channel 0 is used for immediate conversion request, it will override the TM configuration done earlier on that channel. To avoid this, use channel 0 of first SDAM alone for immediate conversion requests. Change-Id: Iebcd324df999df736f997c106d57e454088ec54d Signed-off-by: Jishnu Prakash --- drivers/iio/adc/qcom-spmi-adc5-gen3.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/qcom-spmi-adc5-gen3.c b/drivers/iio/adc/qcom-spmi-adc5-gen3.c index 145100c01ee8..b0c13efc0797 100644 --- a/drivers/iio/adc/qcom-spmi-adc5-gen3.c +++ b/drivers/iio/adc/qcom-spmi-adc5-gen3.c @@ -351,8 +351,13 @@ static int adc5_gen3_configure(struct adc5_chip *adc, { int ret; u8 conv_req = 0, buf[7]; + u8 sdam_index = prop->sdam_index; - ret = adc5_read(adc, prop->sdam_index, ADC5_GEN3_SID, buf, sizeof(buf)); + /* Reserve channel 0 of first SDAM for immediate conversions */ + if (prop->adc_tm) + sdam_index = 0; + + ret = adc5_read(adc, sdam_index, ADC5_GEN3_SID, buf, sizeof(buf)); if (ret < 0) return ret; @@ -383,12 +388,12 @@ static int adc5_gen3_configure(struct adc5_chip *adc, reinit_completion(&adc->complete); - ret = adc5_write(adc, prop->sdam_index, ADC5_GEN3_SID, buf, sizeof(buf)); + ret = adc5_write(adc, sdam_index, ADC5_GEN3_SID, buf, sizeof(buf)); if (ret < 0) return ret; conv_req = ADC5_GEN3_CONV_REQ_REQ; - ret = adc5_write(adc, prop->sdam_index, ADC5_GEN3_CONV_REQ, &conv_req, 1); + ret = adc5_write(adc, sdam_index, ADC5_GEN3_CONV_REQ, &conv_req, 1); return ret; }