xref: /linux/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts (revision 4ab5a5d2a4a2289c2af07accbec7170ca5671f41)
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		autorepeat;
48		sw4 {
49			label = "sw4";
50			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
51			linux,code = <KEY_POWER>;
52			gpio-key,wakeup;
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	};
105};
106
107&dcc {
108	status = "okay";
109};
110
111&gpio {
112	status = "okay";
113	gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
114			  "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
115			  "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
116			  "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
117			  "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
118			  "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
119			  "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
120			  "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
121			  "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
122			  "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
123			  "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
124			  "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
125			  "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
126			  "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
127			  "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
128			  "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
129			  "", "",
130			  "", "", "", "", "", "", "", "", "", "",
131			  "", "", "", "", "", "", "", "", "", "",
132			  "", "", "", "", "", "", "", "", "", "",
133			  "", "", "", "", "", "", "", "", "", "",
134			  "", "", "", "", "", "", "", "", "", "",
135			  "", "", "", "", "", "", "", "", "", "",
136			  "", "", "", "", "", "", "", "", "", "",
137			  "", "", "", "", "", "", "", "", "", "",
138			  "", "", "", "", "", "", "", "", "", "",
139			  "", "", "", "";
140};
141
142&i2c1 {
143	status = "okay";
144	clock-frequency = <100000>;
145	i2c-mux@75 { /* u11 */
146		compatible = "nxp,pca9548";
147		#address-cells = <1>;
148		#size-cells = <0>;
149		reg = <0x75>;
150		i2csw_0: i2c@0 {
151			#address-cells = <1>;
152			#size-cells = <0>;
153			reg = <0>;
154			label = "LS-I2C0";
155		};
156		i2csw_1: i2c@1 {
157			#address-cells = <1>;
158			#size-cells = <0>;
159			reg = <1>;
160			label = "LS-I2C1";
161		};
162		i2csw_2: i2c@2 {
163			#address-cells = <1>;
164			#size-cells = <0>;
165			reg = <2>;
166			label = "HS-I2C2";
167		};
168		i2csw_3: i2c@3 {
169			#address-cells = <1>;
170			#size-cells = <0>;
171			reg = <3>;
172			label = "HS-I2C3";
173		};
174		i2csw_4: i2c@4 {
175			#address-cells = <1>;
176			#size-cells = <0>;
177			reg = <0x4>;
178
179			pmic: pmic@5e { /* Custom TI PMIC u33 */
180				compatible = "ti,tps65086";
181				reg = <0x5e>;
182				interrupt-parent = <&gpio>;
183				interrupts = <77 GPIO_ACTIVE_LOW>;
184				#gpio-cells = <2>;
185				gpio-controller;
186			};
187		};
188		i2csw_5: i2c@5 {
189			#address-cells = <1>;
190			#size-cells = <0>;
191			reg = <5>;
192			/* PS_PMBUS */
193			ina226@40 { /* u35 */
194				compatible = "ti,ina226";
195				reg = <0x40>;
196				shunt-resistor = <10000>;
197				/* MIO31 is alert which should be routed to PMUFW */
198			};
199		};
200		i2csw_6: i2c@6 {
201			#address-cells = <1>;
202			#size-cells = <0>;
203			reg = <6>;
204			/*
205			 * Not Connected
206			 */
207		};
208		i2csw_7: i2c@7 {
209			#address-cells = <1>;
210			#size-cells = <0>;
211			reg = <7>;
212			/*
213			 * usb5744 (DNP) - U5
214			 * 100kHz - this is default freq for us
215			 */
216		};
217	};
218};
219
220&rtc {
221	status = "okay";
222};
223
224/* SD0 only supports 3.3V, no level shifter */
225&sdhci0 {
226	status = "okay";
227	no-1-8-v;
228	broken-cd; /* CD has to be enabled by default */
229	disable-wp;
230};
231
232&sdhci1 {
233	status = "okay";
234	bus-width = <0x4>;
235	non-removable;
236	disable-wp;
237	cap-power-off-card;
238	mmc-pwrseq = <&sdio_pwrseq>;
239	vqmmc-supply = <&wmmcsdio_fixed>;
240	#address-cells = <1>;
241	#size-cells = <0>;
242	wlcore: wifi@2 {
243		compatible = "ti,wl1831";
244		reg = <2>;
245		interrupt-parent = <&gpio>;
246		interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
247	};
248};
249
250&spi0 { /* Low Speed connector */
251	status = "okay";
252	label = "LS-SPI0";
253};
254
255&spi1 { /* High Speed connector */
256	status = "okay";
257	label = "HS-SPI1";
258};
259
260&uart0 {
261	status = "okay";
262	bluetooth {
263		compatible = "ti,wl1831-st";
264		enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
265	};
266};
267
268&uart1 {
269	status = "okay";
270
271};
272
273/* ULPI SMSC USB3320 */
274&usb0 {
275	status = "okay";
276};
277
278/* ULPI SMSC USB3320 */
279&usb1 {
280	status = "okay";
281};
282
283&watchdog0 {
284	status = "okay";
285};
286