Skip to content

Commit d6c8a91

Browse files
committed
Merge tag 'zynqmp-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx into next/arm64
arm: Xilinx ZynqMP dt patches for v4.3 - Add SATA, GPIO, CAN, SMMU, USB, SPI, I2C, watchdog and sdhci for zynqmp - Sort nodes in dtsi * tag 'zynqmp-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx: ARM64: zynqmp: Move SPI nodes to the right location ARM64: zynqmp: Move uart and ttcs to the right location ARM64: zynqmp: Enable spi flashes on ep108 ARM64: zynqmp: Add eeprom memories on i2c bus ARM64: zynqmp: Enable sdhci on ep108 ARM64: zynqmp: Enable watchdog on ep108 ARM64: zynqmp: Add DWC3 usb support ARM64: zynqmp: Add SMMU support ARM64: zynqmp: Add CANs node for platform ARM64: zynqmp: Use zynqmp specific compatible string for gpio devicetree: xilinx: zynqmp: add sata node Signed-off-by: Olof Johansson <[email protected]>
2 parents 754d5c7 + f49310d commit d6c8a91

File tree

2 files changed

+241
-81
lines changed

2 files changed

+241
-81
lines changed

arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
};
3333
};
3434

35+
&can0 {
36+
status = "okay";
37+
};
38+
3539
&gem0 {
3640
status = "okay";
3741
phy-handle = <&phy0>;
@@ -42,6 +46,91 @@
4246
};
4347
};
4448

49+
&gpio {
50+
status = "okay";
51+
};
52+
53+
&i2c0 {
54+
status = "okay";
55+
clock-frequency = <400000>;
56+
eeprom@54 {
57+
compatible = "at,24c64";
58+
reg = <0x54>;
59+
};
60+
};
61+
62+
&i2c1 {
63+
status = "okay";
64+
clock-frequency = <400000>;
65+
eeprom@55 {
66+
compatible = "at,24c64";
67+
reg = <0x55>;
68+
};
69+
};
70+
71+
&sata {
72+
status = "okay";
73+
ceva,broken-gen2;
74+
};
75+
76+
&sdhci0 {
77+
status = "okay";
78+
};
79+
80+
&sdhci1 {
81+
status = "okay";
82+
};
83+
84+
&spi0 {
85+
status = "okay";
86+
num-cs = <1>;
87+
spi0_flash0: spi0_flash0@0 {
88+
compatible = "m25p80";
89+
#address-cells = <1>;
90+
#size-cells = <1>;
91+
spi-max-frequency = <50000000>;
92+
reg = <0>;
93+
94+
spi0_flash0@00000000 {
95+
label = "spi0_flash0";
96+
reg = <0x0 0x100000>;
97+
};
98+
};
99+
};
100+
101+
&spi1 {
102+
status = "okay";
103+
num-cs = <1>;
104+
spi1_flash0: spi1_flash0@0 {
105+
compatible = "m25p80";
106+
#address-cells = <1>;
107+
#size-cells = <1>;
108+
spi-max-frequency = <50000000>;
109+
reg = <0>;
110+
111+
spi1_flash0@00000000 {
112+
label = "spi1_flash0";
113+
reg = <0x0 0x100000>;
114+
};
115+
};
116+
};
117+
45118
&uart0 {
46119
status = "okay";
47120
};
121+
122+
&usb0 {
123+
status = "okay";
124+
dr_mode = "peripheral";
125+
maximum-speed = "high-speed";
126+
};
127+
128+
&usb1 {
129+
status = "okay";
130+
dr_mode = "host";
131+
maximum-speed = "high-speed";
132+
};
133+
134+
&watchdog0 {
135+
status = "okay";
136+
};

arch/arm64/boot/dts/xilinx/zynqmp.dtsi

Lines changed: 152 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -96,74 +96,38 @@
9696
#size-cells = <1>;
9797
ranges;
9898

