diff mbox series

dt-bindings: iio: adc: ti,ads1015: fix datarate max value and meaning

Message ID 20230621160857.3400747-1-m.felsch@pengutronix.de
State Not Applicable, archived
Headers show
Series dt-bindings: iio: adc: ti,ads1015: fix datarate max value and meaning | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dtbs-check warning build log
robh/dt-meta-schema success

Commit Message

Marco Felsch June 21, 2023, 4:08 p.m. UTC
Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
allowed for all devices but only for the ADS1115 devices a value of 7
does make a difference.

While on it fix the description of the datarate for ADS1115 devices as
well.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
---
 .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

Comments

Conor Dooley June 21, 2023, 8:41 p.m. UTC | #1
On Wed, Jun 21, 2023 at 06:08:57PM +0200, Marco Felsch wrote:
> Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> allowed for all devices but only for the ADS1115 devices a value of 7
> does make a difference.
> 
> While on it fix the description of the datarate for ADS1115 devices as
> well.
> 
> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> ---
>  .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> index 2127d639a7683..e004659099c19 100644
> --- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> @@ -78,9 +78,9 @@ patternProperties:
>        ti,datarate:
>          $ref: /schemas/types.yaml#/definitions/uint32
>          minimum: 0
> -        maximum: 6
> +        maximum: 7
>          description: |
> -          Data acquisition rate in samples per second
> +          Data acquisition rate in samples per second for ADS1015, TLA2024
>            0: 128
>            1: 250
>            2: 490
> @@ -88,6 +88,17 @@ patternProperties:
>            4: 1600 (default)
>            5: 2400
>            6: 3300
> +          7: 3300
> +
> +          Data acquisition rate in samples per second for ADS1115
> +          0: 8
> +          1: 16
> +          2: 32
> +          3: 64
> +          4: 128 (default)
> +          5: 250
> +          6: 475
> +          7: 860

I'll leave this one to Rob or Krzysztof to ack/review, but this does
seem like as good an opportunity as any to migrate to a property that
allows you to put the actual data acquisition rate in & not have to add
new key-value mappings to the binding to support devices with differing
schemes.

>  
>      required:
>        - reg
> -- 
> 2.39.2
>
Rob Herring (Arm) June 22, 2023, 2:04 a.m. UTC | #2
On Wed, 21 Jun 2023 18:08:57 +0200, Marco Felsch wrote:
> Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> allowed for all devices but only for the ADS1115 devices a value of 7
> does make a difference.
> 
> While on it fix the description of the datarate for ADS1115 devices as
> well.
> 
> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> ---
>  .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>
Jonathan Cameron July 2, 2023, 9:41 a.m. UTC | #3
On Wed, 21 Jun 2023 21:41:05 +0100
Conor Dooley <conor@kernel.org> wrote:

> On Wed, Jun 21, 2023 at 06:08:57PM +0200, Marco Felsch wrote:
> > Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> > allowed for all devices but only for the ADS1115 devices a value of 7
> > does make a difference.
> > 
> > While on it fix the description of the datarate for ADS1115 devices as
> > well.
> > 
> > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > ---
> >  .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
> >  1 file changed, 13 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > index 2127d639a7683..e004659099c19 100644
> > --- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > +++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > @@ -78,9 +78,9 @@ patternProperties:
> >        ti,datarate:
> >          $ref: /schemas/types.yaml#/definitions/uint32
> >          minimum: 0
> > -        maximum: 6
> > +        maximum: 7
> >          description: |
> > -          Data acquisition rate in samples per second
> > +          Data acquisition rate in samples per second for ADS1015, TLA2024
> >            0: 128
> >            1: 250
> >            2: 490
> > @@ -88,6 +88,17 @@ patternProperties:
> >            4: 1600 (default)
> >            5: 2400
> >            6: 3300
> > +          7: 3300
> > +
> > +          Data acquisition rate in samples per second for ADS1115
> > +          0: 8
> > +          1: 16
> > +          2: 32
> > +          3: 64
> > +          4: 128 (default)
> > +          5: 250
> > +          6: 475
> > +          7: 860  
> 
> I'll leave this one to Rob or Krzysztof to ack/review, but this does
> seem like as good an opportunity as any to migrate to a property that
> allows you to put the actual data acquisition rate in & not have to add
> new key-value mappings to the binding to support devices with differing
> schemes.

