From: "Denis, Tomislav AVL DiTEST" <Tomislav.Denis@avl.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>
Subject: RE: [PATCH 2/2] bindings: iio: adc: Add documentation for ADS131E0x ADC driver
Date: Fri, 1 Jan 2021 22:41:35 +0000 [thread overview]
Message-ID: <60ea32f43ac4485db97684ad9a94cfbf@avl.com> (raw)
In-Reply-To: <20201128123417.7259ef13@archlinux>
Hi Jonathan,
Thanks for great review and hints that you gave me.
A few comments inline.
BR,
Tomislav
> -----Original Message-----
> From: Jonathan Cameron <jic23@kernel.org>
> Sent: 28 November 2020 13:34
> To: Denis, Tomislav AVL DiTEST <Tomislav.Denis@avl.com>
> Cc: linux-iio@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH 2/2] bindings: iio: adc: Add documentation for ADS131E0x
> ADC driver
>
> On Fri, 27 Nov 2020 20:42:40 +0100
> <tomislav.denis@avl.com> wrote:
>
> > From: Tomislav Denis <tomislav.denis@avl.com>
> >
> > Add a device tree binding documentation for Texas Instruments
> > ADS131E0x ADC family driver.
> >
> > Signed-off-by: Tomislav Denis <tomislav.denis@avl.com>
> Hi Tomislav,
>
> A few comments inline.
>
> Thanks,
>
> Jonathan
>
> > ---
> > .../devicetree/bindings/iio/adc/ti,ads131e08.yaml | 145
> +++++++++++++++++++++
> > MAINTAINERS | 1 +
> > 2 files changed, 146 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
> >
> > diff --git
> > a/Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
> > b/Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
> > new file mode 100644
> > index 0000000..92da193
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
> > @@ -0,0 +1,145 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id:
> > +https://urldefense.com/v3/__http://devicetree.org/schemas/iio/adc/ti,
> > +ads131e08.yaml*__;Iw!!Oq50-tQ!_S4huPtQ7bwYwG-
> J3eOtmYscvX_TjlRfR7tjpa6
> > +d2dqUQ67RUNI9X1VKpsiphO1jsQ$
> > +$schema:
> > +https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.y
> > +aml*__;Iw!!Oq50-tQ!_S4huPtQ7bwYwG-
> J3eOtmYscvX_TjlRfR7tjpa6d2dqUQ67RUN
> > +I9X1VKpsi1XPH8nA$
> > +
> > +title: Texas Instruments ADS131E0x 4-, 6-, and 8-Channel ADCs
>
> Not currently supporting 6 channel variants?
It should be working without problem! But since I don't have HW to test I've left it out.
>
> > +
> > +maintainers:
> > + - Tomislav Denis <tomislav.denis@avl.com>
> > +
> > +description: |
> > + The ADS131E0x are a family of multichannel, simultaneous sampling,
> > + 24-bit, delta-sigma, analog-to-digital converters (ADCs) with a
> > + built-in programmable gain amplifier (PGA), internal reference
> > + and an onboard oscillator.
> > + The communication with ADC chip is via the SPI bus (mode 1).
> > +
> > +
> > + https://urldefense.com/v3/__https://www.ti.com/lit/ds/symlink/ads131
> > + e08.pdf__;!!Oq50-tQ!_S4huPtQ7bwYwG-
> J3eOtmYscvX_TjlRfR7tjpa6d2dqUQ67R
> > + UNI9X1VKpsjgTd5HaA$
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - ti,ads131e04
> > + - ti,ads131e08
> > +
> > + reg:
> > + description: |
> > + SPI chip select number
>
> That is entirely standard so no real need to put a description of reg for an spi
> device.
>
> > + maxItems: 1
> > +
> > + spi-cpha: true
> > +
> > + clocks:
> > + description: |
> > + Device tree identifier to the clock source (2.048 MHz)
> > + Note: clock source is selected using CLKSEL pin
> > + maxItems: 1
> > +
> > + clock-names:
> > + items:
> > + - const: adc-clk
> > +
> > + interrupts:
> > + description: |
> > + IRQ line for the ADC data ready
> > + maxItems: 1
> > +
> > + vref-supply:
> > + description: |
> > + Optional external voltage reference. Has to be supplied, if
> > + ti,vref-sel equals 2
> > +
> > + ti,vref-sel:
> > + description: |
> > + Select the voltage reference source
> > + Valid values are:
> > + 0: Internal reference 2.4V
> > + 1: Internal reference 4V
> > + 2: External reference source (vref-supply is required)
>
> With optional external references we normally just use their presense to indicate
> that they should be used.
>
> You'll still need a parameter to pick the internal reference though.
>
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [0, 1, 2]
> > + default: 0
> > +
> > + ti,datarate:
> > + description: |
> > + ADC data rate in kSPS
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [1, 2, 4, 8, 16, 32, 64]
> > + default: 1
>
> Why is this a devicetree element rather than runtime controllable?
Number of data bytes per channel depends on data rate. To be able to change data rate
dynamically would require to change scan_type.realbits also dynamically! I am not sure
if that make sense and also if it is possible to do it?
>
> > +
> > + ti,gain:
> > + description: |
> > + The gain value for the PGA function
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [1, 2, 4, 8, 12]
> > + default: 1
>
> Isn't this per channel? Also this explanation should mention why it is a board
> related characteristic rather than a runtime tuneable (I'm fine with having it here,
> but good to add a bit of info on that to the description).
>
> > +
> > + ti,adc-channels:
> > + description: |
> > + List of single-ended channels muxed for this ADC
> > + - 4 channels, numbered from 0 to 3 for ti,ads131e04
> > + - 8 channels, numbered from 0 to 7 for ti,ads131e08
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
>
> We've fairly recently introduced a generic adc channel binding that I'd prefer is
> used in drivers going forwards.
>
> See Documentation/device-tree/bindings/iio/adc.txt (or yaml if I've applied that
> patch before you get to this).
>
> That adds a subnode per channel and gives us an easy way to then provide per
> channel parameters. It's heavier weight than what you have here, but much
> more flexible.
>
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - spi-cpha
> > + - clocks
> > + - clock-names
> > + - interrupts
> > + - ti,adc-channels
> > +
> > +allOf:
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: ti,ads131e04
> > +
> > + - then:
> > + properties:
> > + ti,adc-channels:
> > + minItems: 1
> > + maxItems: 4
> > + items:
> > + minimum: 0
> > + maximum: 3
> > +
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: ti,ads131e08
> > +
> > + - then:
> > + properties:
> > + ti,adc-channels:
> > + minItems: 1
> > + maxItems: 8
> > + items:
> > + minimum: 0
> > + maximum: 7
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > + spidev@0 {
> > + compatible = "ti,ads131e08";
> > + reg = <0>;
> > + spi-max-frequency = <1000000>;
> > + spi-cpha;
> > + clocks = <&clk2048k>;
> > + clock-names = "adc-clk";
> > + interrupt-parent = <&gpio5>;
> > + interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
> > + vref-supply = <&vref_reg>;
> > + ti,vref-sel = <2>;
> > + ti,datarate = <1>;
> > + ti,gain = <1>;
> > + ti,adc-channels = <0 1 2 3 4 5 6 7>;
> > + };
> > +...
> > diff --git a/MAINTAINERS b/MAINTAINERS index 28bc5f9..0c351c7 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -17224,6 +17224,7 @@ TI ADS131E0X ADC SERIES DRIVER
> > M: Tomislav Denis <tomislav.denis@avl.com>
> > L: linux-iio@vger.kernel.org
> > S: Maintained
> > +F: Documentation/devicetree/bindings/iio/adc/ti,ads131e08.yaml
> > F: drivers/iio/adc/ti-ads131e08.c
> >
> > TI AM437X VPFE DRIVER
next prev parent reply other threads:[~2021-01-01 22:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-27 19:42 [PATCH 0/2] Add support for ADS131E0x ADC family tomislav.denis
2020-11-27 19:42 ` [PATCH 1/2] iio: adc: Add driver for Texas Instruments " tomislav.denis
2020-11-28 13:02 ` Jonathan Cameron
2020-11-28 23:58 ` kernel test robot
2020-11-28 23:58 ` kernel test robot
2020-11-27 19:42 ` [PATCH 2/2] bindings: iio: adc: Add documentation for ADS131E0x ADC driver tomislav.denis
2020-11-28 12:34 ` Jonathan Cameron
2021-01-01 22:41 ` Denis, Tomislav AVL DiTEST [this message]
2021-01-02 14:15 ` Jonathan Cameron
2020-11-30 17:36 ` Rob Herring
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=60ea32f43ac4485db97684ad9a94cfbf@avl.com \
--to=tomislav.denis@avl.com \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.