Skip to content

Commit 96040d1

Browse files
committed
microblaze: dts: vcu118_ad9082: Added default use case
JESD204B: RX mode 18: L=8 M=4 S=1 F=1 NP=16 TX Mode 17: L=8 M=4 S=1 F=1 NP=16 Lane Rate = 15 Gbps Signed-off-by: Bogdan Luncan <bogdan.luncan@analog.com>
1 parent 4b1dff4 commit 96040d1

File tree

1 file changed

+193
-0
lines changed

1 file changed

+193
-0
lines changed
Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Analog Devices AD9082-FMC-EBZ
4+
* https://wiki.analog.com/resources/tools-software/linux-drivers/iio-mxfe/ad9081
5+
* https://wiki.analog.com/resources/eval/user-guides/ad9081_fmca_ebz/ad9081_fmca_ebz_hdl
6+
*
7+
* hdl_project: <ad9082_fmca_ebz/vcu118>
8+
* board_revision: <>
9+
*
10+
* Copyright (C) 2019-2020 Analog Devices Inc.
11+
*/
12+
/dts-v1/;
13+
14+
#include "vcu118.dtsi"
15+
#include <dt-bindings/iio/adc/adi,ad9081.h>
16+
#include <dt-bindings/jesd204/adxcvr.h>
17+
18+
#define fmc_i2c fmcp_hspc_iic
19+
#define fmc_spi axi_spi
20+
21+
/ {
22+
model = "Analog Devices AD9082-FMCA-EBZ @Xilinx/vcu118";
23+
};
24+
25+
/* ad9081_fmca_ebz_vcu118: updated 2019_R2 */
26+
&axi_intc {
27+
xlnx,kind-of-intr = <0xffff05f0>;
28+
};
29+
30+
&axi_ethernet {
31+
local-mac-address = [00 0a 35 00 90 81];
32+
};
33+
34+
&amba_pl {
35+
rx_dma: dma@7c420000 {
36+
compatible = "adi,axi-dmac-1.00.a";
37+
reg = <0x7c420000 0x10000>;
38+
#dma-cells = <1>;
39+
#clock-cells = <0>;
40+
interrupt-parent = <&axi_intc>;
41+
interrupts = <12 2>;
42+
43+
clocks = <&clk_bus_0>;
44+
};
45+
46+
tx_dma: dma@7c430000 {
47+
compatible = "adi,axi-dmac-1.00.a";
48+
reg = <0x7c430000 0x10000>;
49+
#dma-cells = <1>;
50+
#clock-cells = <0>;
51+
interrupt-parent = <&axi_intc>;
52+
interrupts = <13 2>;
53+
clocks = <&clk_bus_0>;
54+
55+
};
56+
57+
axi_ad9081_core_rx: axi-ad9081-rx-hpc@44a10000 {
58+
compatible = "adi,axi-ad9081-rx-1.0";
59+
reg = <0x44a10000 0x8000>;
60+
dmas = <&rx_dma 0>;
61+
dma-names = "rx";
62+
spibus-connected = <&trx0_ad9081>;
63+
64+
jesd204-device;
65+
#jesd204-cells = <2>;
66+
jesd204-inputs = <&axi_ad9081_rx_jesd 0 FRAMER_LINK0_RX>;
67+
};
68+
69+
axi_ad9081_core_tx: axi-ad9081-tx-hpc@44b10000 {
70+
compatible = "adi,axi-ad9081-tx-1.0";
71+
reg = <0x44b10000 0x4000>;
72+
dmas = <&tx_dma 0>;
73+
dma-names = "tx";
74+
clocks = <&trx0_ad9081 1>;
75+
clock-names = "sampl_clk";
76+
spibus-connected = <&trx0_ad9081>;
77+
adi,axi-pl-fifo-enable;
78+
adi,axi-data-offload-connected = <&axi_data_offload_tx>;
79+
80+
jesd204-device;
81+
#jesd204-cells = <2>;
82+
jesd204-inputs = <&axi_ad9081_tx_jesd 0 DEFRAMER_LINK0_TX>;
83+
};
84+
85+
axi_ad9081_rx_jesd: axi-jesd204-rx@44a90000 {
86+
compatible = "adi,axi-jesd204-rx-1.0";
87+
reg = <0x44a90000 0x4000>;
88+
interrupt-parent = <&axi_intc>;
89+
interrupts = <14 2>;
90+
91+
clocks = <&clk_bus_0>, <&axi_ad9081_adxcvr_rx 1>, <&hmc7044 8>, <&axi_ad9081_adxcvr_rx 0>;
92+
clock-names = "s_axi_aclk", "link_clk", "device_clk", "lane_clk";
93+
94+
#clock-cells = <0>;
95+
clock-output-names = "jesd_rx_lane_clk";
96+
97+
jesd204-device;
98+
#jesd204-cells = <2>;
99+
jesd204-inputs = <&axi_ad9081_adxcvr_rx 0 FRAMER_LINK0_RX>;
100+
};
101+
102+
axi_ad9081_tx_jesd: axi-jesd204-tx@44b90000 {
103+
compatible = "adi,axi-jesd204-tx-1.0";
104+
reg = <0x44b90000 0x4000>;
105+
106+
interrupt-parent = <&axi_intc>;
107+
interrupts = <15 2>;
108+
109+
clocks = <&clk_bus_0>, <&axi_ad9081_adxcvr_tx 1>, <&hmc7044 6>, <&axi_ad9081_adxcvr_tx 0>;
110+
clock-names = "s_axi_aclk", "link_clk", "device_clk", "lane_clk";
111+
112+
#clock-cells = <0>;
113+
clock-output-names = "jesd_tx_lane_clk";
114+
115+
jesd204-device;
116+
#jesd204-cells = <2>;
117+
jesd204-inputs = <&axi_ad9081_adxcvr_tx 0 DEFRAMER_LINK0_TX>;
118+
};
119+
120+
axi_ad9081_adxcvr_rx: axi-adxcvr-rx@44a60000 {
121+
#address-cells = <1>;
122+
#size-cells = <0>;
123+
compatible = "adi,axi-adxcvr-1.0";
124+
reg = <0x44a60000 0x1000>;
125+
126+
clocks = <&hmc7044 12>; /* div40 is controlled by axi_ad9081_rx_jesd */
127+
clock-names = "conv";
128+
129+
#clock-cells = <1>;
130+
clock-output-names = "rx_gt_clk", "rx_out_clk";
131+
132+
adi,sys-clk-select = <XCVR_QPLL>;
133+
adi,out-clk-select = <XCVR_REFCLK_DIV2>;
134+
adi,use-lpm-enable;
135+
136+
jesd204-device;
137+
#jesd204-cells = <2>;
138+
jesd204-inputs = <&hmc7044 0 FRAMER_LINK0_RX>;
139+
};
140+
141+
axi_ad9081_adxcvr_tx: axi-adxcvr-tx@44b60000 {
142+
#address-cells = <1>;
143+
#size-cells = <0>;
144+
compatible = "adi,axi-adxcvr-1.0";
145+
reg = <0x44b60000 0x1000>;
146+
147+
clocks = <&hmc7044 12>; /* div40 is controlled by axi_ad9081_tx_jesd */
148+
clock-names = "conv";
149+
150+
#clock-cells = <1>;
151+
clock-output-names = "tx_gt_clk", "tx_out_clk";
152+
153+
adi,sys-clk-select = <XCVR_QPLL>;
154+
adi,out-clk-select = <XCVR_REFCLK_DIV2>;
155+
156+
jesd204-device;
157+
#jesd204-cells = <2>;
158+
jesd204-inputs = <&hmc7044 0 DEFRAMER_LINK0_TX>;
159+
};
160+
161+
axi_sysid_0: axi-sysid-0@45000000 {
162+
compatible = "adi,axi-sysid-1.00.a";
163+
reg = <0x45000000 0x10000>;
164+
};
165+
166+
axi_data_offload_rx: data_offload_rx@7c450000 {
167+
compatible = "adi,axi-data-offload-1.0.a";
168+
reg = <0x7c450000 0x10000>;
169+
};
170+
171+
axi_data_offload_tx: data_offload_tx@7c440000 {
172+
compatible = "adi,axi-data-offload-1.0.a";
173+
reg = <0x7c440000 0x10000>;
174+
};
175+
};
176+
177+
#include "adi-ad9081-fmc-ebz.dtsi"
178+
179+
&trx0_ad9081 {
180+
compatible = "adi,ad9082";
181+
reset-gpios = <&axi_gpio 55 0>;
182+
irqb0-gpios = <&axi_gpio 52 0>;
183+
irqb1-gpios = <&axi_gpio 53 0>;
184+
sysref-req-gpios = <&axi_gpio 43 0>;
185+
rx2-enable-gpios = <&axi_gpio 57 0>;
186+
rx1-enable-gpios = <&axi_gpio 56 0>;
187+
tx2-enable-gpios = <&axi_gpio 59 0>;
188+
tx1-enable-gpios = <&axi_gpio 58 0>;
189+
};
190+
191+
&axi_ad9081_core_tx {
192+
plddrbypass-gpios = <&axi_gpio 60 0>;
193+
};

0 commit comments

Comments
 (0)