blob: ba6850ab1f90cc7beb6f33fc75b98fde4e9e4420 [file] [log] [blame]
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/ti,ads1119.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments ADS1119 ADC
maintainers:
- João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>
description:
The TI ADS1119 is a precision 16-bit ADC over I2C that offers single-ended and
differential measurements using a multiplexed input. It features a programmable
gain, a programmable sample rate, an internal oscillator and voltage reference,
and a 50/60Hz rejection filter.
properties:
compatible:
const: ti,ads1119
reg:
maxItems: 1
interrupts:
maxItems: 1
reset-gpios:
maxItems: 1
avdd-supply: true
dvdd-supply: true
vref-supply:
description:
ADC external reference voltage (VREF).
"#address-cells":
const: 1
"#size-cells":
const: 0
"#io-channel-cells":
const: 1
required:
- compatible
- reg
- "#address-cells"
- "#size-cells"
- avdd-supply
- dvdd-supply
patternProperties:
"^channel@([0-6])$":
$ref: adc.yaml
type: object
properties:
reg:
minimum: 0
maximum: 6
diff-channels:
description:
Differential input channels AIN0-AIN1, AIN2-AIN3 and AIN1-AIN2.
oneOf:
- items:
- const: 0
- const: 1
- items:
- const: 2
- const: 3
- items:
- const: 1
- const: 2
single-channel:
description:
Single-ended input channels AIN0, AIN1, AIN2 and AIN3.
minimum: 0
maximum: 3
oneOf:
- required:
- diff-channels
- required:
- single-channel
required:
- reg
unevaluatedProperties: false
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
adc@40 {
compatible = "ti,ads1119";
reg = <0x40>;
interrupt-parent = <&gpio1>;
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
avdd-supply = <&reg_avdd_ads1119>;
dvdd-supply = <&reg_dvdd_ads1119>;
vref-supply = <&reg_vref_ads1119>;
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
channel@0 {
reg = <0>;
single-channel = <0>;
};
channel@1 {
reg = <1>;
diff-channels = <0 1>;
};
channel@2 {
reg = <2>;
single-channel = <3>;
};
channel@3 {
reg = <3>;
single-channel = <1>;
};
channel@4 {
reg = <4>;
single-channel = <2>;
};
channel@5 {
reg = <5>;
diff-channels = <1 2>;
};
channel@6 {
reg = <6>;
diff-channels = <2 3>;
};
};
};