[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210820165927.4524-6-mihail.chindris@analog.com>
Date: Fri, 20 Aug 2021 16:59:26 +0000
From: Mihail Chindris <mihail.chindris@...log.com>
To: <linux-kernel@...r.kernel.org>, <linux-iio@...r.kernel.org>
CC: <lars@...afoo.de>, <Michael.Hennerich@...log.com>,
<jic23@...nel.org>, <nuno.sa@...log.com>,
<dragos.bogdan@...log.com>, <alexandru.ardelean@...log.com>,
Mihail Chindris <mihail.chindris@...log.com>
Subject: [PATCH v4 5/6] dt-bindings: iio: dac: Add adi,ad3552r.yaml
Add documentation for ad3552r
Signed-off-by: Mihail Chindris <mihail.chindris@...log.com>
---
.../bindings/iio/dac/adi,ad3552r.yaml | 185 ++++++++++++++++++
1 file changed, 185 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
new file mode 100644
index 000000000000..82ad8335aed8
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/dac/adi,ad3552r.yaml
@@ -0,0 +1,185 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2020 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,ad3552r.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD2552R DAC device driver
+
+maintainers:
+ - Mihail Chindris <mihail.chindris@...log.com>
+
+description: |
+ Bindings for the Analog Devices AD3552R DAC device. Datasheet can be
+ found here:
+ https://www.analog.com/media/en/technical-documentation/data-sheets/ad3552r.pdf
+
+properties:
+ compatible:
+ enum:
+ - adi,ad3552r
+
+ reg:
+ maxItems: 1
+
+ spi-max-frequency:
+ maximum: 30000000
+
+ interrupts:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ ldac-gpios:
+ description: |
+ If a LDAC gpio is specified it will generate a LDAC pulse each time the
+ trigger handler sends data to the chip.
+ maxItems: 1
+
+ adi,synch_channels: |
+ If set to true, data will be written to the input registers. When a pulse
+ is generated on the LDAC pin data will update the output voltage of both
+ channels if enabled. If ldac-gpios is specified the pulse will be
+ generated by the driver in the interrupt handler. If adi,synch_channels
+ is set to false, data will be written to the DAC registers and the output
+ is updated imediatly after each register is written.
+ type: bool
+
+ adi,vref-select:
+ description: Selection of the voltage reference.
+ The options are
+ - 0 internal source with Vref I/O floating
+ - 1 internal source with Vref I/O at 2.5V.
+ - 2 external source with Vref I/O as input.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2]
+
+ adi,spi-multi-io-mode:
+ description: |
+ Select SPI operating mode:
+ - 0: standard.
+ - 1: dual.
+ - 2: quad.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2]
+
+ adi,ddr:
+ description: Enable or disable double data rate SPI
+ type: boolean
+
+ adi,synchronous-mode:
+ description: Enable or disable synchronous dual SPI mode
+ type: boolean
+
+ adi,sdo-drive-strength:
+ description: |
+ Configure SDIO0 and SDIO1 strength levels:
+ - 0: low SDO drive strength.
+ - 1: medium low SDO drive strength.
+ - 2: medium high SDO drive strength.
+ - 3: high SDO drive strength
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2, 3]
+
+patternProperties:
+ "^channel@([0-1])$":
+ type: object
+ description: Configurations of the DAC Channels
+ properties:
+ reg:
+ description: Channel number
+ minimum: 0
+ maximum: 1
+
+ adi,output-range:
+ description: |
+ Output range of the channel
+ 0: 0 V to 2.5 V
+ 1: 0 V to 5 V
+ 2: 0 V to 10 V
+ 3: -5 V to 5 V
+ 4: -10 V to 10 V
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2, 3, 4]
+
+ custom-output-range-config:
+ type: object
+ description: Configuration of custom range when adi,output-range is set
+ to custom
+ properties:
+ adi,gain-offset:
+ description: Gain offset
+ $ref: /schemas/types.yaml#/definitions/int32
+ maximum: 511
+ minimum: -511
+ adi,gain-scaling-p:
+ description: |
+ Scaling p:
+ 0: 1.0
+ 1: 0.5
+ 2: 0.25
+ 3: 0.125
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2, 3]
+ adi,gain-scaling-n:
+ description: |
+ Scaling p:
+ 0: 1.0
+ 1: 0.5
+ 2: 0.25
+ 3: 0.125
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 1, 2, 3]
+ adi,rfb-ohms:
+ description: Feedback Resistor
+ required:
+ - adi,gain-offset
+ - adi,gain-sacling-p
+ - adi,gain-sacling-n
+ - adi,rfb-ohms
+ required:
+ - reg
+
+ oneOf:
+ # If adi,output-range is missing, custom-output-range-config must be used
+ - required:
+ - adi,output-range
+ - required:
+ - custom-output-range-config
+
+required:
+ - compatible
+ - reg
+ - spi-max-frequency
+
+additionalProperties: false
+
+examples:
+ - |
+ ad3552r {
+ compatible = "adi,ad3552r";
+ reg = <0 0 0 0>;
+ spi-max-frequency = <20000000>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <87 0>;
+ pwms = <&axi_pwm 0 50>;
+ reset-gpios = <&gpio 86 0>;
+ adi,synch_channels;
+ adi,vref-select = <0>;
+ channel@0 {
+ reg = <0>;
+ adi,output-range = <0>;
+ };
+ channel@1 {
+ reg = <1>;
+ custom-output-range-config {
+ adi,gain-offset = <5>;
+ adi,gain-sacling-p = <1>;
+ adi,gain-sacling-n = <2>;
+ adi,rfb-ohms = <1>;
+ };
+ };
+ };
+...
--
2.27.0
Powered by blists - more mailing lists