Skip to content

Commit 256d23b

Browse files
AndrDragomirdanmois
authored andcommitted
arch: microblaze: boot: dts: Add devicetree for AD9213
Add devicetree for AD9213_EVB. Signed-off-by: AndrDragomir <andrei.dragomir@analog.com> Signed-off-by: George Mois <george.mois@analog.com>
1 parent 2d6dcfb commit 256d23b

File tree

2 files changed

+275
-0
lines changed

2 files changed

+275
-0
lines changed
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
#include <dt-bindings/iio/frequency/hmc7044.h>
3+
4+
&amba_pl {
5+
hmc7044_spi: spi@44a71000 {
6+
#address-cells = <1>;
7+
#size-cells = <0>;
8+
bits-per-word = <8>;
9+
compatible = "xlnx,axi-quad-spi-3.2", "xlnx,xps-spi-2.00.a";
10+
fifo-size = <16>;
11+
interrupt-names = "ip2intc_irpt";
12+
interrupt-parent = <&axi_intc>;
13+
interrupts = <7 0>;
14+
num-cs = <0x2>;
15+
reg = <0x44a71000 0x1000>;
16+
xlnx,num-ss-bits = <0x2>;
17+
xlnx,spi-mode = <0>;
18+
19+
status = "okay";
20+
21+
hmc7044: hmc7044@0 {
22+
reg = <0>;
23+
#address-cells = <1>;
24+
#size-cells = <0>;
25+
#clock-cells = <1>;
26+
compatible = "adi,hmc7044";
27+
spi-max-frequency = <10000000>;
28+
29+
jesd204-device;
30+
#jesd204-cells = <2>;
31+
jesd204-sysref-provider;
32+
adi,jesd204-max-sysref-frequency-hz = <20000000>;
33+
34+
adi,pll1-clkin-frequencies = <0 0 0 125000000>;
35+
adi,vcxo-frequency = <125000000>;
36+
37+
adi,pll1-loop-bandwidth-hz = <200>;
38+
39+
adi,pll2-output-frequency = <2500000000>;
40+
41+
adi,sysref-timer-divider = <1024>;
42+
adi,pulse-generator-mode = <0>;
43+
44+
adi,clkin3-buffer-mode = <0x15>;
45+
adi,oscin-buffer-mode = <0x15>;
46+
47+
adi,gpi-controls = <0x00 0x00 0x00 0x00>;
48+
adi,gpo-controls = <0x1f 0x2b 0x33 0x37>;
49+
50+
adi,oscillator-output-path-enable;
51+
52+
adi,oscillator-output1-driver-enable;
53+
54+
clock-output-names =
55+
"hmc7044_out0", "hmc7044_out1", "hmc7044_out2",
56+
"hmc7044_out3", "hmc7044_out4", "hmc7044_out5",
57+
"hmc7044_out6", "hmc7044_out7", "hmc7044_out8",
58+
"hmc7044_out9", "hmc7044_out10", "hmc7044_out11",
59+
"hmc7044_out12", "hmc7044_out13", "hmc7044_oscout1";
60+
61+
hmc7044_c1: channel@1 {
62+
reg = <1>;
63+
adi,extended-name = "ADC_SYSREF";
64+
adi,divider = <128>;
65+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
66+
adi,jesd204-sysref-chan;
67+
};
68+
hmc7044_c3: channel@3 {
69+
reg = <3>;
70+
adi,extended-name = "FMC_SYSREF";
71+
adi,divider = <128>;
72+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
73+
adi,jesd204-sysref-chan;
74+
};
75+
hmc7044_c4: channel@4 {
76+
reg = <4>;
77+
adi,extended-name = "CLKOUT_MMCX";
78+
adi,divider = <8>;
79+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
80+
};
81+
hmc7044_c5: channel@5 {
82+
reg = <5>;
83+
adi,extended-name = "FMC_CLK_COPY";
84+
adi,divider = <8>;
85+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
86+
};
87+
hmc7044_c7: channel@7 {
88+
reg = <7>;
89+
adi,extended-name = "FMC_REFCLK";
90+
adi,divider = <4>;
91+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
92+
};
93+
hmc7044_c9: channel@9 {
94+
reg = <9>;
95+
adi,extended-name = "FMC_REFCLK_COPY";
96+
adi,divider = <4>;
97+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
98+
};
99+
hmc7044_c11: channel@11 {
100+
reg = <11>;
101+
adi,extended-name = "CORE_CLK";
102+
adi,divider = <8>;
103+
adi,driver-mode = <HMC7044_DRIVER_MODE_LVDS>;
104+
};
105+
hmc7044_c14: channel@14 {
106+
reg = <14>;
107+
adi,extended-name = "ADF_CLK";
108+
adi,divider = <1>;
109+
adi,driver-mode = <HMC7044_DRIVER_MODE_CMOS>;
110+
adi,driver-impedance-mode = <HMC7044_DRIVER_IMPEDANCE_100_OHM>;
111+
};
112+
};
113+
114+
adf4371: adf4371@1 {
115+
compatible = "adi,adf4371";
116+
reg = <1>;
117+
118+
#address-cells = <1>;
119+
#clock-cells = <1>;
120+
#size-cells = <0>;
121+
122+
jesd204-device;
123+
#jesd204-cells = <2>;
124+
jesd204-inputs = <&adc_ad9213 0 0>;
125+
126+
spi-max-frequency = <10000000>;
127+
adi,spi-3wire-enable;
128+
adi,muxout-select = <1>;
129+
clocks = <&hmc7044 14>;
130+
clock-names = "clkin";
131+
clock-output-names = "pll0-clk-rf8", "pll0-clk-rfaux8",
132+
"pll0-clk-rf16", "pll0-clk-rf32";
133+
134+
channel@2 {
135+
reg = <2>;
136+
adi,output-enable;
137+
adi,power-up-frequency = /bits/ 64 <10000000000>;
138+
};
139+
};
140+
};
141+
142+
axi_spi: spi@44a70000 {
143+
status = "okay";
144+
145+
adc_ad9213: ad9213@0 {
146+
compatible = "adi,ad9213";
147+
reg = <0>;
148+
#address-cells = <1>;
149+
#size-cells = <0>;
150+
spi-max-frequency = <10000000>;
151+
152+
jesd204-device;
153+
#jesd204-cells = <2>;
154+
jesd204-top-device = <0>; /* This is the TOP device */
155+
jesd204-link-ids = <0>;
156+
jesd204-inputs = <&axi_ad9213_jesd_rx 0 0>;
157+
158+
adi,adc-frequency-hz = /bits/ 64 <10000000000>;
159+
adi,octets-per-frame = <2>;
160+
adi,frames-per-multiframe = <32>;
161+
adi,converter-resolution = <16>;
162+
adi,bits-per-sample = <16>;
163+
adi,converters-per-device = <1>;
164+
adi,control-bits-per-sample = <0>;
165+
adi,lanes-per-device = <16>;
166+
adi,subclass = <1>;
167+
168+
io-backends = <&iio_backend>;
169+
};
170+
};
171+
};
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Analog Devices AD9213 ANALOG-TO-DIGITAL CONVERTER
4+
*
5+
* hdl_project: <ad9213_evb/vcu118>
6+
* board_revision: <>
7+
*
8+
* Copyright (C) 2023 Analog Devices Inc.
9+
*/
10+
11+
/dts-v1/;
12+
13+
#include "vcu118.dtsi"
14+
#include <dt-bindings/jesd204/adxcvr.h>
15+
16+
#define fmc_i2c fmcp_hspc_iic
17+
#define fmc_spi axi_spi
18+
19+
/ {
20+
model = "Analog Devices AD9213-EVB @Xilinx/vcu118";
21+
};
22+
23+
&axi_intc {
24+
xlnx,kind-of-intr = <0xffffc5f0>;
25+
};
26+
27+
&amba_pl {
28+
29+
rx_dma: rx-dmac@7c420000 {
30+
#dma-cells = <1>;
31+
compatible = "adi,axi-dmac-1.00.a";
32+
reg = <0x7c420000 0x1000>;
33+
#clock-cells = <0>;
34+
interrupt-parent = <&axi_intc>;
35+
interrupts = <12 2>;
36+
clocks = <&clk_bus_0>;
37+
38+
adi,channels {
39+
#size-cells = <0>;
40+
#address-cells = <1>;
41+
42+
dma-channel@0 {
43+
reg = <0>;
44+
adi,source-bus-width = <512>;
45+
adi,source-bus-type = <1>;
46+
adi,destination-bus-width = <512>;
47+
adi,destination-bus-type = <0>;
48+
};
49+
};
50+
};
51+
52+
axi_ad9213_jesd_rx: axi-jesd204-rx@44a90000 {
53+
compatible = "adi,axi-jesd204-rx-1.0";
54+
interrupt-parent = <&axi_intc>;
55+
interrupts = <13 2>;
56+
reg = <0x44a90000 0x4000>;
57+
clocks = <&clk_bus_0>, <&hmc7044 11>, <&axi_ad9213_adxcvr 1>, <&axi_ad9213_adxcvr 0>;
58+
clock-names = "s_axi_aclk", "device_clk", "link_clk", "lane_clk";
59+
#clock-cells = <0>;
60+
clock-output-names = "jesd_rx_lane_clk";
61+
62+
jesd204-device;
63+
#jesd204-cells = <2>;
64+
jesd204-inputs = <&axi_ad9213_adxcvr 0 0>;
65+
};
66+
67+
axi_ad9213_adxcvr: axi-adxcvr-rx@44a60000 {
68+
#address-cells = <1>;
69+
#size-cells = <0>;
70+
compatible = "adi,axi-adxcvr-1.0";
71+
reg = <0x44a60000 0x10000>;
72+
clocks = <&hmc7044 7>;
73+
clock-names = "conv";
74+
75+
adi,sys-clk-select = <XCVR_QPLL>;
76+
adi,out-clk-select = <XCVR_REFCLK_DIV2>; /* not used */
77+
adi,use-lpm-enable;
78+
79+
#clock-cells = <1>;
80+
clock-output-names = "rx_gt_clk", "rx_out_clk";
81+
82+
jesd204-device;
83+
#jesd204-cells = <2>;
84+
jesd204-inputs = <&hmc7044 0 0>;
85+
};
86+
87+
axi_clk: clock@0 {
88+
compatible = "fixed-clock";
89+
clock-frequency = <100000000>;
90+
clock-output-names = "axi-clk";
91+
#clock-cells = <0>;
92+
};
93+
94+
iio_backend: backend@44a10000{
95+
reg = <0x44a10000 0x2000>;
96+
compatible = "adi,axi-adc-10.0.a";
97+
dmas = <&rx_dma 0>;
98+
dma-names = "rx";
99+
clocks = <&axi_clk>;
100+
spibus-connected = <&adc_ad9213>;
101+
};
102+
};
103+
104+
#include "adi-ad9213-evb.dtsi"

0 commit comments

Comments
 (0)