I agree a value would have been better, but now we are where we are,
I'm not sure it's worth the churn of changing it - particularly as the
driver will need to support the old binding for every anyway.

Jonathan

> 
> >  
> >      required:
> >        - reg
> > -- 
> > 2.39.2
> >   
>
Marco Felsch July 3, 2023, 6:46 a.m. UTC | #4
On 23-07-02, Jonathan Cameron wrote:
> On Wed, 21 Jun 2023 21:41:05 +0100
> Conor Dooley <conor@kernel.org> wrote:
> 
> > On Wed, Jun 21, 2023 at 06:08:57PM +0200, Marco Felsch wrote:
> > > Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> > > allowed for all devices but only for the ADS1115 devices a value of 7
> > > does make a difference.
> > > 
> > > While on it fix the description of the datarate for ADS1115 devices as
> > > well.
> > > 
> > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > ---
> > >  .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
> > >  1 file changed, 13 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > index 2127d639a7683..e004659099c19 100644
> > > --- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > +++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > @@ -78,9 +78,9 @@ patternProperties:
> > >        ti,datarate:
> > >          $ref: /schemas/types.yaml#/definitions/uint32
> > >          minimum: 0
> > > -        maximum: 6
> > > +        maximum: 7
> > >          description: |
> > > -          Data acquisition rate in samples per second
> > > +          Data acquisition rate in samples per second for ADS1015, TLA2024
> > >            0: 128
> > >            1: 250
> > >            2: 490
> > > @@ -88,6 +88,17 @@ patternProperties:
> > >            4: 1600 (default)
> > >            5: 2400
> > >            6: 3300
> > > +          7: 3300
> > > +
> > > +          Data acquisition rate in samples per second for ADS1115
> > > +          0: 8
> > > +          1: 16
> > > +          2: 32
> > > +          3: 64
> > > +          4: 128 (default)
> > > +          5: 250
> > > +          6: 475
> > > +          7: 860  
> > 
> > I'll leave this one to Rob or Krzysztof to ack/review, but this does
> > seem like as good an opportunity as any to migrate to a property that
> > allows you to put the actual data acquisition rate in & not have to add
> > new key-value mappings to the binding to support devices with differing
> > schemes.
> 
> I agree a value would have been better, but now we are where we are,
> I'm not sure it's worth the churn of changing it - particularly as the
> driver will need to support the old binding for every anyway.

Yep, this would be an API change :/

Regards,
  Marco
Conor Dooley July 3, 2023, 4:14 p.m. UTC | #5
On Mon, Jul 03, 2023 at 08:46:26AM +0200, Marco Felsch wrote:
> On 23-07-02, Jonathan Cameron wrote:
> > On Wed, 21 Jun 2023 21:41:05 +0100
> > Conor Dooley <conor@kernel.org> wrote:
> > 
> > > On Wed, Jun 21, 2023 at 06:08:57PM +0200, Marco Felsch wrote:
> > > > Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> > > > allowed for all devices but only for the ADS1115 devices a value of 7
> > > > does make a difference.
> > > > 
> > > > While on it fix the description of the datarate for ADS1115 devices as
> > > > well.
> > > > 
> > > > Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> > > > ---
> > > >  .../devicetree/bindings/iio/adc/ti,ads1015.yaml   | 15 +++++++++++++--
> > > >  1 file changed, 13 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > > index 2127d639a7683..e004659099c19 100644
> > > > --- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > > +++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
> > > > @@ -78,9 +78,9 @@ patternProperties:
> > > >        ti,datarate:
> > > >          $ref: /schemas/types.yaml#/definitions/uint32
> > > >          minimum: 0
> > > > -        maximum: 6
> > > > +        maximum: 7
> > > >          description: |
> > > > -          Data acquisition rate in samples per second
> > > > +          Data acquisition rate in samples per second for ADS1015, TLA2024
> > > >            0: 128
> > > >            1: 250
> > > >            2: 490
> > > > @@ -88,6 +88,17 @@ patternProperties:
> > > >            4: 1600 (default)
> > > >            5: 2400
> > > >            6: 3300
> > > > +          7: 3300
> > > > +
> > > > +          Data acquisition rate in samples per second for ADS1115
> > > > +          0: 8
> > > > +          1: 16
> > > > +          2: 32
> > > > +          3: 64
> > > > +          4: 128 (default)
> > > > +          5: 250
> > > > +          6: 475
> > > > +          7: 860  
> > > 
> > > I'll leave this one to Rob or Krzysztof to ack/review, but this does
> > > seem like as good an opportunity as any to migrate to a property that
> > > allows you to put the actual data acquisition rate in & not have to add
> > > new key-value mappings to the binding to support devices with differing
> > > schemes.
> > 
> > I agree a value would have been better, but now we are where we are,
> > I'm not sure it's worth the churn of changing it - particularly as the
> > driver will need to support the old binding for every anyway.
> 
> Yep, this would be an API change :/

