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