99-
misc_clk: misc_clk {
100-
compatible = "fixed-clock";
101-
#clock-cells = <0>;
102-
clock-frequency = <25000000>;
103-
};
104-
105-
ttc0: timer@ff110000 {
106-
compatible = "cdns,ttc";
107-
status = "disabled";
108-
interrupt-parent = <&gic>;
109-
interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
110-
reg = <0x0 0xff110000 0x1000>;
111-
clocks = <&misc_clk>;
112-
timer-width = <32>;
113-
};
114-
115-
ttc1: timer@ff120000 {
116-
compatible = "cdns,ttc";
117-
status = "disabled";
118-
interrupt-parent = <&gic>;
119-
interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
120-
reg = <0x0 0xff120000 0x1000>;
121-
clocks = <&misc_clk>;
122-
timer-width = <32>;
123-
};
124-
125-
ttc2: timer@ff130000 {
126-
compatible = "cdns,ttc";
127-
status = "disabled";
128-
interrupt-parent = <&gic>;
129-
interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
130-
reg = <0x0 0xff130000 0x1000>;
131-
clocks = <&misc_clk>;
132-
timer-width = <32>;
133-
};
134-
135-
ttc3: timer@ff140000 {
136-
compatible = "cdns,ttc";
99+
can0: can@ff060000 {
100+
compatible = "xlnx,zynq-can-1.0";
137101
status = "disabled";
102+
clocks = <&misc_clk &misc_clk>;
103+
clock-names = "can_clk", "pclk";
104+
reg = <0x0 0xff060000 0x1000>;
105+
interrupts = <0 23 4>;
138106
interrupt-parent = <&gic>;
139-
interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
140-
reg = <0x0 0xff140000 0x1000>;
141-
clocks = <&misc_clk>;
142-
timer-width = <32>;
107+
tx-fifo-depth = <0x40>;
108+
rx-fifo-depth = <0x40>;
143109
};
144110

145-
uart0: serial@ff000000 {
146-
compatible = "cdns,uart-r1p8";
111+
can1: can@ff070000 {
112+
compatible = "xlnx,zynq-can-1.0";
147113
status = "disabled";
148-
interrupt-parent = <&gic>;
149-
interrupts = <0 21 4>;
150-
reg = <0x0 0xff000000 0x1000>;
151-
clock-names = "uart_clk", "pclk";
152114
clocks = <&misc_clk &misc_clk>;
115+
clock-names = "can_clk", "pclk";
116+
reg = <0x0 0xff070000 0x1000>;
117+
interrupts = <0 24 4>;
118+
interrupt-parent = <&gic>;
119+
tx-fifo-depth = <0x40>;
120+
rx-fifo-depth = <0x40>;
153121
};
154122

155-
uart1: serial@ff010000 {
156-
compatible = "cdns,uart-r1p8";
157-
status = "disabled";
158-
interrupt-parent = <&gic>;
159-
interrupts = <0 22 4>;
160-
reg = <0x0 0xff010000 0x1000>;
161-
clock-names = "uart_clk", "pclk";
162-
clocks = <&misc_clk &misc_clk>;
123+
misc_clk: misc_clk {
124+
compatible = "fixed-clock";
125+
#clock-cells = <0>;
126+
clock-frequency = <25000000>;
163127
};
164128

165129
gpio: gpio@ff0a0000 {
166-
compatible = "xlnx,zynq-gpio-1.0";
130+
compatible = "xlnx,zynqmp-gpio-1.0";
167131
status = "disabled";
168132
#gpio-cells = <0x2>;
169133
clocks = <&misc_clk>;
@@ -220,30 +184,6 @@
220184
#size-cells = <0>;
221185
};
222186

223-
spi0: spi@ff040000 {
224-
compatible = "cdns,spi-r1p6";
225-
status = "disabled";
226-
interrupt-parent = <&gic>;
227-
interrupts = <0 19 4>;
228-
reg = <0x0 0xff040000 0x1000>;
229-
clock-names = "ref_clk", "pclk";
230-
clocks = <&misc_clk &misc_clk>;
231-
#address-cells = <1>;
232-
#size-cells = <0>;
233-
};
234-
235-
spi1: spi@ff050000 {
236-
compatible = "cdns,spi-r1p6";
237-
status = "disabled";
238-
interrupt-parent = <&gic>;
239-
interrupts = <0 20 4>;
240-
reg = <0x0 0xff050000 0x1000>;
241-
clock-names = "ref_clk", "pclk";
242-
clocks = <&misc_clk &misc_clk>;
243-
#address-cells = <1>;
244-
#size-cells = <0>;
245-
};
246-
247187
i2c_clk: i2c_clk {
248188
compatible = "fixed-clock";
249189
#clock-cells = <0x0>;
@@ -272,6 +212,21 @@
272212
#size-cells = <0>;
273213
};
274214

215+
sata_clk: sata_clk {
216+
compatible = "fixed-clock";
217+
#clock-cells = <0>;
218+
clock-frequency = <75000000>;
219+
};
220+
221+
sata: ahci@fd0c0000 {
222+
compatible = "ceva,ahci-1v84";
223+
status = "disabled";
224+
reg = <0x0 0xfd0c0000 0x2000>;
225+
interrupt-parent = <&gic>;
226+
interrupts = <0 133 4>;
227+
clocks = <&sata_clk>;
228+
};
229+
275230
sdhci0: sdhci@ff160000 {
276231
compatible = "arasan,sdhci-8.9a";
277232
status = "disabled";
@@ -292,6 +247,122 @@
292247
clocks = <&misc_clk>, <&misc_clk>;
293248
};
294249

250+
smmu: smmu@fd800000 {
251+
compatible = "arm,mmu-500";
252+
reg = <0x0 0xfd800000 0x20000>;
253+
#global-interrupts = <1>;
254+
interrupt-parent = <&gic>;
255+
interrupts = <0 157 4>,
256+
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
257+
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
258+
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
259+
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>;
260+
};
261+
262+
spi0: spi@ff040000 {
263+
compatible = "cdns,spi-r1p6";
264+
status = "disabled";
265+
interrupt-parent = <&gic>;
266+
interrupts = <0 19 4>;
267+
reg = <0x0 0xff040000 0x1000>;
268+
clock-names = "ref_clk", "pclk";
269+
clocks = <&misc_clk &misc_clk>;
270+
#address-cells = <1>;
271+
#size-cells = <0>;
272+
};
273+
274+
spi1: spi@ff050000 {
275+
compatible = "cdns,spi-r1p6";
276+
status = "disabled";
277+
interrupt-parent = <&gic>;
278+
interrupts = <0 20 4>;
279+
reg = <0x0 0xff050000 0x1000>;
280+
clock-names = "ref_clk", "pclk";
281+
clocks = <&misc_clk &misc_clk>;
282+
#address-cells = <1>;
283+
#size-cells = <0>;
284+
};
285+
286+
ttc0: timer@ff110000 {
287+
compatible = "cdns,ttc";
288+
status = "disabled";
289+
interrupt-parent = <&gic>;
290+
interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
291+
reg = <0x0 0xff110000 0x1000>;
292+
clocks = <&misc_clk>;
293+
timer-width = <32>;
294+
};
295+
296+
ttc1: timer@ff120000 {
297+
compatible = "cdns,ttc";
298+
status = "disabled";
299+
interrupt-parent = <&gic>;
300+
interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
301+
reg = <0x0 0xff120000 0x1000>;
302+
clocks = <&misc_clk>;
303+
timer-width = <32>;
304+
};
305+
306+
ttc2: timer@ff130000 {
307+
compatible = "cdns,ttc";
308+
status = "disabled";
309+
interrupt-parent = <&gic>;
310+
interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
311+
reg = <0x0 0xff130000 0x1000>;
312+
clocks = <&misc_clk>;
313+
timer-width = <32>;
314+
};
315+
316+
ttc3: timer@ff140000 {
317+
compatible = "cdns,ttc";
318+
status = "disabled";
319+
interrupt-parent = <&gic>;
320+
interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
321+
reg = <0x0 0xff140000 0x1000>;
322+
clocks = <&misc_clk>;
323+
timer-width = <32>;
324+
};
325+
326+
uart0: serial@ff000000 {
327+
compatible = "cdns,uart-r1p8";
328+
status = "disabled";
329+
interrupt-parent = <&gic>;
330+
interrupts = <0 21 4>;
331+
reg = <0x0 0xff000000 0x1000>;
332+
clock-names = "uart_clk", "pclk";
333+
clocks = <&misc_clk &misc_clk>;
334+
};
335+
336+
uart1: serial@ff010000 {
337+
compatible = "cdns,uart-r1p8";
338+
status = "disabled";
339+
interrupt-parent = <&gic>;
340+
interrupts = <0 22 4>;
341+
reg = <0x0 0xff010000 0x1000>;
342+
clock-names = "uart_clk", "pclk";
343+
clocks = <&misc_clk &misc_clk>;
344+
};
345+
346+
usb0: usb@fe200000 {
347+
compatible = "snps,dwc3";
348+
status = "disabled";
349+
interrupt-parent = <&gic>;
350+
interrupts = <0 65 4>;
351+
reg = <0x0 0xfe200000 0x40000>;
352+
clock-names = "clk_xin", "clk_ahb";
353+
clocks = <&misc_clk>, <&misc_clk>;
354+
};
355+
356+
usb1: usb@fe300000 {
357+
compatible = "snps,dwc3";
358+
status = "disabled";
359+
interrupt-parent = <&gic>;
360+
interrupts = <0 70 4>;
361+
reg = <0x0 0xfe300000 0x40000>;
362+
clock-names = "clk_xin", "clk_ahb";
363+
clocks = <&misc_clk>, <&misc_clk>;
364+
};
365+
295366
watchdog0: watchdog@fd4d0000 {
296367
compatible = "cdns,wdt-r1p2";
297368
status = "disabled";

0 commit comments

Comments
 (0)