Re: [PATCH 1/2] dt-binding: iio: dac8771: Add TI DAC8771 binding

Jonathan Cameron
2019-12-23T14:44:49Z

On Tue, 17 Dec 2019 08:07:30 -0600
Dan Murphy <dmurphy@ti.com> wrote:

> Add the TI DAC8771 DT binding.
>
> Datasheet:
> http://www.ti.com/lit/ds/symlink/dac8771.pdf
>
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> CC: Rob Herring <robh+dt@kernel.org>
> ---
> .../bindings/iio/dac/ti,dac8771.yaml | 89 +++++++++++++++++++
> 1 file changed, 89 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/dac/ti,dac8771.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/dac/ti,dac8771.yaml b/Documentation/devicetree/bindings/iio/dac/ti,dac8771.yaml
> new file mode 100644
> index 000000000000..6aba6789d36c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/dac/ti,dac8771.yaml
> @@ -0,0 +1,89 @@
> +# SPDX-License-Identifier: GPL-2.0
If possible, it is preferred for new bindings to be dual licensed as

(GPL-2.0-only OR BSD-2-Clause)

> +# Copyright (C) 2019 Texas Instruments Incorporated
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/bindings/iio/dac/ti,dac8771.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Texas Instruments DAC8771
> +
> +maintainers:
> + - Dan Murphy <dmurphy@ti.com>
> +
> +description: |
> + The DAC8771 is a single channel, precision, fully integrated 16-bit digital
> + to analog converter (DAC) with adaptive power management, and is designed to
> + meet the requirements of industrial control applications.
> +
> + Specifications can be found at:
> + http://www.ti.com/lit/ds/symlink/dac8771.pdf
> +
> +properties:
> + compatible:
> + enum:
> + - ti,dac8771
> +
> + reg:
> + maxItems: 1
> +
> + reset-gpios:
> + description: |
> + GPIO used for hardware reset.
> +
> + loaddacs-gpios:
> + description: |
> + GPIO used to shift the data from the SPI FIFO to the processing engine.
> +
> + spi-max-frequency:
> + maximum: 25000000
> +
> + vref-supply:
> + description: Phandle to the external reference voltage supply.
> +
> + ti,output-range:
> + description: Output range of the DAC
> + 0 - Voltage output 0 to +5 V (default)
Hmm. I'm never keen on opaque bindings, but sometimes things
are just too complex to break out as individual fields.

So I guess this is the best we can do.

> + 1 - Voltage output 0 to +10 V
> + 2 - Voltage output ±5 V
> + 3 - Voltage output ±10 V
> + 4 - Current output 3.5 mA to 23.5 mA
> + 5 - Current output 0 to 20 mA
> + 6 - Current output 0 to 24 mA
> + 7 - Current output ±24 mA
> + 8 - Voltage output 0 to +6 V
> + 9 - Voltage output 0 to +12 V
> + 10 - Voltage output ±6 V
> + 11 - Voltage output ±12 V
> + 12 - Current output 4 mA to 20 mA
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint8
> + - enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
> +
> + interrupts:
> + description: IRQ line for the DAC
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - vref-supply
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dac@0 {
> + compatible = "ti,dac8771";
> + reg = <0>;
> + spi-max-frequency = <25000000>;
> + vref-supply = <&ldo3_reg>;
> + ti,output-range = <2>;
> + interrupts = <16>;
> + interrupt-parent = <&gpio1>;
> + loaddacs-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
> + };
> + };