From: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Amit Kucheria" <amitk@kernel.org>,
"Thara Gopinath" <thara.gopinath@gmail.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Daniel Lezcano" <daniel.lezcano@kernel.org>,
"Zhang Rui" <rui.zhang@intel.com>,
"Lukasz Luba" <lukasz.luba@arm.com>,
"Bjorn Andersson" <andersson@kernel.org>,
"Konrad Dybcio" <konradybcio@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-pm@vger.kernel.org,
"Kamal Wadhwa" <kamal.wadhwa@oss.qualcomm.com>,
"Anjelique Melendez" <anjelique.melendez@oss.qualcomm.com>,
"Manaf Meethalavalappu Pallikunhi"
<manaf.pallikunhi@oss.qualcomm.com>,
"Priyansh Jain" <priyansh.jain@oss.qualcomm.com>
Subject: Re: [PATCH 2/7] iio: adc: qcom-spmi-adc5-gen3: Add support for QCOM PMIC5 Gen4 ADC
Date: Fri, 7 Aug 2026 13:37:02 +0530 [thread overview]
Message-ID: <f2b2f590-de3e-4f10-b883-92845f59412d@oss.qualcomm.com> (raw)
In-Reply-To: <20260807001822.31f7c137@jic23-huawei>
Hi Jonathan,
On 8/7/2026 4:48 AM, Jonathan Cameron wrote:
> On Thu, 6 Aug 2026 16:22:16 +0530
> Jishnu Prakash <jishnu.prakash@oss.qualcomm.com> wrote:
>
>> Hi Jonathan,
>>
>> On 8/3/2026 5:44 AM, Jonathan Cameron wrote:
>>> On Fri, 31 Jul 2026 23:36:15 +0530
>>> Jishnu Prakash <jishnu.prakash@oss.qualcomm.com> wrote:
>>>
>>>> PMIC5 Gen4 ADC is similar to PMIC5 Gen3 ADC, with several changes made
>>>> for improved performance, mostly at the hardware level.
>>>>
>>>> One significant software change is that ratiometric conversion resolution
>>>> has been increased from 14 bits to 16 bits, so the maximum value of
>>>> these measurements needs to be updated for Gen4. Add a new scaling
>>>> function for thermistor channels which use this type of conversion.
>>>>
>>>> In the latest PMIC arbiter version (v8), there can be up to 4 buses
>>>> under the PMIC arbiter and 32 PMICs under each bus. In order to
>>>> support communication between ADC on the master PMIC and ADCs on any
>>>> of the other PMICs, a field of width 2 bits is added for bus index
>>>> and the bits for SID are extended from 4 to 5 bits, in the SID
>>>> register. Add support for this.
>>>>
>>>> In addition, it is possible that the master PMIC has ADC of one generation
>>>> and it needs to communicate with another PMIC with ADC of a different
>>>> generation.
>>>
>>> "Possible" sounds a bit hypothetical. Can we state this actually happens
>>> on some devices?
>>
>> Considering existing upstream platforms, this is applicable for SM8750. I'll
>> mention this in the next version of the series.
>
> What happens on that platform today? Wrong values? Should this be treated
> as a fix rather than a feature?
There is no issue on that platform right now as ADC channels needing this
support are not added yet. SM8750 board files only include pmk8550.dtsi, which
has the top-level Gen3 ADC peripheral and some ADC channels on the same PMIC.
Gen4 support would be needed only when PMIH0108 ADC channels are added.
>
>
>>>> -static int adc5_gen3_read_voltage_data(struct adc5_chip *adc, u16 *data)
>>>> +static int adc5_gen3_read_voltage_data(struct adc5_chip *adc,
>>>> + struct adc5_channel_common_prop *prop,
>>>> + u16 *data)
>>>> {
>>>> u8 rslt[2];
>>>> int ret;
>>>> @@ -99,8 +101,10 @@ static int adc5_gen3_read_voltage_data(struct adc5_chip *adc, u16 *data)
>>>> *data = get_unaligned_le16(rslt);
>>>>
>>>> if (*data == ADC5_USR_DATA_CHECK) {
>>> This feels backwards. We first check for the top bit being
>>> set then check whether we care if it is set or not. I think
>>> checking if we should look at it first makes more sense. Also
>>> shorter max line length:
>>>
>>> if (!(prop->generation == ADC5_GEN4 && prop->cal_method == ADC5_RATIOMETRIC_CAL)) {
>>> if (*data == ADC5_USR_DATA_CHECK) {
>>> ...
>>
>> I thought it was more efficient to have the check like this because
>> there may be several channels satisfying the longer if() check for Gen4
>> ratiometric channels, but the chance of *data being exactly equal to
>> the error value ADC5_USR_DATA_CHECK is lower generally. So if I reverse
>> the checks as you suggested, the outer if() check would pass for every
>> read done on a channel which is not both Gen4 and ratiometric, which
>> seems inefficient for an error check.
>>
>> What do you think, should I make any changes here?
>
> Efficiency here is going to be hard to judge without guessing how good
> the prefetchers are and to me this doesn't smell like a performance
> critical path. I'd go for clarity of code and check only
> for the invalid value after you've established it might actually be
> invalid. So change it.
Sure, I'll make this change.
Thanks,
Jishnu
>
> Thanks,
>
> Jonathan
next prev parent reply other threads:[~2026-08-07 8:07 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 18:06 [PATCH 0/7] Add support for QCOM SPMI PMIC5 Gen4 ADC Jishnu Prakash
2026-07-31 18:06 ` [PATCH 1/7] dt-bindings: iio: adc: Add support for QCOM " Jishnu Prakash
2026-08-02 23:49 ` Jonathan Cameron
2026-08-06 10:52 ` Jishnu Prakash
2026-08-06 23:14 ` Jonathan Cameron
2026-08-04 8:20 ` Krzysztof Kozlowski
2026-08-06 10:53 ` Jishnu Prakash
2026-07-31 18:06 ` [PATCH 2/7] iio: adc: qcom-spmi-adc5-gen3: " Jishnu Prakash
2026-08-03 0:14 ` Jonathan Cameron
2026-08-06 10:52 ` Jishnu Prakash
2026-08-06 23:18 ` Jonathan Cameron
2026-08-07 8:07 ` Jishnu Prakash [this message]
2026-07-31 18:06 ` [PATCH 3/7] thermal: qcom: qcom-spmi-adc-tm5-gen3: " Jishnu Prakash
2026-08-03 0:17 ` Jonathan Cameron
2026-08-06 10:52 ` Jishnu Prakash
2026-07-31 18:06 ` [PATCH 4/7] arm64: dts: qcom: Add header file for ADC5 Gen4 channel macros Jishnu Prakash
2026-07-31 18:06 ` [PATCH 5/7] arm64: dts: qcom: pmk8850: Add ADC5 Gen4 peripheral Jishnu Prakash
2026-07-31 18:06 ` [PATCH 6/7] arm64: dts: qcom: glymur: Add ADC support for Glymur CRD Jishnu Prakash
2026-07-31 18:06 ` [PATCH 7/7] arm64: dts: qcom: kaanapali: Add ADC support for Kaanapali boards Jishnu Prakash
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f2b2f590-de3e-4f10-b883-92845f59412d@oss.qualcomm.com \
--to=jishnu.prakash@oss.qualcomm.com \
--cc=amitk@kernel.org \
--cc=andersson@kernel.org \
--cc=andy@kernel.org \
--cc=anjelique.melendez@oss.qualcomm.com \
--cc=conor+dt@kernel.org \
--cc=daniel.lezcano@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=kamal.wadhwa@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=manaf.pallikunhi@oss.qualcomm.com \
--cc=nuno.sa@analog.com \
--cc=priyansh.jain@oss.qualcomm.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rui.zhang@intel.com \
--cc=thara.gopinath@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox