diff mbox series

[2/2] dt-bindings: iio: adc: Add docs for AD7606 ADC

Message ID 1539853956-26644-1-git-send-email-stefan.popa@analog.com (mailing list archive)
State New, archived
Headers show
Series [1/2] staging: iio: ad7606: Move out of staging | expand

Commit Message

Stefan Popa Oct. 18, 2018, 9:12 a.m. UTC
Document support for AD7606 Analog to Digital Converter.

Signed-off-by: Stefan Popa <stefan.popa@analog.com>
---
 .../devicetree/bindings/iio/adc/adi,ad7606.txt     | 51 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 2 files changed, 52 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt

Comments

Alexandru Ardelean Oct. 18, 2018, 10:35 a.m. UTC | #1
On Thu, 2018-10-18 at 12:12 +0300, Stefan Popa wrote:
> Document support for AD7606 Analog to Digital Converter.
> 

Commments inline

> Signed-off-by: Stefan Popa <stefan.popa@analog.com>
> ---
>  .../devicetree/bindings/iio/adc/adi,ad7606.txt     | 51
> ++++++++++++++++++++++
>  MAINTAINERS                                        |  1 +
>  2 files changed, 52 insertions(+)
>  create mode 100644
> Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> new file mode 100644
> index 0000000..dede581
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> @@ -0,0 +1,51 @@
> +Analog Devices AD7606 Simultaneous Sampling ADC
> +
> +Required properties for the AD7606:
> +
> + - compatible: Must be one of "adi,ad7605-4", "adi,ad7606-8",
> "adi,ad7606-6" or
> + 	       "adi,ad7606-4".
> + - reg: SPI chip select number for the device
> + - spi-max-frequency: Max SPI frequency to use
> + 	see: Documentation/devicetree/bindings/spi/spi-bus.txt
> + - spi-cpha: See Documentation/devicetree/bindings/spi/spi-bus.txt

I don't know what the typical preference is (with respect to SPI docs), but
I'd just reference the "Documentation/devicetree/bindings/spi/spi-bus.txt
"doc here.

> + - avcc-supply: phandle to the Avcc power supply
> + - interrupts: IRQ line for the ADC
> + 	see: Documentation/devicetree/bindings/interrupt-
> controller/interrupts.txt
> + - conversion-start-gpio: must be the device tree identifier of the
> CONVST pin.
> +			  This logic input is used to initiate conversions
> on
> +			  the analog input channels.
> +
> +Optional properties:
> +
> + - reset-gpio: must be the device tree identifier of the RESET pin. If
> specified,
> + 	       it will be asserted during driver probe.
> + - first-data-gpio: must be the device tree identifier of the FRSTDATA
> pin.
> + 		    The FRSTDATA output indicates when the first channel,
> V1, is
> +		    being read back on either the parallel, byte or serial
> interface.
> +- standby-gpio: must be the device tree identifier of the STBY pin. This
> pin is used
> +		to place the AD7606 into one of two power-down modes,
> Standby mode or
> +		Shutdown mode.
> +- range-gpio: must be the device tree identifier of the RANGE pin. The
> polarity on
> +	      this pin determines the input range of the analog input
> channels. If
> +	      this pin is tied to a logic high, the analog input range is
> ±10V for
> +	      allchannels. If this pin is tied to a logic low, the analog
> input range
> +	      is ±5V for all channels.
> +

nitpick: `range-gpio` && `standby-gpio` entries are indented differently
than `reset-gpio` && `first-data-gpio`

