1*357a8075SJonathan Cameron# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*357a8075SJonathan Cameron%YAML 1.2 3*357a8075SJonathan Cameron--- 4*357a8075SJonathan Cameron$id: http://devicetree.org/schemas/iio/dac/adi,ad5592r.yaml# 5*357a8075SJonathan Cameron$schema: http://devicetree.org/meta-schemas/core.yaml# 6*357a8075SJonathan Cameron 7*357a8075SJonathan Camerontitle: Analog Devices AD5592R/AD5593R DAC/ADC 8*357a8075SJonathan Cameron 9*357a8075SJonathan Cameronmaintainers: 10*357a8075SJonathan Cameron - Michael Hennerich <michael.hennerich@analog.com> 11*357a8075SJonathan Cameron 12*357a8075SJonathan Cameronproperties: 13*357a8075SJonathan Cameron compatible: 14*357a8075SJonathan Cameron enum: 15*357a8075SJonathan Cameron - adi,ad5592r 16*357a8075SJonathan Cameron - adi,ad5593r 17*357a8075SJonathan Cameron 18*357a8075SJonathan Cameron reg: 19*357a8075SJonathan Cameron maxItems: 1 20*357a8075SJonathan Cameron 21*357a8075SJonathan Cameron spi-max-frequency: 22*357a8075SJonathan Cameron maximum: 30000000 23*357a8075SJonathan Cameron 24*357a8075SJonathan Cameron spi-cpol: true 25*357a8075SJonathan Cameron 26*357a8075SJonathan Cameron "#address-cells": 27*357a8075SJonathan Cameron const: 1 28*357a8075SJonathan Cameron 29*357a8075SJonathan Cameron "#size-cells": 30*357a8075SJonathan Cameron const: 0 31*357a8075SJonathan Cameron 32*357a8075SJonathan Cameron "#io-channel-cells": 33*357a8075SJonathan Cameron const: 1 34*357a8075SJonathan Cameron 35*357a8075SJonathan Cameron vref-supply: 36*357a8075SJonathan Cameron description: If not set internal 2.5V reference used. 37*357a8075SJonathan Cameron 38*357a8075SJonathan Cameron reset-gpios: 39*357a8075SJonathan Cameron maxItems: 1 40*357a8075SJonathan Cameron 41*357a8075SJonathan Cameron gpio-controller: 42*357a8075SJonathan Cameron description: Marks the device node as a GPIO controller. 43*357a8075SJonathan Cameron 44*357a8075SJonathan Cameron "#gpio-cells": 45*357a8075SJonathan Cameron const: 2 46*357a8075SJonathan Cameron description: 47*357a8075SJonathan Cameron The first cell is the GPIO number and the second cell specifies 48*357a8075SJonathan Cameron GPIO flags, as defined in <dt-bindings/gpio/gpio.h>. 49*357a8075SJonathan Cameron 50*357a8075SJonathan Cameronrequired: 51*357a8075SJonathan Cameron - compatible 52*357a8075SJonathan Cameron - reg 53*357a8075SJonathan Cameron - "#address-cells" 54*357a8075SJonathan Cameron - "#size-cells" 55*357a8075SJonathan Cameron 56*357a8075SJonathan CameronallOf: 57*357a8075SJonathan Cameron - if: 58*357a8075SJonathan Cameron properties: 59*357a8075SJonathan Cameron compatible: 60*357a8075SJonathan Cameron contains: 61*357a8075SJonathan Cameron const: adi,ad5592r 62*357a8075SJonathan Cameron then: 63*357a8075SJonathan Cameron required: 64*357a8075SJonathan Cameron - spi-cpol 65*357a8075SJonathan Cameron else: 66*357a8075SJonathan Cameron properties: 67*357a8075SJonathan Cameron spi-cpol: false 68*357a8075SJonathan Cameron 69*357a8075SJonathan CameronadditionalProperties: false 70*357a8075SJonathan Cameron 71*357a8075SJonathan CameronpatternProperties: 72*357a8075SJonathan Cameron "^(channel@)[0-7]$": 73*357a8075SJonathan Cameron type: object 74*357a8075SJonathan Cameron description: Child node to describe a channel 75*357a8075SJonathan Cameron properties: 76*357a8075SJonathan Cameron reg: 77*357a8075SJonathan Cameron minimum: 0 78*357a8075SJonathan Cameron maximum: 7 79*357a8075SJonathan Cameron 80*357a8075SJonathan Cameron adi,mode: 81*357a8075SJonathan Cameron $ref: /schemas/types.yaml#/definitions/uint32 82*357a8075SJonathan Cameron enum: [0, 1, 2, 3, 8] 83*357a8075SJonathan Cameron description: | 84*357a8075SJonathan Cameron Mode or function of this channel. 85*357a8075SJonathan Cameron Macros specifying the valid values can be found in 86*357a8075SJonathan Cameron <dt-bindings/iio/adi,ad5592r.h>. 87*357a8075SJonathan Cameron 88*357a8075SJonathan Cameron The following values are currently supported: 89*357a8075SJonathan Cameron * CH_MODE_UNUSED (the pin is unused) 90*357a8075SJonathan Cameron * CH_MODE_ADC (the pin is ADC input) 91*357a8075SJonathan Cameron * CH_MODE_DAC (the pin is DAC output) 92*357a8075SJonathan Cameron * CH_MODE_DAC_AND_ADC (the pin is DAC output but can be monitored 93*357a8075SJonathan Cameron by an ADC, since there is no disadvantage this should be 94*357a8075SJonathan Cameron considered as the preferred DAC mode) 95*357a8075SJonathan Cameron * CH_MODE_GPIO (the pin is registered with GPIOLIB) 96*357a8075SJonathan Cameron 97*357a8075SJonathan Cameron adi,off-state: 98*357a8075SJonathan Cameron $ref: /schemas/types.yaml#/definitions/uint32 99*357a8075SJonathan Cameron enum: [0, 1, 2, 3] 100*357a8075SJonathan Cameron description: | 101*357a8075SJonathan Cameron State of this channel when unused or the device gets removed. 102*357a8075SJonathan Cameron Macros specifying the valid values can be found in 103*357a8075SJonathan Cameron <dt-bindings/iio/adi,ad5592r.h>. 104*357a8075SJonathan Cameron * CH_OFFSTATE_PULLDOWN (the pin is pulled down) 105*357a8075SJonathan Cameron * CH_OFFSTATE_OUT_LOW (the pin is output low) 106*357a8075SJonathan Cameron * CH_OFFSTATE_OUT_HIGH (the pin is output high) 107*357a8075SJonathan Cameron * CH_OFFSTATE_OUT_TRISTATE (the pin is tristated output) 108*357a8075SJonathan Cameron 109*357a8075SJonathan Cameron required: 110*357a8075SJonathan Cameron - reg 111*357a8075SJonathan Cameron - adi,mode 112*357a8075SJonathan Cameron 113*357a8075SJonathan Cameron additionalProperties: false 114*357a8075SJonathan Cameron 115*357a8075SJonathan Cameronexamples: 116*357a8075SJonathan Cameron - | 117*357a8075SJonathan Cameron #include <dt-bindings/iio/adi,ad5592r.h> 118*357a8075SJonathan Cameron spi { 119*357a8075SJonathan Cameron #address-cells = <1>; 120*357a8075SJonathan Cameron #size-cells = <0>; 121*357a8075SJonathan Cameron 122*357a8075SJonathan Cameron addac@0 { 123*357a8075SJonathan Cameron compatible = "adi,ad5592r"; 124*357a8075SJonathan Cameron #size-cells = <0>; 125*357a8075SJonathan Cameron #address-cells = <1>; 126*357a8075SJonathan Cameron #gpio-cells = <2>; 127*357a8075SJonathan Cameron reg = <0>; 128*357a8075SJonathan Cameron 129*357a8075SJonathan Cameron spi-max-frequency = <1000000>; 130*357a8075SJonathan Cameron spi-cpol; 131*357a8075SJonathan Cameron 132*357a8075SJonathan Cameron vref-supply = <&vref>; 133*357a8075SJonathan Cameron reset-gpios = <&gpio0 86 0>; 134*357a8075SJonathan Cameron gpio-controller; 135*357a8075SJonathan Cameron 136*357a8075SJonathan Cameron channel@0 { 137*357a8075SJonathan Cameron reg = <0>; 138*357a8075SJonathan Cameron adi,mode = <CH_MODE_DAC>; 139*357a8075SJonathan Cameron }; 140*357a8075SJonathan Cameron channel@1 { 141*357a8075SJonathan Cameron reg = <1>; 142*357a8075SJonathan Cameron adi,mode = <CH_MODE_ADC>; 143*357a8075SJonathan Cameron }; 144*357a8075SJonathan Cameron channel@2 { 145*357a8075SJonathan Cameron reg = <2>; 146*357a8075SJonathan Cameron adi,mode = <CH_MODE_DAC_AND_ADC>; 147*357a8075SJonathan Cameron }; 148*357a8075SJonathan Cameron channel@3 { 149*357a8075SJonathan Cameron reg = <3>; 150*357a8075SJonathan Cameron adi,mode = <CH_MODE_DAC_AND_ADC>; 151*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 152*357a8075SJonathan Cameron }; 153*357a8075SJonathan Cameron channel@4 { 154*357a8075SJonathan Cameron reg = <4>; 155*357a8075SJonathan Cameron adi,mode = <CH_MODE_UNUSED>; 156*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 157*357a8075SJonathan Cameron }; 158*357a8075SJonathan Cameron channel@5 { 159*357a8075SJonathan Cameron reg = <5>; 160*357a8075SJonathan Cameron adi,mode = <CH_MODE_GPIO>; 161*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 162*357a8075SJonathan Cameron }; 163*357a8075SJonathan Cameron channel@6 { 164*357a8075SJonathan Cameron reg = <6>; 165*357a8075SJonathan Cameron adi,mode = <CH_MODE_GPIO>; 166*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 167*357a8075SJonathan Cameron }; 168*357a8075SJonathan Cameron channel@7 { 169*357a8075SJonathan Cameron reg = <7>; 170*357a8075SJonathan Cameron adi,mode = <CH_MODE_GPIO>; 171*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 172*357a8075SJonathan Cameron }; 173*357a8075SJonathan Cameron }; 174*357a8075SJonathan Cameron ad5593r@10 { 175*357a8075SJonathan Cameron compatible = "adi,ad5593r"; 176*357a8075SJonathan Cameron #size-cells = <0>; 177*357a8075SJonathan Cameron #address-cells = <1>; 178*357a8075SJonathan Cameron #gpio-cells = <2>; 179*357a8075SJonathan Cameron reg = <0x10>; 180*357a8075SJonathan Cameron gpio-controller; 181*357a8075SJonathan Cameron 182*357a8075SJonathan Cameron channel@0 { 183*357a8075SJonathan Cameron reg = <0>; 184*357a8075SJonathan Cameron adi,mode = <CH_MODE_DAC>; 185*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 186*357a8075SJonathan Cameron }; 187*357a8075SJonathan Cameron channel@1 { 188*357a8075SJonathan Cameron reg = <1>; 189*357a8075SJonathan Cameron adi,mode = <CH_MODE_ADC>; 190*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 191*357a8075SJonathan Cameron }; 192*357a8075SJonathan Cameron channel@2 { 193*357a8075SJonathan Cameron reg = <2>; 194*357a8075SJonathan Cameron adi,mode = <CH_MODE_DAC_AND_ADC>; 195*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 196*357a8075SJonathan Cameron }; 197*357a8075SJonathan Cameron channel@6 { 198*357a8075SJonathan Cameron reg = <6>; 199*357a8075SJonathan Cameron adi,mode = <CH_MODE_GPIO>; 200*357a8075SJonathan Cameron adi,off-state = <CH_OFFSTATE_PULLDOWN>; 201*357a8075SJonathan Cameron }; 202*357a8075SJonathan Cameron }; 203*357a8075SJonathan Cameron }; 204*357a8075SJonathan Cameron... 205