1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring *  Copyright (C) 2011 - 2014 Xilinx
4*724ba675SRob Herring *  Copyright (C) 2012 National Instruments Corp.
5*724ba675SRob Herring */
6*724ba675SRob Herring/dts-v1/;
7*724ba675SRob Herring#include "zynq-7000.dtsi"
8*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
9*724ba675SRob Herring
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	model = "Xilinx ZC702 board";
12*724ba675SRob Herring	compatible = "xlnx,zynq-zc702", "xlnx,zynq-7000";
13*724ba675SRob Herring
14*724ba675SRob Herring	aliases {
15*724ba675SRob Herring		ethernet0 = &gem0;
16*724ba675SRob Herring		i2c0 = &i2c0;
17*724ba675SRob Herring		serial0 = &uart1;
18*724ba675SRob Herring		mmc0 = &sdhci0;
19*724ba675SRob Herring	};
20*724ba675SRob Herring
21*724ba675SRob Herring	memory@0 {
22*724ba675SRob Herring		device_type = "memory";
23*724ba675SRob Herring		reg = <0x0 0x40000000>;
24*724ba675SRob Herring	};
25*724ba675SRob Herring
26*724ba675SRob Herring	chosen {
27*724ba675SRob Herring		bootargs = "";
28*724ba675SRob Herring		stdout-path = "serial0:115200n8";
29*724ba675SRob Herring	};
30*724ba675SRob Herring
31*724ba675SRob Herring	gpio-keys {
32*724ba675SRob Herring		compatible = "gpio-keys";
33*724ba675SRob Herring		autorepeat;
34*724ba675SRob Herring		switch-14 {
35*724ba675SRob Herring			label = "sw14";
36*724ba675SRob Herring			gpios = <&gpio0 12 0>;
37*724ba675SRob Herring			linux,code = <108>; /* down */
38*724ba675SRob Herring			wakeup-source;
39*724ba675SRob Herring			autorepeat;
40*724ba675SRob Herring		};
41*724ba675SRob Herring		switch-13 {
42*724ba675SRob Herring			label = "sw13";
43*724ba675SRob Herring			gpios = <&gpio0 14 0>;
44*724ba675SRob Herring			linux,code = <103>; /* up */
45*724ba675SRob Herring			wakeup-source;
46*724ba675SRob Herring			autorepeat;
47*724ba675SRob Herring		};
48*724ba675SRob Herring	};
49*724ba675SRob Herring
50*724ba675SRob Herring	leds {
51*724ba675SRob Herring		compatible = "gpio-leds";
52*724ba675SRob Herring
53*724ba675SRob Herring		led-ds23 {
54*724ba675SRob Herring			label = "ds23";
55*724ba675SRob Herring			gpios = <&gpio0 10 0>;
56*724ba675SRob Herring			linux,default-trigger = "heartbeat";
57*724ba675SRob Herring		};
58*724ba675SRob Herring	};
59*724ba675SRob Herring
60*724ba675SRob Herring	usb_phy0: phy0 {
61*724ba675SRob Herring		compatible = "usb-nop-xceiv";
62*724ba675SRob Herring		#phy-cells = <0>;
63*724ba675SRob Herring	};
64*724ba675SRob Herring};
65*724ba675SRob Herring
66*724ba675SRob Herring&amba {
67*724ba675SRob Herring	ocm: sram@fffc0000 {
68*724ba675SRob Herring		compatible = "mmio-sram";
69*724ba675SRob Herring		reg = <0xfffc0000 0x10000>;
70*724ba675SRob Herring		#address-cells = <1>;
71*724ba675SRob Herring		#size-cells = <1>;
72*724ba675SRob Herring		ranges = <0 0xfffc0000 0x10000>;
73*724ba675SRob Herring		ocm-sram@0 {
74*724ba675SRob Herring			reg = <0x0 0x10000>;
75*724ba675SRob Herring		};
76*724ba675SRob Herring	};
77*724ba675SRob Herring};
78*724ba675SRob Herring
79*724ba675SRob Herring&can0 {
80*724ba675SRob Herring	status = "okay";
81*724ba675SRob Herring	pinctrl-names = "default";
82*724ba675SRob Herring	pinctrl-0 = <&pinctrl_can0_default>;
83*724ba675SRob Herring};
84*724ba675SRob Herring
85*724ba675SRob Herring&clkc {
86*724ba675SRob Herring	ps-clk-frequency = <33333333>;
87*724ba675SRob Herring};
88*724ba675SRob Herring
89*724ba675SRob Herring&gem0 {
90*724ba675SRob Herring	status = "okay";
91*724ba675SRob Herring	phy-mode = "rgmii-id";
92*724ba675SRob Herring	phy-handle = <&ethernet_phy>;
93*724ba675SRob Herring	pinctrl-names = "default";
94*724ba675SRob Herring	pinctrl-0 = <&pinctrl_gem0_default>;
95*724ba675SRob Herring
96*724ba675SRob Herring	ethernet_phy: ethernet-phy@7 {
97*724ba675SRob Herring		reg = <7>;
98*724ba675SRob Herring		device_type = "ethernet-phy";
99*724ba675SRob Herring	};
100*724ba675SRob Herring};
101*724ba675SRob Herring
102*724ba675SRob Herring&gpio0 {
103*724ba675SRob Herring	pinctrl-names = "default";
104*724ba675SRob Herring	pinctrl-0 = <&pinctrl_gpio0_default>;
105*724ba675SRob Herring};
106*724ba675SRob Herring
107*724ba675SRob Herring&i2c0 {
108*724ba675SRob Herring	status = "okay";
109*724ba675SRob Herring	clock-frequency = <400000>;
110*724ba675SRob Herring	pinctrl-names = "default", "gpio";
111*724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c0_default>;
112*724ba675SRob Herring	pinctrl-1 = <&pinctrl_i2c0_gpio>;
113*724ba675SRob Herring	scl-gpios = <&gpio0 50 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
114*724ba675SRob Herring	sda-gpios = <&gpio0 51 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
115*724ba675SRob Herring
116*724ba675SRob Herring	i2c-mux@74 {
117*724ba675SRob Herring		compatible = "nxp,pca9548";
118*724ba675SRob Herring		#address-cells = <1>;
119*724ba675SRob Herring		#size-cells = <0>;
120*724ba675SRob Herring		reg = <0x74>;
121*724ba675SRob Herring
122*724ba675SRob Herring		i2c@0 {
123*724ba675SRob Herring			#address-cells = <1>;
124*724ba675SRob Herring			#size-cells = <0>;
125*724ba675SRob Herring			reg = <0>;
126*724ba675SRob Herring			si570: clock-generator@5d {
127*724ba675SRob Herring				#clock-cells = <0>;
128*724ba675SRob Herring				compatible = "silabs,si570";
129*724ba675SRob Herring				temperature-stability = <50>;
130*724ba675SRob Herring				reg = <0x5d>;
131*724ba675SRob Herring				factory-fout = <156250000>;
132*724ba675SRob Herring				clock-frequency = <148500000>;
133*724ba675SRob Herring			};
134*724ba675SRob Herring		};
135*724ba675SRob Herring
136*724ba675SRob Herring		i2c@1 {
137*724ba675SRob Herring			#address-cells = <1>;
138*724ba675SRob Herring			#size-cells = <0>;
139*724ba675SRob Herring			reg = <1>;
140*724ba675SRob Herring			adv7511: hdmi-tx@39 {
141*724ba675SRob Herring				compatible = "adi,adv7511";
142*724ba675SRob Herring				reg = <0x39>;
143*724ba675SRob Herring				adi,input-depth = <8>;
144*724ba675SRob Herring				adi,input-colorspace = "yuv422";
145*724ba675SRob Herring				adi,input-clock = "1x";
146*724ba675SRob Herring				adi,input-style = <3>;
147*724ba675SRob Herring				adi,input-justification = "right";
148*724ba675SRob Herring			};
149*724ba675SRob Herring		};
150*724ba675SRob Herring
151*724ba675SRob Herring		i2c@2 {
152*724ba675SRob Herring			#address-cells = <1>;
153*724ba675SRob Herring			#size-cells = <0>;
154*724ba675SRob Herring			reg = <2>;
155*724ba675SRob Herring			eeprom@54 {
156*724ba675SRob Herring				compatible = "atmel,24c08";
157*724ba675SRob Herring				reg = <0x54>;
158*724ba675SRob Herring			};
159*724ba675SRob Herring		};
160*724ba675SRob Herring
161*724ba675SRob Herring		i2c@3 {
162*724ba675SRob Herring			#address-cells = <1>;
163*724ba675SRob Herring			#size-cells = <0>;
164*724ba675SRob Herring			reg = <3>;
165*724ba675SRob Herring			gpio@21 {
166*724ba675SRob Herring				compatible = "ti,tca6416";
167*724ba675SRob Herring				reg = <0x21>;
168*724ba675SRob Herring				gpio-controller;
169*724ba675SRob Herring				#gpio-cells = <2>;
170*724ba675SRob Herring			};
171*724ba675SRob Herring		};
172*724ba675SRob Herring
173*724ba675SRob Herring		i2c@4 {
174*724ba675SRob Herring			#address-cells = <1>;
175*724ba675SRob Herring			#size-cells = <0>;
176*724ba675SRob Herring			reg = <4>;
177*724ba675SRob Herring			rtc@51 {
178*724ba675SRob Herring				compatible = "nxp,pcf8563";
179*724ba675SRob Herring				reg = <0x51>;
180*724ba675SRob Herring			};
181*724ba675SRob Herring		};
182*724ba675SRob Herring
183*724ba675SRob Herring		i2c@7 {
184*724ba675SRob Herring			#address-cells = <1>;
185*724ba675SRob Herring			#size-cells = <0>;
186*724ba675SRob Herring			reg = <7>;
187*724ba675SRob Herring			hwmon@34 {
188*724ba675SRob Herring				compatible = "ti,ucd9248";
189*724ba675SRob Herring				reg = <0x34>;
190*724ba675SRob Herring			};
191*724ba675SRob Herring			hwmon@35 {
192*724ba675SRob Herring				compatible = "ti,ucd9248";
193*724ba675SRob Herring				reg = <0x35>;
194*724ba675SRob Herring			};
195*724ba675SRob Herring			hwmon@36 {
196*724ba675SRob Herring				compatible = "ti,ucd9248";
197*724ba675SRob Herring				reg = <0x36>;
198*724ba675SRob Herring			};
199*724ba675SRob Herring		};
200*724ba675SRob Herring	};
201*724ba675SRob Herring};
202*724ba675SRob Herring
203*724ba675SRob Herring&pinctrl0 {
204*724ba675SRob Herring	pinctrl_can0_default: can0-default {
205*724ba675SRob Herring		mux {
206*724ba675SRob Herring			function = "can0";
207*724ba675SRob Herring			groups = "can0_9_grp";
208*724ba675SRob Herring		};
209*724ba675SRob Herring
210*724ba675SRob Herring		conf {
211*724ba675SRob Herring			groups = "can0_9_grp";
212*724ba675SRob Herring			slew-rate = <0>;
213*724ba675SRob Herring			io-standard = <1>;
214*724ba675SRob Herring		};
215*724ba675SRob Herring
216*724ba675SRob Herring		conf-rx {
217*724ba675SRob Herring			pins = "MIO46";
218*724ba675SRob Herring			bias-high-impedance;
219*724ba675SRob Herring		};
220*724ba675SRob Herring
221*724ba675SRob Herring		conf-tx {
222*724ba675SRob Herring			pins = "MIO47";
223*724ba675SRob Herring			bias-disable;
224*724ba675SRob Herring		};
225*724ba675SRob Herring	};
226*724ba675SRob Herring
227*724ba675SRob Herring	pinctrl_gem0_default: gem0-default {
228*724ba675SRob Herring		mux {
229*724ba675SRob Herring			function = "ethernet0";
230*724ba675SRob Herring			groups = "ethernet0_0_grp";
231*724ba675SRob Herring		};
232*724ba675SRob Herring
233*724ba675SRob Herring		conf {
234*724ba675SRob Herring			groups = "ethernet0_0_grp";
235*724ba675SRob Herring			slew-rate = <0>;
236*724ba675SRob Herring			io-standard = <4>;
237*724ba675SRob Herring		};
238*724ba675SRob Herring
239*724ba675SRob Herring		conf-rx {
240*724ba675SRob Herring			pins = "MIO22", "MIO23", "MIO24", "MIO25", "MIO26", "MIO27";
241*724ba675SRob Herring			bias-high-impedance;
242*724ba675SRob Herring			low-power-disable;
243*724ba675SRob Herring		};
244*724ba675SRob Herring
245*724ba675SRob Herring		conf-tx {
246*724ba675SRob Herring			pins = "MIO16", "MIO17", "MIO18", "MIO19", "MIO20", "MIO21";
247*724ba675SRob Herring			bias-disable;
248*724ba675SRob Herring			low-power-enable;
249*724ba675SRob Herring		};
250*724ba675SRob Herring
251*724ba675SRob Herring		mux-mdio {
252*724ba675SRob Herring			function = "mdio0";
253*724ba675SRob Herring			groups = "mdio0_0_grp";
254*724ba675SRob Herring		};
255*724ba675SRob Herring
256*724ba675SRob Herring		conf-mdio {
257*724ba675SRob Herring			groups = "mdio0_0_grp";
258*724ba675SRob Herring			slew-rate = <0>;
259*724ba675SRob Herring			io-standard = <1>;
260*724ba675SRob Herring			bias-disable;
261*724ba675SRob Herring		};
262*724ba675SRob Herring	};
263*724ba675SRob Herring
264*724ba675SRob Herring	pinctrl_gpio0_default: gpio0-default {
265*724ba675SRob Herring		mux {
266*724ba675SRob Herring			function = "gpio0";
267*724ba675SRob Herring			groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp",
268*724ba675SRob Herring				 "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp",
269*724ba675SRob Herring				 "gpio0_13_grp", "gpio0_14_grp";
270*724ba675SRob Herring		};
271*724ba675SRob Herring
272*724ba675SRob Herring		conf {
273*724ba675SRob Herring			groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp",
274*724ba675SRob Herring				 "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp",
275*724ba675SRob Herring				 "gpio0_13_grp", "gpio0_14_grp";
276*724ba675SRob Herring			slew-rate = <0>;
277*724ba675SRob Herring			io-standard = <1>;
278*724ba675SRob Herring		};
279*724ba675SRob Herring
280*724ba675SRob Herring		conf-pull-up {
281*724ba675SRob Herring			pins = "MIO9", "MIO10", "MIO11", "MIO12", "MIO13", "MIO14";
282*724ba675SRob Herring			bias-pull-up;
283*724ba675SRob Herring		};
284*724ba675SRob Herring
285*724ba675SRob Herring		conf-pull-none {
286*724ba675SRob Herring			pins = "MIO7", "MIO8";
287*724ba675SRob Herring			bias-disable;
288*724ba675SRob Herring		};
289*724ba675SRob Herring	};
290*724ba675SRob Herring
291*724ba675SRob Herring	pinctrl_i2c0_default: i2c0-default {
292*724ba675SRob Herring		mux {
293*724ba675SRob Herring			groups = "i2c0_10_grp";
294*724ba675SRob Herring			function = "i2c0";
295*724ba675SRob Herring		};
296*724ba675SRob Herring
297*724ba675SRob Herring		conf {
298*724ba675SRob Herring			groups = "i2c0_10_grp";
299*724ba675SRob Herring			bias-pull-up;
300*724ba675SRob Herring			slew-rate = <0>;
301*724ba675SRob Herring			io-standard = <1>;
302*724ba675SRob Herring		};
303*724ba675SRob Herring	};
304*724ba675SRob Herring
305*724ba675SRob Herring	pinctrl_i2c0_gpio: i2c0-gpio {
306*724ba675SRob Herring		mux {
307*724ba675SRob Herring			groups = "gpio0_50_grp", "gpio0_51_grp";
308*724ba675SRob Herring			function = "gpio0";
309*724ba675SRob Herring		};
310*724ba675SRob Herring
311*724ba675SRob Herring		conf {
312*724ba675SRob Herring			groups = "gpio0_50_grp", "gpio0_51_grp";
313*724ba675SRob Herring			slew-rate = <0>;
314*724ba675SRob Herring			io-standard = <1>;
315*724ba675SRob Herring		};
316*724ba675SRob Herring	};
317*724ba675SRob Herring
318*724ba675SRob Herring	pinctrl_sdhci0_default: sdhci0-default {
319*724ba675SRob Herring		mux {
320*724ba675SRob Herring			groups = "sdio0_2_grp";
321*724ba675SRob Herring			function = "sdio0";
322*724ba675SRob Herring		};
323*724ba675SRob Herring
324*724ba675SRob Herring		conf {
325*724ba675SRob Herring			groups = "sdio0_2_grp";
326*724ba675SRob Herring			slew-rate = <0>;
327*724ba675SRob Herring			io-standard = <1>;
328*724ba675SRob Herring			bias-disable;
329*724ba675SRob Herring		};
330*724ba675SRob Herring
331*724ba675SRob Herring		mux-cd {
332*724ba675SRob Herring			groups = "gpio0_0_grp";
333*724ba675SRob Herring			function = "sdio0_cd";
334*724ba675SRob Herring		};
335*724ba675SRob Herring
336*724ba675SRob Herring		conf-cd {
337*724ba675SRob Herring			groups = "gpio0_0_grp";
338*724ba675SRob Herring			bias-high-impedance;
339*724ba675SRob Herring			bias-pull-up;
340*724ba675SRob Herring			slew-rate = <0>;
341*724ba675SRob Herring			io-standard = <1>;
342*724ba675SRob Herring		};
343*724ba675SRob Herring
344*724ba675SRob Herring		mux-wp {
345*724ba675SRob Herring			groups = "gpio0_15_grp";
346*724ba675SRob Herring			function = "sdio0_wp";
347*724ba675SRob Herring		};
348*724ba675SRob Herring
349*724ba675SRob Herring		conf-wp {
350*724ba675SRob Herring			groups = "gpio0_15_grp";
351*724ba675SRob Herring			bias-high-impedance;
352*724ba675SRob Herring			bias-pull-up;
353*724ba675SRob Herring			slew-rate = <0>;
354*724ba675SRob Herring			io-standard = <1>;
355*724ba675SRob Herring		};
356*724ba675SRob Herring	};
357*724ba675SRob Herring
358*724ba675SRob Herring	pinctrl_uart1_default: uart1-default {
359*724ba675SRob Herring		mux {
360*724ba675SRob Herring			groups = "uart1_10_grp";
361*724ba675SRob Herring			function = "uart1";
362*724ba675SRob Herring		};
363*724ba675SRob Herring
364*724ba675SRob Herring		conf {
365*724ba675SRob Herring			groups = "uart1_10_grp";
366*724ba675SRob Herring			slew-rate = <0>;
367*724ba675SRob Herring			io-standard = <1>;
368*724ba675SRob Herring		};
369*724ba675SRob Herring
370*724ba675SRob Herring		conf-rx {
371*724ba675SRob Herring			pins = "MIO49";
372*724ba675SRob Herring			bias-high-impedance;
373*724ba675SRob Herring		};
374*724ba675SRob Herring
375*724ba675SRob Herring		conf-tx {
376*724ba675SRob Herring			pins = "MIO48";
377*724ba675SRob Herring			bias-disable;
378*724ba675SRob Herring		};
379*724ba675SRob Herring	};
380*724ba675SRob Herring
381*724ba675SRob Herring	pinctrl_usb0_default: usb0-default {
382*724ba675SRob Herring		mux {
383*724ba675SRob Herring			groups = "usb0_0_grp";
384*724ba675SRob Herring			function = "usb0";
385*724ba675SRob Herring		};
386*724ba675SRob Herring
387*724ba675SRob Herring		conf {
388*724ba675SRob Herring			groups = "usb0_0_grp";
389*724ba675SRob Herring			slew-rate = <0>;
390*724ba675SRob Herring			io-standard = <1>;
391*724ba675SRob Herring		};
392*724ba675SRob Herring
393*724ba675SRob Herring		conf-rx {
394*724ba675SRob Herring			pins = "MIO29", "MIO31", "MIO36";
395*724ba675SRob Herring			bias-high-impedance;
396*724ba675SRob Herring		};
397*724ba675SRob Herring
398*724ba675SRob Herring		conf-tx {
399*724ba675SRob Herring			pins = "MIO28", "MIO30", "MIO32", "MIO33", "MIO34",
400*724ba675SRob Herring			       "MIO35", "MIO37", "MIO38", "MIO39";
401*724ba675SRob Herring			bias-disable;
402*724ba675SRob Herring		};
403*724ba675SRob Herring	};
404*724ba675SRob Herring};
405*724ba675SRob Herring
406*724ba675SRob Herring&sdhci0 {
407*724ba675SRob Herring	status = "okay";
408*724ba675SRob Herring	pinctrl-names = "default";
409*724ba675SRob Herring	pinctrl-0 = <&pinctrl_sdhci0_default>;
410*724ba675SRob Herring};
411*724ba675SRob Herring
412*724ba675SRob Herring&uart1 {
413*724ba675SRob Herring	status = "okay";
414*724ba675SRob Herring	pinctrl-names = "default";
415*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart1_default>;
416*724ba675SRob Herring};
417*724ba675SRob Herring
418*724ba675SRob Herring&usb0 {
419*724ba675SRob Herring	status = "okay";
420*724ba675SRob Herring	dr_mode = "host";
421*724ba675SRob Herring	usb-phy = <&usb_phy0>;
422*724ba675SRob Herring	pinctrl-names = "default";
423*724ba675SRob Herring	pinctrl-0 = <&pinctrl_usb0_default>;
424*724ba675SRob Herring};
425