205 lines
5.2 KiB
YAML
205 lines
5.2 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/dac/adi,ad5592r.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Analog Devices AD5592R/AD5593R DAC/ADC
|
|
|
|
maintainers:
|
|
- Michael Hennerich <michael.hennerich@analog.com>
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- adi,ad5592r
|
|
- adi,ad5593r
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
spi-max-frequency:
|
|
maximum: 30000000
|
|
|
|
spi-cpol: true
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
"#io-channel-cells":
|
|
const: 1
|
|
|
|
vref-supply:
|
|
description: If not set internal 2.5V reference used.
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
|
|
gpio-controller:
|
|
description: Marks the device node as a GPIO controller.
|
|
|
|
"#gpio-cells":
|
|
const: 2
|
|
description:
|
|
The first cell is the GPIO number and the second cell specifies
|
|
GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: adi,ad5592r
|
|
then:
|
|
required:
|
|
- spi-cpol
|
|
else:
|
|
properties:
|
|
spi-cpol: false
|
|
|
|
additionalProperties: false
|
|
|
|
patternProperties:
|
|
"^(channel@)[0-7]$":
|
|
type: object
|
|
description: Child node to describe a channel
|
|
properties:
|
|
reg:
|
|
minimum: 0
|
|
maximum: 7
|
|
|
|
adi,mode:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3, 8]
|
|
description: |
|
|
Mode or function of this channel.
|
|
Macros specifying the valid values can be found in
|
|
<dt-bindings/iio/adi,ad5592r.h>.
|
|
|
|
The following values are currently supported:
|
|
* CH_MODE_UNUSED (the pin is unused)
|
|
* CH_MODE_ADC (the pin is ADC input)
|
|
* CH_MODE_DAC (the pin is DAC output)
|
|
* CH_MODE_DAC_AND_ADC (the pin is DAC output but can be monitored
|
|
by an ADC, since there is no disadvantage this should be
|
|
considered as the preferred DAC mode)
|
|
* CH_MODE_GPIO (the pin is registered with GPIOLIB)
|
|
|
|
adi,off-state:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [0, 1, 2, 3]
|
|
description: |
|
|
State of this channel when unused or the device gets removed.
|
|
Macros specifying the valid values can be found in
|
|
<dt-bindings/iio/adi,ad5592r.h>.
|
|
* CH_OFFSTATE_PULLDOWN (the pin is pulled down)
|
|
* CH_OFFSTATE_OUT_LOW (the pin is output low)
|
|
* CH_OFFSTATE_OUT_HIGH (the pin is output high)
|
|
* CH_OFFSTATE_OUT_TRISTATE (the pin is tristated output)
|
|
|
|
required:
|
|
- reg
|
|
- adi,mode
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/iio/adi,ad5592r.h>
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
addac@0 {
|
|
compatible = "adi,ad5592r";
|
|
#size-cells = <0>;
|
|
#address-cells = <1>;
|
|
#gpio-cells = <2>;
|
|
reg = <0>;
|
|
|
|
spi-max-frequency = <1000000>;
|
|
spi-cpol;
|
|
|
|
vref-supply = <&vref>;
|
|
reset-gpios = <&gpio0 86 0>;
|
|
gpio-controller;
|
|
|
|
channel@0 {
|
|
reg = <0>;
|
|
adi,mode = <CH_MODE_DAC>;
|
|
};
|
|
channel@1 {
|
|
reg = <1>;
|
|
adi,mode = <CH_MODE_ADC>;
|
|
};
|
|
channel@2 {
|
|
reg = <2>;
|
|
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
|
};
|
|
channel@3 {
|
|
reg = <3>;
|
|
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@4 {
|
|
reg = <4>;
|
|
adi,mode = <CH_MODE_UNUSED>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@5 {
|
|
reg = <5>;
|
|
adi,mode = <CH_MODE_GPIO>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@6 {
|
|
reg = <6>;
|
|
adi,mode = <CH_MODE_GPIO>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@7 {
|
|
reg = <7>;
|
|
adi,mode = <CH_MODE_GPIO>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
};
|
|
ad5593r@10 {
|
|
compatible = "adi,ad5593r";
|
|
#size-cells = <0>;
|
|
#address-cells = <1>;
|
|
#gpio-cells = <2>;
|
|
reg = <0x10>;
|
|
gpio-controller;
|
|
|
|
channel@0 {
|
|
reg = <0>;
|
|
adi,mode = <CH_MODE_DAC>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@1 {
|
|
reg = <1>;
|
|
adi,mode = <CH_MODE_ADC>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@2 {
|
|
reg = <2>;
|
|
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
channel@6 {
|
|
reg = <6>;
|
|
adi,mode = <CH_MODE_GPIO>;
|
|
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
|
};
|
|
};
|
|
};
|
|
...
|