Re: [PATCH 2/2] dt-bindings: iio: adc: nxp,imx93-adc.yaml: Add calibration properties

From: Jonathan Cameron
Date: Mon Mar 25 2024 - 12:34:56 EST


On Mon, 25 Mar 2024 10:58:51 +0100
Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote:

> On 22/03/2024 10:58, Andrej Picej wrote:
> > On 22. 03. 24 09:14, Krzysztof Kozlowski wrote:
> >> On 22/03/2024 08:39, Andrej Picej wrote:
> >>> On 20. 03. 24 13:15, Krzysztof Kozlowski wrote:
> >>>> On 20/03/2024 13:05, Andrej Picej wrote:
> >>>>> Hi Krzysztof,
> >>>>>
> >>>>> On 20. 03. 24 11:26, Krzysztof Kozlowski wrote:
> >>>>>> On 20/03/2024 11:04, Andrej Picej wrote:
> >>>>>>> Document calibration properties and how to set them.
> >>>>>>
> >>>>>> Bindings are before users.
> >>>>>
> >>>>> will change patch order when I send a v2.
> >>>>>
> >>>>>>
> >>>>>> Please use subject prefixes matching the subsystem. You can get them for
> >>>>>> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
> >>>>>> your patch is touching.
> >>>>>> There is no file extension in prefixes.
> >>>>>
> >>>>> So: dt-bindings: iio/adc: nxp,imx93-adc: Add calibration properties?
> >>>>
> >>>> Did you run the command I proposed? I don't see much of "/", but except
> >>>> that looks good.
> >>>
> >>> Ok noted.
> >>>
> >>>>
> >>>>>
> >>>>>>
> >>>>>>>
> >>>>>>> Signed-off-by: Andrej Picej <andrej.picej@xxxxxxxxx>
> >>>>>>> ---
> >>>>>>> .../bindings/iio/adc/nxp,imx93-adc.yaml | 15 +++++++++++++++
> >>>>>>> 1 file changed, 15 insertions(+)
> >>>>>>>
> >>>>>>> diff --git a/Documentation/devicetree/bindings/iio/adc/nxp,imx93-adc.yaml b/Documentation/devicetree/bindings/iio/adc/nxp,imx93-adc.yaml
> >>>>>>> index dacc526dc695..64958be62a6a 100644
> >>>>>>> --- a/Documentation/devicetree/bindings/iio/adc/nxp,imx93-adc.yaml
> >>>>>>> +++ b/Documentation/devicetree/bindings/iio/adc/nxp,imx93-adc.yaml
> >>>>>>> @@ -46,6 +46,21 @@ properties:
> >>>>>>> "#io-channel-cells":
> >>>>>>> const: 1
> >>>>>>>
> >>>>>>> + nxp,calib-avg-en:
> >>>>>>> + description:
> >>>>>>> + Enable or disable averaging of calibration time.
> >>>>>>> + enum: [ 0, 1 ]
> >>>>>>> +
> >>>>>>> + nxp,calib-nr-samples:
> >>>>>>> + description:
> >>>>>>> + Selects the number of averaging samples to be used during calibration.
> >>>>>>> + enum: [ 16, 32, 128, 512 ]
> >>>>>>> +
> >>>>>>> + nxp,calib-t-samples:
> >>>>>>> + description:
> >>>>>>> + Specifies the sample time of calibration conversions.
> >>>>>>> + enum: [ 8, 16, 22, 32 ]
> >>>>>>
> >>>>>> No, use existing, generic properties. Open other bindings for this.
> >>>>>
> >>>>> You mean I should use generic properties for the ADC calibration
> >>>>> settings? Is there already something in place? Because as I understand
> >>>>> it, these calib-* values only effect the calibration process of the ADC.
> >>>>
> >>>> Please take a look at other devices and dtschema. We already have some
> >>>> properties for this... but maybe they cannot be used?
> >>>>
> >>>
> >>> I did look into other ADC devices, grep across iio/adc, adc bindings
> >>> folders and couldn't find anything closely related to what we are
> >>> looking for. Could you please point me to the properties that you think
> >>> should be used for this?
> >>
> >> Indeed, there are few device specific like qcom,avg-samples. We have
> >> though oversampling-ratio, settling-time-us and min-sample-time (which
> >> is not that good because does not use unit suffix).
> >
> > Ok, these are examples but I think I should not use them, since these
> > are i.MX93 ADC specific settings, which are used for configuration of
>
>
> No vendor prefix, so they rather should be generic, not imx93
> specific... But this the binding for imx93, so I don't understand your
> statement.

Based on my current understanding what we have here is not remotely
generic, so standard properties don't make sense (though naming the
nxp ones in a consistent fashion with other bindings is useful)

I'm not entirely convinced there is a strong argument to support them at all
though. Still thinking / gathering info on that.

>
> > calibration process, and are not related to the standard conversion
> > process during runtime. Calibration process is the first step that
> > should be done after every power-on reset.
> >
> >>
> >> Then follow up questions:
> >> - nxp,calib-avg-en: Why is it a board-level decision? I would assume
> >> this depends on user choice and what kind of input you have (which could
> >> be board dependent or could be runtime decision).
> >
> > Not really sure I get your question, so please elaborate if I missed the
> > point.
> > This is a user choice, to enable or disable the averaging function in
> > calibration, but this is a board-level decision, probably relates on
> > external ADC regulators and input connections. The same options are used
> > for every ADC channel and this can not be a runtime decision, since
> > calibration is done before the ADC is even registered.
>
> You now mix how Linux driver behaves with hardware. Why you cannot
> recalibrate later, e.g. when something else is being connected to the
> exposed pins?

Generally we don't make strong efforts to support dev board use cases where
the components wired tend to change. So normally this isn't too much of
a concern. Previously, we've tried to support this stuff and it always
ends up as a mess because of the crazy range of things that can be wired.

Jonathan

>
> Best regards,
> Krzysztof
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel