| Analog Devices AD5592R/AD5593R DAC/ADC device driver |
| |
| Required properties for the AD5592R: |
| - compatible: Must be "adi,ad5592r" |
| - reg: SPI chip select number for the device |
| - spi-max-frequency: Max SPI frequency to use (< 30000000) |
| - spi-cpol: The AD5592R requires inverse clock polarity (CPOL) mode |
| |
| Required properties for the AD5593R: |
| - compatible: Must be "adi,ad5593r" |
| - reg: I2C address of the device |
| |
| Required properties for all supported chips: |
| - #address-cells: Should be 1. |
| - #size-cells: Should be 0. |
| - channel nodes: |
| Each child node represents one channel and has the following |
| Required properties: |
| * reg: Pin on which this channel is connected to. |
| * adi,mode: 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 |
| this should be considered as the |
| preferred DAC mode) |
| * CH_MODE_GPIO (the pin is registered |
| with GPIOLIB) |
| Optional properties: |
| * adi,off-state: 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) |
| |
| |
| Optional properties: |
| - vref-supply: Phandle to the external reference voltage supply. This should |
| only be set if there is an external reference voltage connected to the VREF |
| pin. If the property is not set the internal 2.5V reference is used. |
| - reset-gpios : GPIO spec for the RESET pin. If specified, it will be |
| asserted during driver probe. |
| - gpio-controller: Marks the device node as a GPIO controller. |
| - #gpio-cells: Should be 2. The first cell is the GPIO number and the second |
| cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. |
| |
| AD5592R Example: |
| |
| #include <dt-bindings/iio/adi,ad5592r.h> |
| |
| vref: regulator-vref { |
| compatible = "regulator-fixed"; |
| regulator-name = "vref-ad559x"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| ad5592r@0 { |
| #size-cells = <0>; |
| #address-cells = <1>; |
| #gpio-cells = <2>; |
| compatible = "adi,ad5592r"; |
| reg = <0>; |
| |
| spi-max-frequency = <1000000>; |
| spi-cpol; |
| |
| vref-supply = <&vref>; /* optional */ |
| reset-gpios = <&gpio0 86 0>; /* optional */ |
| 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 Example: |
| |
| #include <dt-bindings/iio/adi,ad5592r.h> |
| |
| ad5593r@10 { |
| #size-cells = <0>; |
| #address-cells = <1>; |
| #gpio-cells = <2>; |
| compatible = "adi,ad5593r"; |
| 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>; |
| }; |
| }; |