Commit 8655d697 authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

dt-bindings:iio:adc:ti,ads1015 yaml conversion



This binding was moved over from hwmon some time ago so is a bit
unusual in terms of IIO bindings.  However, conversion was fairly
straight forwards.

I've listed both Dirk (who think wrote original binding) and Daniel
who added the IIO driver for this device.

Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Cc: Daniel Baluta <daniel.baluta@nxp.com>
Link: https://lore.kernel.org/r/20200909175946.395313-17-jic23@kernel.org
parent 1f3b1873
Loading
Loading
Loading
Loading
+0 −73
Original line number Diff line number Diff line
ADS1015 (I2C)

This device is a 12-bit A-D converter with 4 inputs.

The inputs can be used single ended or in certain differential combinations.

For configuration all possible combinations are mapped to 8 channels:
  0: Voltage over AIN0 and AIN1.
  1: Voltage over AIN0 and AIN3.
  2: Voltage over AIN1 and AIN3.
  3: Voltage over AIN2 and AIN3.
  4: Voltage over AIN0 and GND.
  5: Voltage over AIN1 and GND.
  6: Voltage over AIN2 and GND.
  7: Voltage over AIN3 and GND.

Each channel can be configured individually:
 - pga is the programmable gain amplifier (values are full scale)
    0: +/- 6.144 V
    1: +/- 4.096 V
    2: +/- 2.048 V (default)
    3: +/- 1.024 V
    4: +/- 0.512 V
    5: +/- 0.256 V
 - data_rate in samples per second
    0: 128
    1: 250
    2: 490
    3: 920
    4: 1600 (default)
    5: 2400
    6: 3300

1) The /ads1015 node

  Required properties:

   - compatible : must be "ti,ads1015"
   - reg : I2C bus address of the device
   - #address-cells : must be <1>
   - #size-cells : must be <0>

  The node contains child nodes for each channel that the platform uses.

  Example ADS1015 node:

    ads1015@49 {
	    compatible = "ti,ads1015";
	    reg = <0x49>;
	    #address-cells = <1>;
	    #size-cells = <0>;

	    [ child node definitions... ]
    }

2) channel nodes

  Required properties:

   - reg : the channel number

  Optional properties:

   - ti,gain : the programmable gain amplifier setting
   - ti,datarate : the converter data rate

  Example ADS1015 channel node:

    channel@4 {
	    reg = <4>;
	    ti,gain = <3>;
	    ti,datarate = <5>;
    };
+112 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/ti,ads1015.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI ADS1015 4 channel I2C analog to digital converter

maintainers:
  - Daniel Baluta <daniel.baluta@nxp.com>

description: |
  Datasheet at: https://www.ti.com/lit/gpn/ads1015
  Supports both single ended and differential channels.

properties:
  compatible:
    const: ti,ads1015

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  "#io-channel-cells":
    const: 1

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

patternProperties:
  "^channel@[0-7]+$":
    type: object
    description:
      Child nodes needed for each channel that the platform uses.

    properties:
      reg:
        description: |
          0: Voltage over AIN0 and AIN1.
          1: Voltage over AIN0 and AIN3.
          2: Voltage over AIN1 and AIN3.
          3: Voltage over AIN2 and AIN3.
          4: Voltage over AIN0 and GND.
          5: Voltage over AIN1 and GND.
          6: Voltage over AIN2 and GND.
          7: Voltage over AIN3 and GND.
        items:
          - minimum: 0
            maximum: 7

      ti,gain:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 5
        description: |
          pga is the programmable gain amplifier (values are full scale)
          0: +/- 6.144 V
          1: +/- 4.096 V
          2: +/- 2.048 V (default)
          3: +/- 1.024 V
          4: +/- 0.512 V
          5: +/- 0.256 V

      ti,datarate:
        $ref: /schemas/types.yaml#/definitions/uint32
        minimum: 0
        maximum: 6
        description: |
          Data acquisition rate in samples per second
          0: 128
          1: 250
          2: 490
          3: 920
          4: 1600 (default)
          5: 2400
          6: 3300

    required:
      - reg

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@49 {
            compatible = "ti,ads1015";
            reg = <0x49>;
            #address-cells = <1>;
            #size-cells = <0>;
            channel@0 {
              reg = <0>;
            };
            channel@4 {
              reg = <4>;
              ti,gain = <3>;
              ti,datarate = <5>;
            };
        };
    };
...