Re: [PATCH 06/11] iio: adc: Add QCOM PMIC5 Gen3 ADC bindings

From: Krzysztof Kozlowski
Date: Mon Oct 23 2023 - 02:37:06 EST


On 23/10/2023 08:14, Jishnu Prakash wrote:
> Hi Krzysztof,
>
> On 7/9/2023 10:53 PM, Krzysztof Kozlowski wrote:
>> On 08/07/2023 09:28, Jishnu Prakash wrote:
>>> For the PMIC5-Gen3 type PMICs, ADC peripheral is present in HW for the
>>> following PMICs: PMK8550, PM8550, PM8550B and PM8550VX PMICs.
>>> It is similar to PMIC5-Gen2, with SW communication to ADCs on all PMICs
>>> going through PBS firmware through a single register interface. This
>>> interface is implemented on an SDAM peripheral on the master PMIC PMK8550
>>> rather than a dedicated ADC peripheral.
>>>
>>> Signed-off-by: Jishnu Prakash <quic_jprakash@xxxxxxxxxxx>
>>> ---
>>> properties:
>>> compatible:
>>> @@ -27,10 +27,11 @@ properties:
>>> - qcom,spmi-adc5
>>> - qcom,spmi-adc-rev2
>>> - qcom,spmi-adc5-gen2
>>> + - qcom,spmi-adc5-gen3
>>
>> This could be ordered...
>
>
> Yes, will do that in the next patchset.
>
>
>>>
>>> reg:
>>> description: VADC base address in the SPMI PMIC register map
>>> - maxItems: 1
>>> + minItems: 1
>> Why? This does not make any sense. With previous patches it looks like
>> random set of changes.
>
>
> The idea here is to convey that reg can have multiple values for ADC5
> Gen3 as there can be more than one peripheral used for ADC, so there can
> be multiple base addresses. I'll try to make this more clear in the next
> patchset.

You cannot remove constraints from an entry.

>
>
>>
>>
>>>
>>> '#address-cells':
>>> const: 1
>>> @@ -38,6 +39,12 @@ properties:
>>> '#size-cells':
>>> const: 0
>>>
>>>
>>> + qcom,adc-tm-type:
>>> + description: |
>>> + Indicates if ADC_TM monitoring is done on this channel.
>> Description does not match property name.
>
>
> You mean it sounds more like an enum which can take several values
> rather than just a boolean? I can update it to "qcom,adc-tm" if that
> looks better.

The property name suggests this is type of monitoring. Property
description says this will enable ADC_TM monitoring. These two do not match.

Except that I wonder now whether this is a property of hardware at
all... What is this monitoring? By the driver?

...

>>> then:
>>> patternProperties:
>>> @@ -299,7 +315,7 @@ examples:
>>> label = "xo_therm";
>>> };
>>>
>>> - channel@47 {
>>> + channel@147 {
>> Why?
>
>
> It would be needed if this channel number was supposed to be the virtual
> channel number made by combining PMIC SID and actual channel
> number....but I could drop it for now and do it in a separate fix as
> Jonathan suggested.
>
>
>>
>>> reg = <PM8350_ADC5_GEN2_AMUX_THM4_100K_PU(1)>;
>>> qcom,ratiometric;
>>> qcom,hw-settle-time = <200>;
>>> @@ -307,3 +323,80 @@ examples:
>>> };
>>> };
>>> };
>>> +
>>> + - |
>>> + #include <dt-bindings/iio/qcom,spmi-adc5-gen3-pmk8550.h>
>>> + #include <dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550.h>
>>> + #include <dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550b.h>
>>> + #include <dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550vx.h>
>>> +
>>> + pmic {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> +
>>> + /* VADC node */
>>> + pmk8550_vadc: vadc@9000 {
>>> + compatible = "qcom,spmi-adc5-gen3";
>> Don't add new examples which differ only in compatible.
>
>
> This example does have differences unique to ADC5 Gen3 such as use of
> "#thermal-sensor-cells" and "qcom,adc-tm-type" properties....to make it
> clearer, I'll delete some of the excess nodes which don't highlight
> these differences.
>
>
>>
>>
>>> diff --git a/include/dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550.h b/include/dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550.h
>>> new file mode 100644
>>> index 000000000000..74e6e2f6f9ed
>>> --- /dev/null
>>> +++ b/include/dt-bindings/iio/qcom,spmi-adc5-gen3-pm8550.h
>>> @@ -0,0 +1,48 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> Dual license.
>
>
> I think we do have an internal rule by which we do have to add these two
> licenses....I'll check again and update them if required.

Just to be clear: your internal rules are your internal affair. We
expect here dual license.

Best regards,
Krzysztof