On Sat, Aug 29, 2026 at 01:59:21PM +0800, Kim Seer Paller wrote: > Add device tree bindings for the Analog Devices AD5710R/AD5711R > 8-channel 12-/16-bit Configurable IDAC/VDAC. > > Signed-off-by: Kim Seer Paller > --- > .../devicetree/bindings/iio/dac/adi,ad5710r.yaml | 143 +++++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 144 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5710r.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5710r.yaml > new file mode 100644 > index 000000000000..259866ca87cf > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5710r.yaml > @@ -0,0 +1,143 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/dac/adi,ad5710r.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices AD5710R/AD5711R 8-channel 12-/16-bit Configurable IDAC/VDAC > + > +maintainers: > + - Kim Seer Paller > + > +description: | > + The AD5710R (16-bit) and AD5711R (12-bit) are 8-channel, low-power, > + configurable current/voltage output digital-to-analog converters (DACs) with > + an on-chip 2.5V, 3ppm/°C reference. Each channel can be independently > + configured as a voltage output (0V to VREF or 0V to 2 x VREF) or a current > + output (0mA to 50mA). These devices operate from a single 2.7V to 5.5V > + supply and are guaranteed monotonic by design. > + > + Datasheet can be found here: > + https://www.analog.com/media/en/technical-documentation/data-sheets/ad5711r-ad5710r.pdf > + > +properties: > + compatible: > + enum: > + - adi,ad5710r > + - adi,ad5711r > + > + reg: > + maxItems: 1 > + > + spi-max-frequency: > + maximum: 20000000 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + vdd-supply: > + description: Power Supply Input. > + > + iovdd-supply: > + description: Digital Power Supply Input. > + > + io-channels: > + description: > + ADC channel used to monitor internal die temperature, output voltages, and > + current of a selected channel via the MUXOUT pin. > + maxItems: 1 > + > + 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 signal that is falling edge sensitive. When it is deasserted, > + the digital core initialization is performed and all DAC registers except > + the Interface Configuration A register are reset to their default values. > + maxItems: 1 > + > + ldac-gpios: > + description: > + LDAC pin to be used as a hardware trigger to update the DAC channels. If > + not present, the DAC channels are updated by Software LDAC. > + maxItems: 1 > + > + adi,range-double: > + description: > + Configure the output range for all channels. If the property is present, > + the output will range from 0V to 2 x Vref. If the property is not present, > + the output will range from 0V to Vref. What was the rationale provided for this not being a userspace control? > + type: boolean > + > +patternProperties: > + "^channel@[0-7]$": > + $ref: /schemas/iio/dac/dac.yaml# > + type: object > + description: > + Represents the external channels which are connected to the DAC. > + > + properties: > + reg: > + description: Channel number > + minimum: 0 > + maximum: 7 > + > + adi,ch-func: > + description: > + Channel output type. Use CH_FUNC_VOLTAGE_OUTPUT for voltage > + output or CH_FUNC_CURRENT_OUTPUT for current output. > + $ref: /schemas/types.yaml#/definitions/uint32 Valid point from sashiko here that you never cover which is which (or cite the header where the defines come from). pw-bot: changes-requested Cheers, Conor. > + enum: [1, 2] > + > + required: > + - reg > + - adi,ch-func > + > + unevaluatedProperties: false > + > +required: > + - compatible > + - reg > + - vdd-supply > + - iovdd-supply > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include > + > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + dac@0 { > + compatible = "adi,ad5710r"; > + reg = <0>; > + spi-max-frequency = <1000000>; > + vdd-supply = <&vdd>; > + iovdd-supply = <&iovdd>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + channel@0 { > + reg = <0>; > + adi,ch-func = ; > + }; > + > + channel@1 { > + reg = <1>; > + adi,ch-func = ; > + }; > + }; > + }; > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 3f5e7b2f524d..ec0f3812199c 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1468,6 +1468,7 @@ L: linux-iio@vger.kernel.org > S: Supported > W: https://ez.analog.com/linux-software-drivers > F: Documentation/devicetree/bindings/iio/dac/adi,ad3530r.yaml > +F: Documentation/devicetree/bindings/iio/dac/adi,ad5710r.yaml > F: drivers/iio/dac/ad3530r.c > > ANALOG DEVICES INC AD3552R DRIVER > > -- > 2.34.1 >