182 lines
4.8 KiB
YAML
182 lines
4.8 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/iio/dac/adi,ltc2664.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Analog Devices LTC2664 DAC
|
||
|
|
||
|
maintainers:
|
||
|
- Michael Hennerich <michael.hennerich@analog.com>
|
||
|
- Kim Seer Paller <kimseer.paller@analog.com>
|
||
|
|
||
|
description: |
|
||
|
Analog Devices LTC2664 4 channel, 12-/16-Bit, +-10V DAC
|
||
|
https://www.analog.com/media/en/technical-documentation/data-sheets/2664fa.pdf
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- adi,ltc2664
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
spi-max-frequency:
|
||
|
maximum: 50000000
|
||
|
|
||
|
vcc-supply:
|
||
|
description: Analog Supply Voltage Input.
|
||
|
|
||
|
v-pos-supply:
|
||
|
description: Positive Supply Voltage Input.
|
||
|
|
||
|
v-neg-supply:
|
||
|
description: Negative Supply Voltage Input.
|
||
|
|
||
|
iovcc-supply:
|
||
|
description: Digital Input/Output Supply Voltage.
|
||
|
|
||
|
ref-supply:
|
||
|
description:
|
||
|
Reference Input/Output. The voltage at the REF pin sets the full-scale
|
||
|
range of all channels. If not provided the internal reference is used and
|
||
|
also provided on the VREF pin.
|
||
|
|
||
|
reset-gpios:
|
||
|
description:
|
||
|
Active-low Asynchronous Clear Input. A logic low at this level-triggered
|
||
|
input clears the part to the reset code and range determined by the
|
||
|
hardwired option chosen using the MSPAN pins. The control registers are
|
||
|
cleared to zero.
|
||
|
maxItems: 1
|
||
|
|
||
|
adi,manual-span-operation-config:
|
||
|
description:
|
||
|
This property must mimic the MSPAN pin configurations. By tying the MSPAN
|
||
|
pins (MSP2, MSP1 and MSP0) to GND and/or VCC, any output range can be
|
||
|
hardware-configured with different mid-scale or zero-scale reset options.
|
||
|
The hardware configuration is latched during power on reset for proper
|
||
|
operation.
|
||
|
0 - MPS2=GND, MPS1=GND, MSP0=GND (+-10V, reset to 0V)
|
||
|
1 - MPS2=GND, MPS1=GND, MSP0=VCC (+-5V, reset to 0V)
|
||
|
2 - MPS2=GND, MPS1=VCC, MSP0=GND (+-2.5V, reset to 0V)
|
||
|
3 - MPS2=GND, MPS1=VCC, MSP0=VCC (0V to 10, reset to 0V)
|
||
|
4 - MPS2=VCC, MPS1=GND, MSP0=GND (0V to 10V, reset to 5V)
|
||
|
5 - MPS2=VCC, MPS1=GND, MSP0=VCC (0V to 5V, reset to 0V)
|
||
|
6 - MPS2=VCC, MPS1=VCC, MSP0=GND (0V to 5V, reset to 2.5V)
|
||
|
7 - MPS2=VCC, MPS1=VCC, MSP0=VCC (0V to 5V, reset to 0V, enables SoftSpan)
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
||
|
default: 7
|
||
|
|
||
|
io-channels:
|
||
|
description:
|
||
|
ADC channel to monitor voltages and temperature at the MUXOUT pin.
|
||
|
maxItems: 1
|
||
|
|
||
|
'#address-cells':
|
||
|
const: 1
|
||
|
|
||
|
'#size-cells':
|
||
|
const: 0
|
||
|
|
||
|
patternProperties:
|
||
|
"^channel@[0-3]$":
|
||
|
$ref: dac.yaml
|
||
|
type: object
|
||
|
additionalProperties: false
|
||
|
|
||
|
properties:
|
||
|
reg:
|
||
|
description: The channel number representing the DAC output channel.
|
||
|
maximum: 3
|
||
|
|
||
|
adi,toggle-mode:
|
||
|
description:
|
||
|
Set the channel as a toggle enabled channel. Toggle operation enables
|
||
|
fast switching of a DAC output between two different DAC codes without
|
||
|
any SPI transaction.
|
||
|
type: boolean
|
||
|
|
||
|
output-range-microvolt:
|
||
|
description:
|
||
|
This property is only allowed when SoftSpan is enabled. If not present,
|
||
|
[0, 5000000] is the default output range.
|
||
|
oneOf:
|
||
|
- items:
|
||
|
- const: 0
|
||
|
- enum: [5000000, 10000000]
|
||
|
- items:
|
||
|
- const: -5000000
|
||
|
- const: 5000000
|
||
|
- items:
|
||
|
- const: -10000000
|
||
|
- const: 10000000
|
||
|
- items:
|
||
|
- const: -2500000
|
||
|
- const: 2500000
|
||
|
|
||
|
required:
|
||
|
- reg
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
not:
|
||
|
properties:
|
||
|
adi,manual-span-operation-config:
|
||
|
const: 7
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^channel@[0-3]$":
|
||
|
properties:
|
||
|
output-range-microvolt: false
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- spi-max-frequency
|
||
|
- vcc-supply
|
||
|
- iovcc-supply
|
||
|
- v-pos-supply
|
||
|
- v-neg-supply
|
||
|
|
||
|
allOf:
|
||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
spi {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
dac@0 {
|
||
|
compatible = "adi,ltc2664";
|
||
|
reg = <0>;
|
||
|
spi-max-frequency = <10000000>;
|
||
|
|
||
|
vcc-supply = <&vcc>;
|
||
|
iovcc-supply = <&vcc>;
|
||
|
ref-supply = <&vref>;
|
||
|
v-pos-supply = <&vpos>;
|
||
|
v-neg-supply = <&vneg>;
|
||
|
|
||
|
io-channels = <&adc 0>;
|
||
|
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
channel@0 {
|
||
|
reg = <0>;
|
||
|
adi,toggle-mode;
|
||
|
output-range-microvolt = <(-10000000) 10000000>;
|
||
|
};
|
||
|
|
||
|
channel@1 {
|
||
|
reg = <1>;
|
||
|
output-range-microvolt= <0 10000000>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
...
|