1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * dts file for Xilinx ZynqMP ZCU100 revC
4 *
5 * (C) Copyright 2016 - 2019, Xilinx, Inc.
6 *
7 * Michal Simek <michal.simek@xilinx.com>
8 * Nathalie Chan King Choy
9 */
10
11/dts-v1/;
12
13#include "zynqmp.dtsi"
14#include "zynqmp-clk-ccf.dtsi"
15#include <dt-bindings/input/input.h>
16#include <dt-bindings/interrupt-controller/irq.h>
17#include <dt-bindings/gpio/gpio.h>
18
19/ {
20	model = "ZynqMP ZCU100 RevC";
21	compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
22
23	aliases {
24		i2c0 = &i2c1;
25		rtc0 = &rtc;
26		serial0 = &uart1;
27		serial1 = &uart0;
28		serial2 = &dcc;
29		spi0 = &spi0;
30		spi1 = &spi1;
31		mmc0 = &sdhci0;
32		mmc1 = &sdhci1;
33	};
34
35	chosen {
36		bootargs = "earlycon";
37		stdout-path = "serial0:115200n8";
38	};
39
40	memory@0 {
41		device_type = "memory";
42		reg = <0x0 0x0 0x0 0x80000000>;
43	};
44
45	gpio-keys {
46		compatible = "gpio-keys";
47		autorepeat;
48		sw4 {
49			label = "sw4";
50			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
51			linux,code = <KEY_POWER>;
52			wakeup-source;
53			autorepeat;
54		};
55	};
56
57	leds {
58		compatible = "gpio-leds";
59		ds2 {
60			label = "ds2";
61			gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
62			linux,default-trigger = "heartbeat";
63		};
64
65		ds3 {
66			label = "ds3";
67			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
68			linux,default-trigger = "phy0tx"; /* WLAN tx */
69			default-state = "off";
70		};
71
72		ds4 {
73			label = "ds4";
74			gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
75			linux,default-trigger = "phy0rx"; /* WLAN rx */
76			default-state = "off";
77		};
78
79		ds5 {
80			label = "ds5";
81			gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
82			linux,default-trigger = "bluetooth-power";
83		};
84
85		vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
86			label = "vbus_det";
87			gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
88			default-state = "on";
89		};
90	};
91
92	wmmcsdio_fixed: fixedregulator-mmcsdio {
93		compatible = "regulator-fixed";
94		regulator-name = "wmmcsdio_fixed";
95		regulator-min-microvolt = <3300000>;
96		regulator-max-microvolt = <3300000>;
97		regulator-always-on;
98		regulator-boot-on;
99	};
100
101	sdio_pwrseq: sdio-pwrseq {
102		compatible = "mmc-pwrseq-simple";
103		reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
104		post-power-on-delay-ms = <10>;
105	};
106
107	ina226 {
108		compatible = "iio-hwmon";
109		io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
110	};
111};
112
113&dcc {
114	status = "okay";
115};
116
117&gpio {
118	status = "okay";
119	gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
120			  "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
121			  "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
122			  "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
123			  "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
124			  "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
125			  "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
126			  "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
127			  "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
128			  "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
129			  "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
130			  "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
131			  "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
132			  "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
133			  "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
134			  "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
135			  "", "",
136			  "", "", "", "", "", "", "", "", "", "",
137			  "", "", "", "", "", "", "", "", "", "",
138			  "", "", "", "", "", "", "", "", "", "",
139			  "", "", "", "", "", "", "", "", "", "",
140			  "", "", "", "", "", "", "", "", "", "",
141			  "", "", "", "", "", "", "", "", "", "",
142			  "", "", "", "", "", "", "", "", "", "",
143			  "", "", "", "", "", "", "", "", "", "",
144			  "", "", "", "", "", "", "", "", "", "",
145			  "", "", "", "";
146};
147
148&i2c1 {
149	status = "okay";
150	clock-frequency = <100000>;
151	i2c-mux@75 { /* u11 */
152		compatible = "nxp,pca9548";
153		#address-cells = <1>;
154		#size-cells = <0>;
155		reg = <0x75>;
156		i2csw_0: i2c@0 {
157			#address-cells = <1>;
158			#size-cells = <0>;
159			reg = <0>;
160			label = "LS-I2C0";
161		};
162		i2csw_1: i2c@1 {
163			#address-cells = <1>;
164			#size-cells = <0>;
165			reg = <1>;
166			label = "LS-I2C1";
167		};
168		i2csw_2: i2c@2 {
169			#address-cells = <1>;
170			#size-cells = <0>;
171			reg = <2>;
172			label = "HS-I2C2";
173		};
174		i2csw_3: i2c@3 {
175			#address-cells = <1>;
176			#size-cells = <0>;
177			reg = <3>;
178			label = "HS-I2C3";
179		};
180		i2csw_4: i2c@4 {
181			#address-cells = <1>;
182			#size-cells = <0>;
183			reg = <0x4>;
184
185			pmic: pmic@5e { /* Custom TI PMIC u33 */
186				compatible = "ti,tps65086";
187				reg = <0x5e>;
188				interrupt-parent = <&gpio>;
189				interrupts = <77 GPIO_ACTIVE_LOW>;
190				#gpio-cells = <2>;
191				gpio-controller;
192			};
193		};
194		i2csw_5: i2c@5 {
195			#address-cells = <1>;
196			#size-cells = <0>;
197			reg = <5>;
198			/* PS_PMBUS */
199			u35: ina226@40 { /* u35 */
200				compatible = "ti,ina226";
201				#io-channel-cells = <1>;
202				reg = <0x40>;
203				shunt-resistor = <10000>;
204				/* MIO31 is alert which should be routed to PMUFW */
205			};
206		};
207		i2csw_6: i2c@6 {
208			#address-cells = <1>;
209			#size-cells = <0>;
210			reg = <6>;
211			/*
212			 * Not Connected
213			 */
214		};
215		i2csw_7: i2c@7 {
216			#address-cells = <1>;
217			#size-cells = <0>;
218			reg = <7>;
219			/*
220			 * usb5744 (DNP) - U5
221			 * 100kHz - this is default freq for us
222			 */
223		};
224	};
225};
226
227&rtc {
228	status = "okay";
229};
230
231/* SD0 only supports 3.3V, no level shifter */
232&sdhci0 {
233	status = "okay";
234	no-1-8-v;
235	disable-wp;
236};
237
238&sdhci1 {
239	status = "okay";
240	bus-width = <0x4>;
241	non-removable;
242	disable-wp;
243	cap-power-off-card;
244	mmc-pwrseq = <&sdio_pwrseq>;
245	vqmmc-supply = <&wmmcsdio_fixed>;
246	#address-cells = <1>;
247	#size-cells = <0>;
248	wlcore: wifi@2 {
249		compatible = "ti,wl1831";
250		reg = <2>;
251		interrupt-parent = <&gpio>;
252		interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
253	};
254};
255
256&spi0 { /* Low Speed connector */
257	status = "okay";
258	label = "LS-SPI0";
259	num-cs = <1>;
260};
261
262&spi1 { /* High Speed connector */
263	status = "okay";
264	label = "HS-SPI1";
265	num-cs = <1>;
266};
267
268&uart0 {
269	status = "okay";
270	bluetooth {
271		compatible = "ti,wl1831-st";
272		enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
273	};
274};
275
276&uart1 {
277	status = "okay";
278
279};
280
281/* ULPI SMSC USB3320 */
282&usb0 {
283	status = "okay";
284	dr_mode = "peripheral";
285};
286
287/* ULPI SMSC USB3320 */
288&usb1 {
289	status = "okay";
290	dr_mode = "host";
291};
292
293&watchdog0 {
294	status = "okay";
295};
296