Skip to content

Commit 8cfac6b

Browse files
committed
arm: dts: zynq-zed-adv7511-ad7383-4: new devicetree
Add a new devicetree for the Zedboard with the EVAL-AD7383-4FMCZ evaluation board. This is one of the pseudo-differential chips in the family, so this is a useful example of how to set up the common mode voltage supply that is required only for pseudo-differential chips. Signed-off-by: David Lechner <dlechner@baylibre.com>
1 parent 60b1732 commit 8cfac6b

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Analog Devices AD7383
4+
* https://www.analog.com/media/en/technical-documentation/data-sheets/AD7383-7384.pdf
5+
* https://www.analog.com/media/en/technical-documentation/user-guides/eval-ad7383fmcz-ug-1770.pdf
6+
* https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad738x
7+
* https://wiki.analog.com/resources/eval/user-guides/ad738x
8+
* http://analogdevicesinc.github.io/hdl/projects/ad738x_fmc/index.html
9+
*
10+
* hdl_project: <ad738x_fmc/zed>
11+
* board_revision: <>
12+
*
13+
* Copyright (C) 2025 Analog Devices Inc.
14+
*/
15+
/dts-v1/;
16+
17+
#include <dt-bindings/gpio/gpio.h>
18+
#include <dt-bindings/interrupt-controller/irq.h>
19+
20+
#include "zynq-zed.dtsi"
21+
#include "zynq-zed-adv7511.dtsi"
22+
23+
/ {
24+
eval_u2: eval-board-u2-regulator {
25+
compatible = "regulator-fixed";
26+
regulator-name = "EVAL +3.3V supply (U2)";
27+
regulator-always-on;
28+
};
29+
30+
eval_u3: eval-board-u3-regulator {
31+
compatible = "regulator-fixed";
32+
regulator-name = "EVAL +3.3V supply (U3)";
33+
regulator-min-microvolt = <3300000>;
34+
regulator-max-microvolt = <3300000>;
35+
regulator-always-on;
36+
};
37+
38+
eval_u6: eval-board-u6-regulator {
39+
compatible = "regulator-fixed";
40+
regulator-name = "EVAL +2.3V supply (U6)";
41+
regulator-always-on;
42+
};
43+
44+
trigger_pwm: adc-pwm-trigger {
45+
compatible = "pwm-trigger";
46+
#trigger-source-cells = <0>;
47+
pwms = <&adc_trigger 0 10000 0>;
48+
};
49+
50+
vcm: vcm-regulator {
51+
/*
52+
* External source that supplies common mode voltage for
53+
* negative inputs of the ADC. Assumed to be V_REF / 2.
54+
*/
55+
compatible = "regulator-fixed";
56+
regulator-name = "External VCM supply";
57+
regulator-min-microvolt = <1650000>;
58+
regulator-max-microvolt = <1650000>;
59+
regulator-always-on;
60+
};
61+
};
62+
63+
&fpga_axi {
64+
adc_trigger: pwm@44b00000 {
65+
compatible = "adi,axi-pwmgen-2.00.a";
66+
reg = <0x44b00000 0x1000>;
67+
label = "adc_conversion_trigger";
68+
#pwm-cells = <3>;
69+
clocks = <&clkc 15>, <&spi_clk>;
70+
clock-names = "axi", "ext";
71+
};
72+
73+
spi_clk: clock-controller@44a70000 {
74+
compatible = "adi,axi-clkgen-2.00.a";
75+
reg = <0x44a70000 0x1000>;
76+
#clock-cells = <0>;
77+
clocks = <&clkc 15>, <&clkc 15>;
78+
clock-names = "clkin1", "s_axi_aclk";
79+
clock-output-names = "spi_clk";
80+
assigned-clocks = <&spi_clk>;
81+
assigned-clock-rates = <160000000>;
82+
};
83+
84+
rx_dma: dma-controller@44a30000 {
85+
compatible = "adi,axi-dmac-1.00.a";
86+
reg = <0x44a30000 0x1000>;
87+
#dma-cells = <1>;
88+
interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
89+
clocks = <&clkc 15>;
90+
};
91+
92+
axi_spi_engine_0: spi@44a00000 {
93+
compatible = "adi,axi-spi-engine-1.00.a";
94+
reg = <0x44a00000 0x1000>;
95+
interrupt-parent = <&intc>;
96+
interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
97+
clocks = <&clkc 15>, <&spi_clk>;
98+
clock-names = "s_axi_aclk", "spi_clk";
99+
100+
dmas = <&rx_dma 0>;
101+
dma-names = "offload0-rx";
102+
trigger-sources = <&trigger_pwm>;
103+
104+
#address-cells = <1>;
105+
#size-cells = <0>;
106+
107+
adc@0 {
108+
compatible = "adi,ad7383-4";
109+
reg = <0>;
110+
111+
spi-cpol;
112+
spi-max-frequency = <80000000>;
113+
114+
/*
115+
* ADI tree extension (not mainline). Set this based on
116+
* HDL NUM_OF_SDI compile argument. Can omit if =1.
117+
*/
118+
adi,num-sdi = <4>;
119+
120+
/* Not currently used by the driver. */
121+
// interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
122+
// interrupt-parent = <&gpio0>;
123+
124+
vcc-supply = <&eval_u2>;
125+
vlogic-supply = <&eval_u6>;
126+
refio-supply = <&eval_u3>;
127+
128+
aina-supply = <&vcm>;
129+
ainb-supply = <&vcm>;
130+
ainc-supply = <&vcm>;
131+
aind-supply = <&vcm>;
132+
};
133+
};
134+
};

0 commit comments

Comments
 (0)