> +Example:
> +
> +	adc@0 {
> +		compatible = "adi,ad7606-8";
> +		reg = <0>;
> +		spi-max-frequency = <1000000>;
> +		spi-cpol;
> +
> +		avcc-supply = <&adc_vref>;
> +
> +		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-parent = <&gpio>;
> +
> +		conversion-start-gpio = <&gpio 17 0>;
> +		reset-gpio = <&gpio 27 0>;
> +		first-data-gpio = <&gpio 22 0>;
> +		standby-gpio = <&gpio 24 0>;
> +	};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 843545d..6d63db4 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -845,6 +845,7 @@ L:	linux-iio@vger.kernel.org
>  W:	http://ez.analog.com/community/linux-device-drivers
>  S:	Supported
>  F:	drivers/iio/adc/ad7606.c
> +F:	Documentation/devicetree/bindings/iio/adc/ad7606.txt
>  
>  ANALOG DEVICES INC AD9389B DRIVER
>  M:	Hans Verkuil <hans.verkuil@cisco.com>
Rob Herring (Arm) Oct. 25, 2018, 6:43 p.m. UTC | #2
On Thu, Oct 18, 2018 at 12:12:36PM +0300, Stefan Popa wrote:
> Document support for AD7606 Analog to Digital Converter.
> 
> Signed-off-by: Stefan Popa <stefan.popa@analog.com>
> ---
>  .../devicetree/bindings/iio/adc/adi,ad7606.txt     | 51 ++++++++++++++++++++++
>  MAINTAINERS                                        |  1 +
>  2 files changed, 52 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> new file mode 100644
> index 0000000..dede581
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> @@ -0,0 +1,51 @@
> +Analog Devices AD7606 Simultaneous Sampling ADC
> +
> +Required properties for the AD7606:
> +
> + - compatible: Must be one of "adi,ad7605-4", "adi,ad7606-8", "adi,ad7606-6" or
> + 	       "adi,ad7606-4".

Format as one per line please.

> + - reg: SPI chip select number for the device
> + - spi-max-frequency: Max SPI frequency to use
> + 	see: Documentation/devicetree/bindings/spi/spi-bus.txt
> + - spi-cpha: See Documentation/devicetree/bindings/spi/spi-bus.txt
> + - avcc-supply: phandle to the Avcc power supply
> + - interrupts: IRQ line for the ADC
> + 	see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> + - conversion-start-gpio: must be the device tree identifier of the CONVST pin.
> +			  This logic input is used to initiate conversions on
> +			  the analog input channels.

Doesn't IIO have trigger GPIOs?

> +
> +Optional properties:
> +
> + - reset-gpio: must be the device tree identifier of the RESET pin. If specified,
> + 	       it will be asserted during driver probe.

-gpios is the preferred form: reset-gpios

And state the active state

> + - first-data-gpio: must be the device tree identifier of the FRSTDATA pin.
> + 		    The FRSTDATA output indicates when the first channel, V1, is
> +		    being read back on either the parallel, byte or serial interface.
> +- standby-gpio: must be the device tree identifier of the STBY pin. This pin is used
> +		to place the AD7606 into one of two power-down modes, Standby mode or
> +		Shutdown mode.
> +- range-gpio: must be the device tree identifier of the RANGE pin. The polarity on
> +	      this pin determines the input range of the analog input channels. If
> +	      this pin is tied to a logic high, the analog input range is ±10V for
> +	      allchannels. If this pin is tied to a logic low, the analog input range

s/allchannels/all channels/

> +	      is ±5V for all channels.

conversion-start-gpio, first-data-gpio, and range-gpio should all have 
vendor prefix (in addition to -gpios).

> +
> +Example:
> +
> +	adc@0 {
> +		compatible = "adi,ad7606-8";
> +		reg = <0>;
> +		spi-max-frequency = <1000000>;
> +		spi-cpol;
> +
> +		avcc-supply = <&adc_vref>;
> +
> +		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
> +		interrupt-parent = <&gpio>;
> +
> +		conversion-start-gpio = <&gpio 17 0>;
> +		reset-gpio = <&gpio 27 0>;
> +		first-data-gpio = <&gpio 22 0>;
> +		standby-gpio = <&gpio 24 0>;
> +	};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 843545d..6d63db4 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -845,6 +845,7 @@ L:	linux-iio@vger.kernel.org
>  W:	http://ez.analog.com/community/linux-device-drivers
>  S:	Supported
>  F:	drivers/iio/adc/ad7606.c
> +F:	Documentation/devicetree/bindings/iio/adc/ad7606.txt
>  
>  ANALOG DEVICES INC AD9389B DRIVER
>  M:	Hans Verkuil <hans.verkuil@cisco.com>
> -- 
> 2.7.4
>
Jonathan Cameron Oct. 28, 2018, 12:07 p.m. UTC | #3
On Thu, 25 Oct 2018 13:43:26 -0500
Rob Herring <robh@kernel.org> wrote:

