1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2e67e8565SEmmanuel Vadot# Copyright 2020 Analog Devices Inc. 3e67e8565SEmmanuel Vadot%YAML 1.2 4e67e8565SEmmanuel Vadot--- 5e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/iio/dac/adi,ad3552r.yaml# 6e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7e67e8565SEmmanuel Vadot 8e67e8565SEmmanuel Vadottitle: Analog Devices AD2552R DAC device driver 9e67e8565SEmmanuel Vadot 10e67e8565SEmmanuel Vadotmaintainers: 11d5b0e70fSEmmanuel Vadot - Nuno Sá <nuno.sa@analog.com> 12e67e8565SEmmanuel Vadot 13e67e8565SEmmanuel Vadotdescription: | 14e67e8565SEmmanuel Vadot Bindings for the Analog Devices AD3552R DAC device and similar. 15e67e8565SEmmanuel Vadot Datasheet can be found here: 16*0e8011faSEmmanuel Vadot https://www.analog.com/media/en/technical-documentation/data-sheets/ad3541r.pdf 17e67e8565SEmmanuel Vadot https://www.analog.com/media/en/technical-documentation/data-sheets/ad3542r.pdf 18*0e8011faSEmmanuel Vadot https://www.analog.com/media/en/technical-documentation/data-sheets/ad3551r.pdf 19e67e8565SEmmanuel Vadot https://www.analog.com/media/en/technical-documentation/data-sheets/ad3552r.pdf 20e67e8565SEmmanuel Vadot 21e67e8565SEmmanuel Vadotproperties: 22e67e8565SEmmanuel Vadot compatible: 23e67e8565SEmmanuel Vadot enum: 24*0e8011faSEmmanuel Vadot - adi,ad3541r 25e67e8565SEmmanuel Vadot - adi,ad3542r 26*0e8011faSEmmanuel Vadot - adi,ad3551r 27e67e8565SEmmanuel Vadot - adi,ad3552r 28e67e8565SEmmanuel Vadot 29e67e8565SEmmanuel Vadot reg: 30e67e8565SEmmanuel Vadot maxItems: 1 31e67e8565SEmmanuel Vadot 32e67e8565SEmmanuel Vadot spi-max-frequency: 33e67e8565SEmmanuel Vadot maximum: 30000000 34e67e8565SEmmanuel Vadot 35e67e8565SEmmanuel Vadot reset-gpios: 36e67e8565SEmmanuel Vadot maxItems: 1 37e67e8565SEmmanuel Vadot 38e67e8565SEmmanuel Vadot ldac-gpios: 39e67e8565SEmmanuel Vadot description: | 40e67e8565SEmmanuel Vadot LDAC pin to be used as a hardware trigger to update the DAC channels. 41e67e8565SEmmanuel Vadot maxItems: 1 42e67e8565SEmmanuel Vadot 43e67e8565SEmmanuel Vadot vref-supply: 44e67e8565SEmmanuel Vadot description: 45e67e8565SEmmanuel Vadot The regulator to use as an external reference. If it does not exists the 46e67e8565SEmmanuel Vadot internal reference will be used. External reference must be 2.5V 47e67e8565SEmmanuel Vadot 48e67e8565SEmmanuel Vadot adi,vref-out-en: 49e67e8565SEmmanuel Vadot description: Vref I/O driven by internal vref to 2.5V. If not set, Vref pin 50e67e8565SEmmanuel Vadot will be floating. 51e67e8565SEmmanuel Vadot type: boolean 52e67e8565SEmmanuel Vadot 53e67e8565SEmmanuel Vadot adi,sdo-drive-strength: 54e67e8565SEmmanuel Vadot description: | 55e67e8565SEmmanuel Vadot Configure SDIO0 and SDIO1 strength levels: 56e67e8565SEmmanuel Vadot - 0: low SDO drive strength. 57e67e8565SEmmanuel Vadot - 1: medium low SDO drive strength. 58e67e8565SEmmanuel Vadot - 2: medium high SDO drive strength. 59e67e8565SEmmanuel Vadot - 3: high SDO drive strength 60e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 61e67e8565SEmmanuel Vadot enum: [0, 1, 2, 3] 62e67e8565SEmmanuel Vadot 63e67e8565SEmmanuel Vadot '#address-cells': 64e67e8565SEmmanuel Vadot const: 1 65e67e8565SEmmanuel Vadot 66e67e8565SEmmanuel Vadot '#size-cells': 67e67e8565SEmmanuel Vadot const: 0 68e67e8565SEmmanuel Vadot 69e67e8565SEmmanuel VadotpatternProperties: 70e67e8565SEmmanuel Vadot "^channel@([0-1])$": 71e67e8565SEmmanuel Vadot type: object 72e67e8565SEmmanuel Vadot description: Configurations of the DAC Channels 73e67e8565SEmmanuel Vadot 74e67e8565SEmmanuel Vadot additionalProperties: false 75e67e8565SEmmanuel Vadot 76e67e8565SEmmanuel Vadot properties: 77e67e8565SEmmanuel Vadot reg: 78e67e8565SEmmanuel Vadot description: Channel number 79e67e8565SEmmanuel Vadot enum: [0, 1] 80e67e8565SEmmanuel Vadot 81e67e8565SEmmanuel Vadot adi,output-range-microvolt: true 82e67e8565SEmmanuel Vadot 83e67e8565SEmmanuel Vadot custom-output-range-config: 84e67e8565SEmmanuel Vadot type: object 857ef62cebSEmmanuel Vadot additionalProperties: false 86e67e8565SEmmanuel Vadot description: Configuration of custom range when 87e67e8565SEmmanuel Vadot adi,output-range-microvolt is not present. 88e67e8565SEmmanuel Vadot The formulas for calculation the output voltages are 89e67e8565SEmmanuel Vadot Vout_fs = 2.5 + [(GainN + Offset/1024) * 2.5 * Rfbx * 1.03] 90e67e8565SEmmanuel Vadot Vout_zs = 2.5 - [(GainP + Offset/1024) * 2.5 * Rfbx * 1.03] 91e67e8565SEmmanuel Vadot 92e67e8565SEmmanuel Vadot properties: 93e67e8565SEmmanuel Vadot adi,gain-offset: 94e67e8565SEmmanuel Vadot description: Gain offset used in the above formula 95e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/int32 96e67e8565SEmmanuel Vadot maximum: 511 97e67e8565SEmmanuel Vadot minimum: -511 98e67e8565SEmmanuel Vadot 99*0e8011faSEmmanuel Vadot adi,gain-scaling-p: 100*0e8011faSEmmanuel Vadot description: GainP = 1 / ( 2 ^ adi,gain-scaling-p) 101e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 102e67e8565SEmmanuel Vadot enum: [0, 1, 2, 3] 103e67e8565SEmmanuel Vadot 104*0e8011faSEmmanuel Vadot adi,gain-scaling-n: 105*0e8011faSEmmanuel Vadot description: GainN = 1 / ( 2 ^ adi,gain-scaling-n) 106e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 107e67e8565SEmmanuel Vadot enum: [0, 1, 2, 3] 108e67e8565SEmmanuel Vadot 109e67e8565SEmmanuel Vadot adi,rfb-ohms: 110e67e8565SEmmanuel Vadot description: Feedback Resistor 111e67e8565SEmmanuel Vadot 112e67e8565SEmmanuel Vadot required: 113e67e8565SEmmanuel Vadot - adi,gain-offset 114*0e8011faSEmmanuel Vadot - adi,gain-scaling-p 115*0e8011faSEmmanuel Vadot - adi,gain-scaling-n 116e67e8565SEmmanuel Vadot - adi,rfb-ohms 117e67e8565SEmmanuel Vadot 118e67e8565SEmmanuel Vadot required: 119e67e8565SEmmanuel Vadot - reg 120e67e8565SEmmanuel Vadot 121e67e8565SEmmanuel Vadot oneOf: 122e67e8565SEmmanuel Vadot # If adi,output-range-microvolt is missing, 123e67e8565SEmmanuel Vadot # custom-output-range-config must be used 124e67e8565SEmmanuel Vadot - required: 125e67e8565SEmmanuel Vadot - adi,output-range-microvolt 126e67e8565SEmmanuel Vadot 127e67e8565SEmmanuel Vadot - required: 128e67e8565SEmmanuel Vadot - custom-output-range-config 129e67e8565SEmmanuel Vadot 130e67e8565SEmmanuel VadotallOf: 131e67e8565SEmmanuel Vadot - if: 132e67e8565SEmmanuel Vadot properties: 133e67e8565SEmmanuel Vadot compatible: 134e67e8565SEmmanuel Vadot contains: 135*0e8011faSEmmanuel Vadot enum: 136*0e8011faSEmmanuel Vadot - adi,ad3541r 137*0e8011faSEmmanuel Vadot - adi,ad3542r 138e67e8565SEmmanuel Vadot then: 139e67e8565SEmmanuel Vadot patternProperties: 140e67e8565SEmmanuel Vadot "^channel@([0-1])$": 141e67e8565SEmmanuel Vadot type: object 142e67e8565SEmmanuel Vadot properties: 143e67e8565SEmmanuel Vadot adi,output-range-microvolt: 144e67e8565SEmmanuel Vadot description: | 145e67e8565SEmmanuel Vadot Voltage output range of the channel as <minimum, maximum> 146e67e8565SEmmanuel Vadot Required connections: 147e67e8565SEmmanuel Vadot Rfb1x for: 0 to 2.5 V; 0 to 3V; 0 to 5 V; 1487d0873ebSEmmanuel Vadot Rfb2x for: 0 to 10 V; -2.5 to 7.5V; -5 to 5 V; 149e67e8565SEmmanuel Vadot oneOf: 150e67e8565SEmmanuel Vadot - items: 151e67e8565SEmmanuel Vadot - const: 0 152e67e8565SEmmanuel Vadot - enum: [2500000, 3000000, 5000000, 10000000] 153e67e8565SEmmanuel Vadot - items: 154e67e8565SEmmanuel Vadot - const: -2500000 155e67e8565SEmmanuel Vadot - const: 7500000 156e67e8565SEmmanuel Vadot - items: 157e67e8565SEmmanuel Vadot - const: -5000000 158e67e8565SEmmanuel Vadot - const: 5000000 159e67e8565SEmmanuel Vadot 160e67e8565SEmmanuel Vadot required: 161e67e8565SEmmanuel Vadot - adi,output-range-microvolt 162e67e8565SEmmanuel Vadot 163e67e8565SEmmanuel Vadot - if: 164e67e8565SEmmanuel Vadot properties: 165e67e8565SEmmanuel Vadot compatible: 166e67e8565SEmmanuel Vadot contains: 167*0e8011faSEmmanuel Vadot enum: 168*0e8011faSEmmanuel Vadot - adi,ad3551r 169*0e8011faSEmmanuel Vadot - adi,ad3552r 170e67e8565SEmmanuel Vadot then: 171e67e8565SEmmanuel Vadot patternProperties: 172e67e8565SEmmanuel Vadot "^channel@([0-1])$": 173e67e8565SEmmanuel Vadot type: object 174e67e8565SEmmanuel Vadot properties: 175e67e8565SEmmanuel Vadot adi,output-range-microvolt: 176e67e8565SEmmanuel Vadot description: | 177e67e8565SEmmanuel Vadot Voltage output range of the channel as <minimum, maximum> 178e67e8565SEmmanuel Vadot Required connections: 179e67e8565SEmmanuel Vadot Rfb1x for: 0 to 2.5 V; 0 to 5 V; 180e67e8565SEmmanuel Vadot Rfb2x for: 0 to 10 V; -5 to 5 V; 181e67e8565SEmmanuel Vadot Rfb4x for: -10 to 10V 182e67e8565SEmmanuel Vadot oneOf: 183e67e8565SEmmanuel Vadot - items: 184e67e8565SEmmanuel Vadot - const: 0 185e67e8565SEmmanuel Vadot - enum: [2500000, 5000000, 10000000] 186e67e8565SEmmanuel Vadot - items: 187e67e8565SEmmanuel Vadot - const: -5000000 188e67e8565SEmmanuel Vadot - const: 5000000 189e67e8565SEmmanuel Vadot - items: 190e67e8565SEmmanuel Vadot - const: -10000000 191e67e8565SEmmanuel Vadot - const: 10000000 192e67e8565SEmmanuel Vadot 193*0e8011faSEmmanuel Vadot - if: 194*0e8011faSEmmanuel Vadot properties: 195*0e8011faSEmmanuel Vadot compatible: 196*0e8011faSEmmanuel Vadot contains: 197*0e8011faSEmmanuel Vadot enum: 198*0e8011faSEmmanuel Vadot - adi,ad3541r 199*0e8011faSEmmanuel Vadot - adi,ad3551r 200*0e8011faSEmmanuel Vadot then: 201*0e8011faSEmmanuel Vadot properties: 202*0e8011faSEmmanuel Vadot channel@1: false 203*0e8011faSEmmanuel Vadot channel@0: 204*0e8011faSEmmanuel Vadot properties: 205*0e8011faSEmmanuel Vadot reg: 206*0e8011faSEmmanuel Vadot const: 0 207*0e8011faSEmmanuel Vadot 208e67e8565SEmmanuel Vadotrequired: 209e67e8565SEmmanuel Vadot - compatible 210e67e8565SEmmanuel Vadot - reg 211e67e8565SEmmanuel Vadot - spi-max-frequency 212e67e8565SEmmanuel Vadot 213e67e8565SEmmanuel VadotadditionalProperties: false 214e67e8565SEmmanuel Vadot 215e67e8565SEmmanuel Vadotexamples: 216e67e8565SEmmanuel Vadot - | 217e67e8565SEmmanuel Vadot spi { 218e67e8565SEmmanuel Vadot #address-cells = <1>; 219e67e8565SEmmanuel Vadot #size-cells = <0>; 220e67e8565SEmmanuel Vadot ad3552r@0 { 221e67e8565SEmmanuel Vadot compatible = "adi,ad3552r"; 222e67e8565SEmmanuel Vadot reg = <0>; 223e67e8565SEmmanuel Vadot spi-max-frequency = <20000000>; 224e67e8565SEmmanuel Vadot #address-cells = <1>; 225e67e8565SEmmanuel Vadot #size-cells = <0>; 226e67e8565SEmmanuel Vadot channel@0 { 227e67e8565SEmmanuel Vadot reg = <0>; 228e67e8565SEmmanuel Vadot adi,output-range-microvolt = <0 10000000>; 229e67e8565SEmmanuel Vadot }; 230e67e8565SEmmanuel Vadot channel@1 { 231e67e8565SEmmanuel Vadot reg = <1>; 232e67e8565SEmmanuel Vadot custom-output-range-config { 233e67e8565SEmmanuel Vadot adi,gain-offset = <5>; 234*0e8011faSEmmanuel Vadot adi,gain-scaling-p = <1>; 235*0e8011faSEmmanuel Vadot adi,gain-scaling-n = <2>; 236e67e8565SEmmanuel Vadot adi,rfb-ohms = <1>; 237e67e8565SEmmanuel Vadot }; 238e67e8565SEmmanuel Vadot }; 239e67e8565SEmmanuel Vadot }; 240e67e8565SEmmanuel Vadot }; 241e67e8565SEmmanuel Vadot... 242