183 lines
4.4 KiB
YAML
183 lines
4.4 KiB
YAML
|
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|||
|
|
# Copyright 2019 Analog Devices Inc.
|
|||
|
|
%YAML 1.2
|
|||
|
|
---
|
|||
|
|
$id: http://devicetree.org/schemas/iio/adc/adi,ad7124.yaml#
|
|||
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
|
|
|
|||
|
|
title: Analog Devices AD7124 ADC device driver
|
|||
|
|
|
|||
|
|
maintainers:
|
|||
|
|
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
|||
|
|
- Nuno Sá <nuno.sa@analog.com>
|
|||
|
|
|
|||
|
|
description: |
|
|||
|
|
Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
|
|||
|
|
found here:
|
|||
|
|
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf
|
|||
|
|
|
|||
|
|
properties:
|
|||
|
|
compatible:
|
|||
|
|
enum:
|
|||
|
|
- adi,ad7124-4
|
|||
|
|
- adi,ad7124-8
|
|||
|
|
|
|||
|
|
reg:
|
|||
|
|
description: SPI chip select number for the device
|
|||
|
|
maxItems: 1
|
|||
|
|
|
|||
|
|
clocks:
|
|||
|
|
maxItems: 1
|
|||
|
|
description: Optional external clock connected to the CLK pin.
|
|||
|
|
|
|||
|
|
clock-names:
|
|||
|
|
deprecated: true
|
|||
|
|
description:
|
|||
|
|
MCLK is an internal counter in the ADC. Do not use this property.
|
|||
|
|
items:
|
|||
|
|
- const: mclk
|
|||
|
|
|
|||
|
|
'#clock-cells':
|
|||
|
|
description:
|
|||
|
|
The CLK pin can be used as an output. When that is the case, include
|
|||
|
|
this property.
|
|||
|
|
const: 0
|
|||
|
|
|
|||
|
|
interrupts:
|
|||
|
|
description: IRQ line for the ADC
|
|||
|
|
maxItems: 1
|
|||
|
|
|
|||
|
|
rdy-gpios:
|
|||
|
|
description:
|
|||
|
|
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
|||
|
|
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
|||
|
|
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
|||
|
|
distinction between such a spurious event and a real one can only be done
|
|||
|
|
by reading such a GPIO. (There is a register telling the same
|
|||
|
|
information, but accessing that one needs a SPI transfer which then
|
|||
|
|
triggers another interrupt event.)
|
|||
|
|
maxItems: 1
|
|||
|
|
|
|||
|
|
'#address-cells':
|
|||
|
|
const: 1
|
|||
|
|
|
|||
|
|
'#size-cells':
|
|||
|
|
const: 0
|
|||
|
|
|
|||
|
|
refin1-supply:
|
|||
|
|
description: refin1 supply can be used as reference for conversion.
|
|||
|
|
|
|||
|
|
refin2-supply:
|
|||
|
|
description: refin2 supply can be used as reference for conversion.
|
|||
|
|
|
|||
|
|
avdd-supply:
|
|||
|
|
description: avdd supply can be used as reference for conversion.
|
|||
|
|
|
|||
|
|
required:
|
|||
|
|
- compatible
|
|||
|
|
- reg
|
|||
|
|
- interrupts
|
|||
|
|
|
|||
|
|
# Can't have both clock input and output at the same time.
|
|||
|
|
not:
|
|||
|
|
required:
|
|||
|
|
- '#clock-cells'
|
|||
|
|
- clocks
|
|||
|
|
|
|||
|
|
patternProperties:
|
|||
|
|
"^channel@([0-9]|1[0-5])$":
|
|||
|
|
$ref: adc.yaml
|
|||
|
|
type: object
|
|||
|
|
description: |
|
|||
|
|
Represents the external channels which are connected to the ADC.
|
|||
|
|
|
|||
|
|
properties:
|
|||
|
|
reg:
|
|||
|
|
description: |
|
|||
|
|
The channel number. It can have up to 8 channels on ad7124-4
|
|||
|
|
and 16 channels on ad7124-8, numbered from 0 to 15.
|
|||
|
|
items:
|
|||
|
|
minimum: 0
|
|||
|
|
maximum: 15
|
|||
|
|
|
|||
|
|
adi,reference-select:
|
|||
|
|
description: |
|
|||
|
|
Select the reference source to use when converting on
|
|||
|
|
the specific channel. Valid values are:
|
|||
|
|
0: REFIN1(+)/REFIN1(−).
|
|||
|
|
1: REFIN2(+)/REFIN2(−).
|
|||
|
|
3: AVDD
|
|||
|
|
If this field is left empty, internal reference is selected.
|
|||
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|||
|
|
enum: [0, 1, 3]
|
|||
|
|
|
|||
|
|
diff-channels: true
|
|||
|
|
|
|||
|
|
bipolar: true
|
|||
|
|
|
|||
|
|
adi,buffered-positive:
|
|||
|
|
description: Enable buffered mode for positive input.
|
|||
|
|
type: boolean
|
|||
|
|
|
|||
|
|
adi,buffered-negative:
|
|||
|
|
description: Enable buffered mode for negative input.
|
|||
|
|
type: boolean
|
|||
|
|
|
|||
|
|
required:
|
|||
|
|
- reg
|
|||
|
|
- diff-channels
|
|||
|
|
|
|||
|
|
additionalProperties: false
|
|||
|
|
|
|||
|
|
allOf:
|
|||
|
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
|||
|
|
|
|||
|
|
unevaluatedProperties: false
|
|||
|
|
|
|||
|
|
examples:
|
|||
|
|
- |
|
|||
|
|
#include <dt-bindings/gpio/gpio.h>
|
|||
|
|
spi {
|
|||
|
|
#address-cells = <1>;
|
|||
|
|
#size-cells = <0>;
|
|||
|
|
|
|||
|
|
adc@0 {
|
|||
|
|
compatible = "adi,ad7124-4";
|
|||
|
|
reg = <0>;
|
|||
|
|
spi-max-frequency = <5000000>;
|
|||
|
|
interrupts = <25 2>;
|
|||
|
|
interrupt-parent = <&gpio>;
|
|||
|
|
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
|||
|
|
refin1-supply = <&adc_vref>;
|
|||
|
|
|
|||
|
|
#address-cells = <1>;
|
|||
|
|
#size-cells = <0>;
|
|||
|
|
|
|||
|
|
channel@0 {
|
|||
|
|
reg = <0>;
|
|||
|
|
diff-channels = <0 1>;
|
|||
|
|
adi,reference-select = <0>;
|
|||
|
|
adi,buffered-positive;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
channel@1 {
|
|||
|
|
reg = <1>;
|
|||
|
|
bipolar;
|
|||
|
|
diff-channels = <2 3>;
|
|||
|
|
adi,reference-select = <0>;
|
|||
|
|
adi,buffered-positive;
|
|||
|
|
adi,buffered-negative;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
channel@2 {
|
|||
|
|
reg = <2>;
|
|||
|
|
diff-channels = <4 5>;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
channel@3 {
|
|||
|
|
reg = <3>;
|
|||
|
|
diff-channels = <6 7>;
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
};
|