> On Thu, Oct 18, 2018 at 12:12:36PM +0300, Stefan Popa wrote:
> > Document support for AD7606 Analog to Digital Converter.
> > 
> > Signed-off-by: Stefan Popa <stefan.popa@analog.com>
> > ---
> >  .../devicetree/bindings/iio/adc/adi,ad7606.txt     | 51 ++++++++++++++++++++++
> >  MAINTAINERS                                        |  1 +
> >  2 files changed, 52 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> > new file mode 100644
> > index 0000000..dede581
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
> > @@ -0,0 +1,51 @@
> > +Analog Devices AD7606 Simultaneous Sampling ADC
> > +
> > +Required properties for the AD7606:
> > +
> > + - compatible: Must be one of "adi,ad7605-4", "adi,ad7606-8", "adi,ad7606-6" or
> > + 	       "adi,ad7606-4".  
> 
> Format as one per line please.
> 
> > + - reg: SPI chip select number for the device
> > + - spi-max-frequency: Max SPI frequency to use
> > + 	see: Documentation/devicetree/bindings/spi/spi-bus.txt
> > + - spi-cpha: See Documentation/devicetree/bindings/spi/spi-bus.txt
> > + - avcc-supply: phandle to the Avcc power supply
> > + - interrupts: IRQ line for the ADC
> > + 	see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> > + - conversion-start-gpio: must be the device tree identifier of the CONVST pin.
> > +			  This logic input is used to initiate conversions on
> > +			  the analog input channels.  
> 
> Doesn't IIO have trigger GPIOs?

Wrong way around.  Those are for when you want to use a GPIO to tell the OS
to grab data now.  This one is a 'capture now' pin used to cause the hardware
to start capturing.  We might be able to do something a little generic around
this type, but I don't think we would gain much doing it.

The more interesting point is that the real reason devices have these is either:
1) To capture synchronized data cross a bank of ADCs
2) To capture data under control of device not visible to the OS (some sort
of external controller).

Neither of these cases is terribly well handled at the moment. However, no
one has yet really expressed a desire to do so, hence maybe it's not actually
done...

The first option would need a 'hardware' trigger path which isn't something
we really do as yet in general.  We have individual drivers doing it but normally
only when it's routing a pulse signal to cause the hardware to fill a fifo and
the OS only gets involved occasionally.

Ah well, if anyone cares we'll figure out how to do it ;) 

> 
> > +
> > +Optional properties:
> > +
> > + - reset-gpio: must be the device tree identifier of the RESET pin. If specified,
> > + 	       it will be asserted during driver probe.  
> 
> -gpios is the preferred form: reset-gpios
> 
> And state the active state
> 
> > + - first-data-gpio: must be the device tree identifier of the FRSTDATA pin.
> > + 		    The FRSTDATA output indicates when the first channel, V1, is
> > +		    being read back on either the parallel, byte or serial interface.
> > +- standby-gpio: must be the device tree identifier of the STBY pin. This pin is used
> > +		to place the AD7606 into one of two power-down modes, Standby mode or
> > +		Shutdown mode.
> > +- range-gpio: must be the device tree identifier of the RANGE pin. The polarity on
> > +	      this pin determines the input range of the analog input channels. If
> > +	      this pin is tied to a logic high, the analog input range is ±10V for
> > +	      allchannels. If this pin is tied to a logic low, the analog input range  
> 
> s/allchannels/all channels/
> 
> > +	      is ±5V for all channels.  
> 
> conversion-start-gpio, first-data-gpio, and range-gpio should all have 
> vendor prefix (in addition to -gpios).
Gah, I should have spotted all of that.  Thanks Rob!

