1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iio/adc/adi,axi-adc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Analog Devices AXI ADC IP core 8 9maintainers: 10 - Michael Hennerich <michael.hennerich@analog.com> 11 12description: | 13 Analog Devices Generic AXI ADC IP core for interfacing an ADC device 14 with a high speed serial (JESD204B/C) or source synchronous parallel 15 interface (LVDS/CMOS). 16 Usually, some other interface type (i.e SPI) is used as a control 17 interface for the actual ADC, while this IP core will interface 18 to the data-lines of the ADC and handle the streaming of data into 19 memory via DMA. 20 In some cases, the AXI ADC interface is used to perform specialized 21 operation to a particular ADC, e.g access the physical bus through 22 specific registers to write ADC registers. 23 In this case, we use a different compatible which indicates the target 24 IP core's name. 25 The following IP is currently supported: 26 - AXI AD7606x: specialized version of the IP core for all the chips from 27 the ad7606 family. 28 29 https://wiki.analog.com/resources/fpga/docs/axi_adc_ip 30 https://analogdevicesinc.github.io/hdl/library/axi_ad485x/index.html 31 http://analogdevicesinc.github.io/hdl/library/axi_ad7606x/index.html 32 33properties: 34 compatible: 35 enum: 36 - adi,axi-adc-10.0.a 37 - adi,axi-ad7606x 38 - adi,axi-ad485x 39 40 reg: 41 maxItems: 1 42 43 clocks: 44 maxItems: 1 45 46 dmas: 47 maxItems: 1 48 49 dma-names: 50 items: 51 - const: rx 52 53 adi,adc-dev: 54 $ref: /schemas/types.yaml#/definitions/phandle 55 description: 56 A reference to a the actual ADC to which this FPGA ADC interfaces to. 57 deprecated: true 58 59 '#io-backend-cells': 60 const: 0 61 62 '#address-cells': 63 const: 1 64 65 '#size-cells': 66 const: 0 67 68patternProperties: 69 "^adc@[0-9a-f]+$": 70 type: object 71 properties: 72 reg: 73 maxItems: 1 74 additionalProperties: true 75 required: 76 - compatible 77 - reg 78 79required: 80 - compatible 81 - dmas 82 - reg 83 - clocks 84 85allOf: 86 - if: 87 properties: 88 compatible: 89 not: 90 contains: 91 const: adi,axi-ad7606x 92 then: 93 properties: 94 '#address-cells': false 95 '#size-cells': false 96 patternProperties: 97 "^adc@[0-9a-f]+$": false 98 99additionalProperties: false 100 101examples: 102 - | 103 adc@44a00000 { 104 compatible = "adi,axi-adc-10.0.a"; 105 reg = <0x44a00000 0x10000>; 106 dmas = <&rx_dma 0>; 107 dma-names = "rx"; 108 clocks = <&axi_clk>; 109 #io-backend-cells = <0>; 110 }; 111 - | 112 #include <dt-bindings/gpio/gpio.h> 113 parallel_bus_controller@44a00000 { 114 compatible = "adi,axi-ad7606x"; 115 reg = <0x44a00000 0x10000>; 116 dmas = <&rx_dma 0>; 117 dma-names = "rx"; 118 clocks = <&ext_clk>; 119 #address-cells = <1>; 120 #size-cells = <0>; 121 122 adc@0 { 123 compatible = "adi,ad7606b"; 124 reg = <0>; 125 pwms = <&axi_pwm_gen 0 0>; 126 pwm-names = "convst1"; 127 avcc-supply = <&adc_vref>; 128 vdrive-supply = <&vdd_supply>; 129 reset-gpios = <&gpio0 91 GPIO_ACTIVE_HIGH>; 130 standby-gpios = <&gpio0 90 GPIO_ACTIVE_LOW>; 131 adi,range-gpios = <&gpio0 89 GPIO_ACTIVE_HIGH>; 132 adi,oversampling-ratio-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH 133 &gpio0 87 GPIO_ACTIVE_HIGH 134 &gpio0 86 GPIO_ACTIVE_HIGH>; 135 io-backends = <¶llel_bus_controller>; 136 }; 137 }; 138... 139