# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/iio/adc/adi,ad7768-1.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Analog Devices AD7768-1 ADC device driver maintainers: - Michael Hennerich description: | Datasheet at: https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf properties: compatible: const: adi,ad7768-1 reg: maxItems: 1 clocks: maxItems: 1 clock-names: const: mclk trigger-sources: $ref: /schemas/types.yaml#/definitions/phandle-array minItems: 1 maxItems: 2 description: | A list of phandles referencing trigger source providers. Each entry represents a trigger source for the ADC: - First entry specifies the device responsible for driving the synchronization (SYNC_IN) pin, as an alternative to adi,sync-in-gpios. This can be a `gpio-trigger` or another `ad7768-1` device. If the device's own SYNC_OUT pin is internally connected to its SYNC_IN pin, reference the device itself or omit this property. - Second entry optionally defines a GPIO3 pin used as a START signal trigger. Use the accompanying trigger source cell to identify the type of each entry. interrupts: description: DRDY (Data Ready) pin, which signals conversion results are available. maxItems: 1 '#address-cells': const: 1 '#size-cells': const: 0 vref-supply: description: ADC reference voltage supply adi,sync-in-gpios: maxItems: 1 description: Enables synchronization of multiple devices that require simultaneous sampling. A pulse is always required if the configuration is changed in any way, for example if the filter decimation rate changes. As the line is active low, it should be marked GPIO_ACTIVE_LOW. regulators: type: object description: list of regulators provided by this controller. properties: vcm-output: $ref: /schemas/regulator/regulator.yaml# type: object unevaluatedProperties: false additionalProperties: false reset-gpios: maxItems: 1 spi-cpol: true spi-cpha: true "#io-channel-cells": const: 1 "#trigger-source-cells": description: | Cell indicates the trigger output signal: 0 = SYNC_OUT, 1 = GPIO3, 2 = DRDY. For better readability, macros for these values are available in dt-bindings/iio/adc/adi,ad7768-1.h. const: 1 gpio-controller: true "#gpio-cells": const: 2 description: | The first cell is for the GPIO number: 0 to 3. The second cell takes standard GPIO flags. required: - compatible - reg - clocks - clock-names - vref-supply - spi-cpol - spi-cpha dependencies: adi,sync-in-gpios: not: required: - trigger-sources trigger-sources: not: required: - adi,sync-in-gpios patternProperties: "^channel@([0-9]|1[0-5])$": type: object description: | Represents the external channels which are connected to the device. properties: reg: maxItems: 1 description: | The channel number. label: description: | Unique name to identify which channel this is. required: - reg additionalProperties: false allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# unevaluatedProperties: false examples: - | #include #include spi { #address-cells = <1>; #size-cells = <0>; adc@0 { compatible = "adi,ad7768-1"; reg = <0>; spi-max-frequency = <2000000>; spi-cpol; spi-cpha; gpio-controller; #gpio-cells = <2>; vref-supply = <&adc_vref>; interrupts = <25 IRQ_TYPE_EDGE_RISING>; interrupt-parent = <&gpio>; adi,sync-in-gpios = <&gpio 22 GPIO_ACTIVE_LOW>; reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>; clocks = <&ad7768_mclk>; clock-names = "mclk"; #address-cells = <1>; #size-cells = <0>; channel@0 { reg = <0>; label = "channel_0"; }; regulators { vcm_reg: vcm-output { regulator-name = "ad7768-1-vcm"; }; }; }; }; ...