Jonathan
> 
> > +
> > +Example:
> > +
> > +	adc@0 {
> > +		compatible = "adi,ad7606-8";
> > +		reg = <0>;
> > +		spi-max-frequency = <1000000>;
> > +		spi-cpol;
> > +
> > +		avcc-supply = <&adc_vref>;
> > +
> > +		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
> > +		interrupt-parent = <&gpio>;
> > +
> > +		conversion-start-gpio = <&gpio 17 0>;
> > +		reset-gpio = <&gpio 27 0>;
> > +		first-data-gpio = <&gpio 22 0>;
> > +		standby-gpio = <&gpio 24 0>;
> > +	};
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 843545d..6d63db4 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -845,6 +845,7 @@ L:	linux-iio@vger.kernel.org
> >  W:	http://ez.analog.com/community/linux-device-drivers
> >  S:	Supported
> >  F:	drivers/iio/adc/ad7606.c
> > +F:	Documentation/devicetree/bindings/iio/adc/ad7606.txt
> >  
> >  ANALOG DEVICES INC AD9389B DRIVER
> >  M:	Hans Verkuil <hans.verkuil@cisco.com>
> > -- 
> > 2.7.4
> >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
new file mode 100644
index 0000000..dede581
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
@@ -0,0 +1,51 @@ 
+Analog Devices AD7606 Simultaneous Sampling ADC
+
+Required properties for the AD7606:
+
+ - compatible: Must be one of "adi,ad7605-4", "adi,ad7606-8", "adi,ad7606-6" or
+ 	       "adi,ad7606-4".
+ - reg: SPI chip select number for the device
+ - spi-max-frequency: Max SPI frequency to use
+ 	see: Documentation/devicetree/bindings/spi/spi-bus.txt
+ - spi-cpha: See Documentation/devicetree/bindings/spi/spi-bus.txt
+ - avcc-supply: phandle to the Avcc power supply
+ - interrupts: IRQ line for the ADC
+ 	see: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
+ - conversion-start-gpio: must be the device tree identifier of the CONVST pin.
+			  This logic input is used to initiate conversions on
+			  the analog input channels.
+
+Optional properties:
+
+ - reset-gpio: must be the device tree identifier of the RESET pin. If specified,
+ 	       it will be asserted during driver probe.
+ - first-data-gpio: must be the device tree identifier of the FRSTDATA pin.
+ 		    The FRSTDATA output indicates when the first channel, V1, is
+		    being read back on either the parallel, byte or serial interface.
+- standby-gpio: must be the device tree identifier of the STBY pin. This pin is used
+		to place the AD7606 into one of two power-down modes, Standby mode or
+		Shutdown mode.
+- range-gpio: must be the device tree identifier of the RANGE pin. The polarity on
+	      this pin determines the input range of the analog input channels. If
+	      this pin is tied to a logic high, the analog input range is ±10V for
+	      allchannels. If this pin is tied to a logic low, the analog input range
+	      is ±5V for all channels.
+
+Example:
+
+	adc@0 {
+		compatible = "adi,ad7606-8";
+		reg = <0>;
+		spi-max-frequency = <1000000>;
+		spi-cpol;
+
+		avcc-supply = <&adc_vref>;
+
+		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+		interrupt-parent = <&gpio>;
+
+		conversion-start-gpio = <&gpio 17 0>;
+		reset-gpio = <&gpio 27 0>;
+		first-data-gpio = <&gpio 22 0>;
+		standby-gpio = <&gpio 24 0>;
+	};
diff --git a/MAINTAINERS b/MAINTAINERS
index 843545d..6d63db4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -845,6 +845,7 @@  L:	linux-iio@vger.kernel.org
 W:	http://ez.analog.com/community/linux-device-drivers
 S:	Supported
 F:	drivers/iio/adc/ad7606.c
+F:	Documentation/devicetree/bindings/iio/adc/ad7606.txt
 
 ANALOG DEVICES INC AD9389B DRIVER
 M:	Hans Verkuil <hans.verkuil@cisco.com>