1Analog Devices AD5592R/AD5593R DAC/ADC device driver 2 3Required properties for the AD5592R: 4 - compatible: Must be "adi,ad5592r" 5 - reg: SPI chip select number for the device 6 - spi-max-frequency: Max SPI frequency to use (< 30000000) 7 - spi-cpol: The AD5592R requires inverse clock polarity (CPOL) mode 8 9Required properties for the AD5593R: 10 - compatible: Must be "adi,ad5593r" 11 - reg: I2C address of the device 12 13Required properties for all supported chips: 14 - #address-cells: Should be 1. 15 - #size-cells: Should be 0. 16 - channel nodes: 17 Each child node represents one channel and has the following 18 Required properties: 19 * reg: Pin on which this channel is connected to. 20 * adi,mode: Mode or function of this channel. 21 Macros specifying the valid values 22 can be found in <dt-bindings/iio/adi,ad5592r.h>. 23 24 The following values are currently supported: 25 * CH_MODE_UNUSED (the pin is unused) 26 * CH_MODE_ADC (the pin is ADC input) 27 * CH_MODE_DAC (the pin is DAC output) 28 * CH_MODE_DAC_AND_ADC (the pin is DAC output 29 but can be monitored by an ADC, since 30 there is no disadvantage this 31 this should be considered as the 32 preferred DAC mode) 33 * CH_MODE_GPIO (the pin is registered 34 with GPIOLIB) 35 Optional properties: 36 * adi,off-state: State of this channel when unused or the 37 device gets removed. Macros specifying the 38 valid values can be found in 39 <dt-bindings/iio/adi,ad5592r.h>. 40 41 * CH_OFFSTATE_PULLDOWN (the pin is pulled down) 42 * CH_OFFSTATE_OUT_LOW (the pin is output low) 43 * CH_OFFSTATE_OUT_HIGH (the pin is output high) 44 * CH_OFFSTATE_OUT_TRISTATE (the pin is 45 tristated output) 46 47 48Optional properties: 49 - vref-supply: Phandle to the external reference voltage supply. This should 50 only be set if there is an external reference voltage connected to the VREF 51 pin. If the property is not set the internal 2.5V reference is used. 52 - reset-gpios : GPIO spec for the RESET pin. If specified, it will be 53 asserted during driver probe. 54 - gpio-controller: Marks the device node as a GPIO controller. 55 - #gpio-cells: Should be 2. The first cell is the GPIO number and the second 56 cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. 57 58AD5592R Example: 59 60 #include <dt-bindings/iio/adi,ad5592r.h> 61 62 vref: regulator-vref { 63 compatible = "regulator-fixed"; 64 regulator-name = "vref-ad559x"; 65 regulator-min-microvolt = <3300000>; 66 regulator-max-microvolt = <3300000>; 67 regulator-always-on; 68 }; 69 70 ad5592r@0 { 71 #size-cells = <0>; 72 #address-cells = <1>; 73 #gpio-cells = <2>; 74 compatible = "adi,ad5592r"; 75 reg = <0>; 76 77 spi-max-frequency = <1000000>; 78 spi-cpol; 79 80 vref-supply = <&vref>; /* optional */ 81 reset-gpios = <&gpio0 86 0>; /* optional */ 82 gpio-controller; 83 84 channel@0 { 85 reg = <0>; 86 adi,mode = <CH_MODE_DAC>; 87 }; 88 channel@1 { 89 reg = <1>; 90 adi,mode = <CH_MODE_ADC>; 91 }; 92 channel@2 { 93 reg = <2>; 94 adi,mode = <CH_MODE_DAC_AND_ADC>; 95 }; 96 channel@3 { 97 reg = <3>; 98 adi,mode = <CH_MODE_DAC_AND_ADC>; 99 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 100 }; 101 channel@4 { 102 reg = <4>; 103 adi,mode = <CH_MODE_UNUSED>; 104 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 105 }; 106 channel@5 { 107 reg = <5>; 108 adi,mode = <CH_MODE_GPIO>; 109 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 110 }; 111 channel@6 { 112 reg = <6>; 113 adi,mode = <CH_MODE_GPIO>; 114 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 115 }; 116 channel@7 { 117 reg = <7>; 118 adi,mode = <CH_MODE_GPIO>; 119 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 120 }; 121 }; 122 123AD5593R Example: 124 125 #include <dt-bindings/iio/adi,ad5592r.h> 126 127 ad5593r@10 { 128 #size-cells = <0>; 129 #address-cells = <1>; 130 #gpio-cells = <2>; 131 compatible = "adi,ad5593r"; 132 reg = <0x10>; 133 gpio-controller; 134 135 channel@0 { 136 reg = <0>; 137 adi,mode = <CH_MODE_DAC>; 138 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 139 }; 140 channel@1 { 141 reg = <1>; 142 adi,mode = <CH_MODE_ADC>; 143 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 144 }; 145 channel@2 { 146 reg = <2>; 147 adi,mode = <CH_MODE_DAC_AND_ADC>; 148 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 149 }; 150 channel@6 { 151 reg = <6>; 152 adi,mode = <CH_MODE_GPIO>; 153 adi,off-state = <CH_OFFSTATE_PULLDOWN>; 154 }; 155 }; 156