Add support for Analog Devices AD7124 4-channels and 8-channels ADC.

Signed-off-by: Stefan Popa <stefan.p...@analog.com>
---
Changes in v2:
        - Nothing changed.
Changes in v3:
        - Removed the "adi,channels" property.
        - Used the "reg" property to get the channel number and 
"adi,diff-channels"
          for the differential pins. The "adi,channel-number" property was 
removed.
        - adi,bipolar is of boolean type.

 .../devicetree/bindings/iio/adc/adi,ad7124.txt     | 90 ++++++++++++++++++++++
 MAINTAINERS                                        |  1 +
 2 files changed, 91 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt 
b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
new file mode 100644
index 0000000..46a9b71
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
@@ -0,0 +1,90 @@
+Analog Devices AD7124 ADC device driver
+
+Required properties for the AD7124:
+       - compatible: Must be one of "adi,ad7124-4" or "adi,ad7124-8"
+       - reg: SPI chip select number for the device
+       - spi-max-frequency: Max SPI frequency to use
+               see: Documentation/devicetree/bindings/spi/spi-bus.txt
+       - clocks: phandle to the master clock (mclk)
+               see: Documentation/devicetree/bindings/clock/clock-bindings.txt
+       - clock-names: Must be "mclk".
+       - interrupts: IRQ line for the ADC
+               see: 
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
+
+         Required properties:
+               * #address-cells: Must be 1.
+               * #size-cells: Must be 0.
+
+         Subnode(s) represent the external channels which are connected to the 
ADC.
+         Each subnode represents one channel and has the following properties:
+               Required properties:
+                       * reg: The channel number. It can have up to 4 channels 
on ad7124-4
+                         and 8 channels on ad7124-8, numbered from 0 to 15.
+                       * adi,diff-channels: Pins the channel is connected to. 
The first value
+                         specifies the positive input pin, the second value 
the negative input pin.
+
+               Optional properties:
+                       * adi,bipolar: Boolean, if set the channel is used in 
bipolar mode.
+                       * adi,reference-select: Select the reference source to 
use when
+                         converting on the the specific channel. Valid values 
are:
+                         0: REFIN1(+)/REFIN1(−).
+                         1: REFIN2(+)/REFIN2(−).
+                         3: AVDD
+                         If this field is left empty, internal reference is 
selected.
+                       * adi,gain: Select the gain when converting on the 
specific channel.
+                         Valid values are: 1, 2, 4, 8, 16, 32, 64, 128.
+                         If this field is left empty, gain of 1 is selected.
+                       * adi,odr-hz: The output data rate can be programmed 
from:
+                         9 to 19200 for full power mode (when the master clock 
is 614.4 kHz)
+                         2 to 4800 for mid power mode (when the master clock 
is 153.6 kHz)
+                         1 to 2400 for low power mode (when the master clock 
is 76.8 kHz)
+                         If this field is left empty, odr of 9 is selected.
+
+Optional properties:
+       - refin1-supply: refin1 supply can be used as reference for conversion.
+       - refin2-supply: refin2 supply can be used as reference for conversion.
+       - avdd-supply: avdd supply can be used as reference for conversion.
+
+Example:
+       adc@0 {
+               compatible = "adi,ad7124-4";
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               interrupts = <25 2>;
+               interrupt-parent = <&gpio>;
+               refin1-supply = <&adc_vref>;
+               clocks = <&ad7124_mclk>;
+               clock-names = "mclk";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@0 {
+                       reg = <0>;
+                       adi,diff-channels = <0 1>;
+                       adi,reference-select = <0>;
+                       adi,gain = <2>;
+                       adi,odr-hz = <10>;
+               };
+
+               channel@1 {
+                       reg = <1>;
+                       adi,bipolar;
+                       adi,diff-channels = <2 3>;
+                       adi,reference-select = <0>;
+                       adi,gain = <4>;
+                       adi,odr-hz = <50>;
+               };
+
+               channel@2 {
+                       reg = <2>;
+                       adi,diff-channels = <4 5>;
+                       adi,gain = <128>;
+                       adi,odr-hz = <19200>;
+               };
+
+               channel@3 {
+                       reg = <3>;
+                       adi,diff-channels = <6 7>;
+               };
+       };
diff --git a/MAINTAINERS b/MAINTAINERS
index 3a1bfcb..f2fa508 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -845,6 +845,7 @@ L:  linux-...@vger.kernel.org
 W:     http://ez.analog.com/community/linux-device-drivers
 S:     Supported
 F:     drivers/iio/adc/ad7124.c
+F:     Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
 
 ANALOG DEVICES INC AD9389B DRIVER
 M:     Hans Verkuil <hans.verk...@cisco.com>
-- 
2.7.4

Reply via email to