Of course, but so what you have in these patches anyway. Change being
the operative word, not break ;)

Either way, I passed the buck to Rob and Krzysztof on this one anyway.
Krzysztof Kozlowski July 3, 2023, 4:18 p.m. UTC | #6
On 21/06/2023 18:08, Marco Felsch wrote:
> Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> allowed for all devices but only for the ADS1115 devices a value of 7
> does make a difference.
> 
> While on it fix the description of the datarate for ADS1115 devices as
> well.
> 


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
Krzysztof Kozlowski July 3, 2023, 4:21 p.m. UTC | #7
On 03/07/2023 18:14, Conor Dooley wrote:
>>>>> @@ -88,6 +88,17 @@ patternProperties:
>>>>>            4: 1600 (default)
>>>>>            5: 2400
>>>>>            6: 3300
>>>>> +          7: 3300
>>>>> +
>>>>> +          Data acquisition rate in samples per second for ADS1115
>>>>> +          0: 8
>>>>> +          1: 16
>>>>> +          2: 32
>>>>> +          3: 64
>>>>> +          4: 128 (default)
>>>>> +          5: 250
>>>>> +          6: 475
>>>>> +          7: 860  
>>>>
>>>> I'll leave this one to Rob or Krzysztof to ack/review, but this does
>>>> seem like as good an opportunity as any to migrate to a property that
>>>> allows you to put the actual data acquisition rate in & not have to add
>>>> new key-value mappings to the binding to support devices with differing
>>>> schemes.
>>>
>>> I agree a value would have been better, but now we are where we are,
>>> I'm not sure it's worth the churn of changing it - particularly as the
>>> driver will need to support the old binding for every anyway.
>>
>> Yep, this would be an API change :/
> 
> Of course, but so what you have in these patches anyway. Change being
> the operative word, not break ;)
> 
> Either way, I passed the buck to Rob and Krzysztof on this one anyway.

It's fine. Device-specific, so not common, properties can be expressing
programming model (register value).
https://lore.kernel.org/linux-devicetree/20230412133921.GA2017891-robh@kernel.org/

Such properties are usually less readable in DTS, so they have clear
disadvantage. However using here common units would require mapping in
the driver which is additional churn.

From every rule there are also exceptions. For example consider common
regulator values or number of samples where hwmon core is ready to parse
it properly:
https://lore.kernel.org/linux-devicetree/82d76824-ef5b-23f9-149e-2c5d9f88e94a@kernel.org/T/#mb2808172369a9960890a2de538464ca68dc86455

That's not the case here, so it's fine.

Best regards,
Krzysztof
Jonathan Cameron July 8, 2023, 2:24 p.m. UTC | #8
On Mon, 3 Jul 2023 18:18:28 +0200
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote:

> On 21/06/2023 18:08, Marco Felsch wrote:
> > Datarate (dr) is a 3-bit wide register field. Values from 0 to 7 are
> > allowed for all devices but only for the ADS1115 devices a value of 7
> > does make a difference.
> > 
> > While on it fix the description of the datarate for ADS1115 devices as
> > well.
> >   
> 
> 
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Applied,

Thanks,

Jonathan

> 
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
index 2127d639a7683..e004659099c19 100644
--- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
@@ -78,9 +78,9 @@  patternProperties:
       ti,datarate:
         $ref: /schemas/types.yaml#/definitions/uint32
         minimum: 0
-        maximum: 6
+        maximum: 7
         description: |
-          Data acquisition rate in samples per second
+          Data acquisition rate in samples per second for ADS1015, TLA2024
           0: 128
           1: 250
           2: 490
@@ -88,6 +88,17 @@  patternProperties:
           4: 1600 (default)
           5: 2400
           6: 3300
+          7: 3300
+
+          Data acquisition rate in samples per second for ADS1115
+          0: 8
+          1: 16
+          2: 32
+          3: 64
+          4: 128 (default)
+          5: 250
+          6: 475
+          7: 860
 
     required:
       - reg