Skip to content

Commit 697f646

Browse files
authored
Merge pull request torvalds#112 from analogdevicesinc/add-adrv9009-talise-support
Add adrv9009 talise support
2 parents 2ee22a9 + 00ec46d commit 697f646

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+39622
-1
lines changed

arch/arm/boot/dts/adi-adrv9009.dtsi

Lines changed: 460 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 307 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,307 @@
1+
/dts-v1/;
2+
3+
/include/ "zynq-zc706.dtsi"
4+
/include/ "zynq-zc706-adv7511.dtsi"
5+
6+
7+
8+
&i2c_mux {
9+
i2c@5 { /* HPC IIC */
10+
#address-cells = <1>;
11+
#size-cells = <0>;
12+
reg = <5>;
13+
14+
eeprom@50 {
15+
compatible = "at24,24c02";
16+
reg = <0x50>;
17+
};
18+
19+
eeprom@54 {
20+
compatible = "at24,24c02";
21+
reg = <0x54>;
22+
};
23+
24+
ad7291@2f {
25+
compatible = "adi,ad7291";
26+
reg = <0x2f>;
27+
};
28+
};
29+
};
30+
31+
&fpga_axi {
32+
rx_dma: rx-dmac@7c400000 {
33+
compatible = "adi,axi-dmac-1.00.a";
34+
reg = <0x7c400000 0x10000>;
35+
#dma-cells = <1>;
36+
interrupts = <0 57 0>;
37+
clocks = <&clkc 16>;
38+
39+
adi,channels {
40+
#size-cells = <0>;
41+
#address-cells = <1>;
42+
43+
dma-channel@0 {
44+
reg = <0>;
45+
adi,source-bus-width = <64>;
46+
adi,source-bus-type = <2>;
47+
adi,destination-bus-width = <64>;
48+
adi,destination-bus-type = <0>;
49+
};
50+
};
51+
};
52+
53+
rx_obs_dma: rx-obs-dmac@7c440000 {
54+
compatible = "adi,axi-dmac-1.00.a";
55+
reg = <0x7c440000 0x10000>;
56+
#dma-cells = <1>;
57+
interrupts = <0 55 0>;
58+
clocks = <&clkc 16>;
59+
60+
adi,channels {
61+
#size-cells = <0>;
62+
#address-cells = <1>;
63+
64+
dma-channel@0 {
65+
reg = <0>;
66+
adi,source-bus-width = <64>;
67+
adi,source-bus-type = <2>;
68+
adi,destination-bus-width = <64>;
69+
adi,destination-bus-type = <0>;
70+
};
71+
};
72+
};
73+
74+
tx_dma: tx-dmac@7c420000 {
75+
compatible = "adi,axi-dmac-1.00.a";
76+
reg = <0x7c420000 0x10000>;
77+
#dma-cells = <1>;
78+
interrupts = <0 56 0>;
79+
clocks = <&clkc 16>;
80+
81+
adi,channels {
82+
#size-cells = <0>;
83+
#address-cells = <1>;
84+
85+
dma-channel@0 {
86+
reg = <0>;
87+
adi,source-bus-width = <128>;
88+
adi,source-bus-type = <0>;
89+
adi,destination-bus-width = <128>;
90+
adi,destination-bus-type = <2>;
91+
adi,cyclic;
92+
};
93+
};
94+
};
95+
96+
axi_adrv9009_core_rx: axi-adrv9009-rx-hpc@44a00000 {
97+
compatible = "adi,axi-adrv9009-rx-1.0";
98+
reg = <0x44a00000 0x8000>;
99+
dmas = <&rx_dma 0>;
100+
dma-names = "rx";
101+
spibus-connected = <&trx0_adrv9009>;
102+
};
103+
104+
axi_adrv9009_core_rx_obs: axi-adrv9009-rx-obs-hpc@44a08000 {
105+
compatible = "adi,axi-adrv9009-obs-1.0";
106+
reg = <0x44a08000 0x1000>;
107+
dmas = <&rx_obs_dma 0>;
108+
dma-names = "rx";
109+
clocks = <&trx0_adrv9009 1>;
110+
clock-names = "sampl_clk";
111+
};
112+
113+
axi_adrv9009_core_tx: axi-adrv9009-tx-hpc@44a04000 {
114+
compatible = "adi,axi-adrv9009-tx-1.0";
115+
reg = <0x44a04000 0x4000>;
116+
dmas = <&tx_dma 0>;
117+
dma-names = "tx";
118+
clocks = <&trx0_adrv9009 2>;
119+
clock-names = "sampl_clk";
120+
spibus-connected = <&trx0_adrv9009>;
121+
adi,axi-pl-fifo-enable;
122+
};
123+
124+
axi_adrv9009_rx_jesd: axi-jesd204-rx@44aa0000 {
125+
compatible = "adi,axi-jesd204-rx-1.0";
126+
reg = <0x44aa0000 0x1000>;
127+
128+
interrupts = <0 54 0>;
129+
130+
clocks = <&clkc 16>, <&axi_rx_clkgen>, <&axi_adrv9009_adxcvr_rx 0>;
131+
clock-names = "s_axi_aclk", "device_clk", "lane_clk";
132+
133+
#clock-cells = <0>;
134+
clock-output-names = "jesd_rx_lane_clk";
135+
136+
adi,octets-per-frame = <4>;
137+
adi,frames-per-multiframe = <32>;
138+
};
139+
140+
axi_adrv9009_tx_jesd: axi-jesd204-tx@44a90000 {
141+
compatible = "adi,axi-jesd204-tx-1.0";
142+
reg = <0x44a90000 0x1000>;
143+
144+
interrupts = <0 53 0>;
145+
146+
clocks = <&clkc 16>, <&axi_tx_clkgen>, <&axi_adrv9009_adxcvr_tx 0>;
147+
clock-names = "s_axi_aclk", "device_clk", "lane_clk";
148+
149+
#clock-cells = <0>;
150+
clock-output-names = "jesd_tx_lane_clk";
151+
152+
adi,octets-per-frame = <2>;
153+
adi,frames-per-multiframe = <32>;
154+
adi,converter-resolution = <16>;
155+
adi,bits-per-sample = <16>;
156+
adi,converters-per-device = <4>;
157+
adi,control-bits-per-sample = <0>;
158+
};
159+
160+
axi_adrv9009_rx_os_jesd: axi-jesd204-rx@44ab0000 {
161+
compatible = "adi,axi-jesd204-rx-1.0";
162+
reg = <0x44ab0000 0x1000>;
163+
164+
interrupts = <0 52 0>;
165+
166+
clocks = <&clkc 16>, <&axi_rx_os_clkgen>, <&axi_adrv9009_adxcvr_rx_os 0>;
167+
clock-names = "s_axi_aclk", "device_clk", "lane_clk";
168+
169+
#clock-cells = <0>;
170+
clock-output-names = "jesd_rx_os_lane_clk";
171+
172+
adi,octets-per-frame = <2>;
173+
adi,frames-per-multiframe = <32>;
174+
};
175+
176+
axi_tx_clkgen: axi-clkgen@43c00000 {
177+
compatible = "adi,axi-clkgen-2.00.a";
178+
reg = <0x43c00000 0x10000>;
179+
#clock-cells = <0>;
180+
clocks = <&clk0_ad9528 1>;
181+
clock-output-names = "axi_tx_clkgen";
182+
};
183+
184+
axi_rx_clkgen: axi-clkgen@43c10000 {
185+
compatible = "adi,axi-clkgen-2.00.a";
186+
reg = <0x43c10000 0x10000>;
187+
#clock-cells = <0>;
188+
clocks = <&clk0_ad9528 1>;
189+
clock-output-names = "axi_rx_clkgen";
190+
};
191+
192+
axi_rx_os_clkgen: axi-clkgen@43c20000 {
193+
compatible = "adi,axi-clkgen-2.00.a";
194+
reg = <0x43c20000 0x10000>;
195+
#clock-cells = <0>;
196+
clocks = <&clk0_ad9528 1>;
197+
clock-output-names = "axi_rx_os_clkgen";
198+
};
199+
200+
axi_adrv9009_adxcvr_rx: axi-adxcvr-rx@44a60000 {
201+
#address-cells = <1>;
202+
#size-cells = <0>;
203+
compatible = "adi,axi-adxcvr-1.0";
204+
reg = <0x44a60000 0x1000>;
205+
206+
clocks = <&clk0_ad9528 1>, <&axi_rx_clkgen 0>;
207+
clock-names = "conv", "div40";
208+
209+
#clock-cells = <1>;
210+
clock-output-names = "rx_gt_clk", "rx_out_clk";
211+
212+
adi,sys-clk-select = <0>;
213+
adi,out-clk-select = <3>;
214+
adi,use-lpm-enable;
215+
adi,use-cpll-enable;
216+
};
217+
218+
axi_adrv9009_adxcvr_rx_os: axi-adxcvr-rx-os@44a50000 {
219+
#address-cells = <1>;
220+
#size-cells = <0>;
221+
compatible = "adi,axi-adxcvr-1.0";
222+
reg = <0x44a50000 0x1000>;
223+
224+
clocks = <&clk0_ad9528 1>, <&axi_rx_os_clkgen>;
225+
clock-names = "conv", "div40";
226+
227+
#clock-cells = <1>;
228+
clock-output-names = "rx_os_gt_clk", "rx_os_out_clk";
229+
230+
adi,sys-clk-select = <0>;
231+
adi,out-clk-select = <3>;
232+
adi,use-lpm-enable;
233+
adi,use-cpll-enable;
234+
};
235+
236+
axi_adrv9009_adxcvr_tx: axi-adxcvr-tx@44a80000 {
237+
#address-cells = <1>;
238+
#size-cells = <0>;
239+
compatible = "adi,axi-adxcvr-1.0";
240+
reg = <0x44a80000 0x1000>;
241+
242+
clocks = <&clk0_ad9528 1>, <&axi_tx_clkgen>;
243+
clock-names = "conv", "div40";
244+
245+
#clock-cells = <1>;
246+
clock-output-names = "tx_gt_clk", "tx_out_clk";
247+
248+
adi,sys-clk-select = <3>;
249+
adi,out-clk-select = <3>;
250+
};
251+
};
252+
253+
&spi0 {
254+
status = "okay";
255+
};
256+
257+
#define fmc_spi spi0
258+
259+
#include "adi-adrv9009.dtsi"
260+
261+
// adrv9009_dac_fifo_bypass_s 60
262+
// ad9528_reset_b, // 59
263+
// ad9528_sysref_req, // 58
264+
// adrv9009_tx1_enable, // 57
265+
// adrv9009_tx2_enable, // 56
266+
// adrv9009_rx1_enable, // 55
267+
// adrv9009_rx2_enable, // 54
268+
// adrv9009_test, // 53
269+
// adrv9009_reset_b, // 52
270+
// adrv9009_gpint, // 51
271+
// adrv9009_gpio_00, // 50
272+
// adrv9009_gpio_01, // 49
273+
// adrv9009_gpio_02, // 48
274+
// adrv9009_gpio_03, // 47
275+
// adrv9009_gpio_04, // 46
276+
// adrv9009_gpio_05, // 45
277+
// adrv9009_gpio_06, // 44
278+
// adrv9009_gpio_07, // 43
279+
// adrv9009_gpio_15, // 42
280+
// adrv9009_gpio_08, // 41
281+
// adrv9009_gpio_09, // 40
282+
// adrv9009_gpio_10, // 39
283+
// adrv9009_gpio_11, // 38
284+
// adrv9009_gpio_12, // 37
285+
// adrv9009_gpio_14, // 36
286+
// adrv9009_gpio_13, // 35
287+
// adrv9009_gpio_17, // 34
288+
// adrv9009_gpio_16, // 33
289+
// adrv9009_gpio_18})); // 32 + 54
290+
291+
&trx0_adrv9009 {
292+
reset-gpios = <&gpio0 106 0>;
293+
test-gpios = <&gpio0 107 0>;
294+
sysref-req-gpios = <&gpio0 112 0>;
295+
rx2-enable-gpios = <&gpio0 108 0>;
296+
rx1-enable-gpios = <&gpio0 109 0>;
297+
tx2-enable-gpios = <&gpio0 110 0>;
298+
tx1-enable-gpios = <&gpio0 111 0>;
299+
};
300+
301+
&clk0_ad9528 {
302+
reset-gpios = <&gpio0 113 0>;
303+
};
304+
305+
&axi_adrv9009_core_tx {
306+
plddrbypass-gpios = <&gpio0 114 0>;
307+
};

0 commit comments

Comments
 (0)