18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * dts file for Xilinx ZynqMP ZCU100 revC
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * (C) Copyright 2016 - 2019, Xilinx, Inc.
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Michal Simek <michal.simek@xilinx.com>
88c2ecf20Sopenharmony_ci * Nathalie Chan King Choy
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/dts-v1/;
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#include "zynqmp.dtsi"
148c2ecf20Sopenharmony_ci#include "zynqmp-clk-ccf.dtsi"
158c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
168c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
178c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci/ {
208c2ecf20Sopenharmony_ci	model = "ZynqMP ZCU100 RevC";
218c2ecf20Sopenharmony_ci	compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	aliases {
248c2ecf20Sopenharmony_ci		i2c0 = &i2c1;
258c2ecf20Sopenharmony_ci		rtc0 = &rtc;
268c2ecf20Sopenharmony_ci		serial0 = &uart1;
278c2ecf20Sopenharmony_ci		serial1 = &uart0;
288c2ecf20Sopenharmony_ci		serial2 = &dcc;
298c2ecf20Sopenharmony_ci		spi0 = &spi0;
308c2ecf20Sopenharmony_ci		spi1 = &spi1;
318c2ecf20Sopenharmony_ci		mmc0 = &sdhci0;
328c2ecf20Sopenharmony_ci		mmc1 = &sdhci1;
338c2ecf20Sopenharmony_ci	};
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	chosen {
368c2ecf20Sopenharmony_ci		bootargs = "earlycon";
378c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
388c2ecf20Sopenharmony_ci	};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	memory@0 {
418c2ecf20Sopenharmony_ci		device_type = "memory";
428c2ecf20Sopenharmony_ci		reg = <0x0 0x0 0x0 0x80000000>;
438c2ecf20Sopenharmony_ci	};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	gpio-keys {
468c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
478c2ecf20Sopenharmony_ci		autorepeat;
488c2ecf20Sopenharmony_ci		sw4 {
498c2ecf20Sopenharmony_ci			label = "sw4";
508c2ecf20Sopenharmony_ci			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
518c2ecf20Sopenharmony_ci			linux,code = <KEY_POWER>;
528c2ecf20Sopenharmony_ci			wakeup-source;
538c2ecf20Sopenharmony_ci			autorepeat;
548c2ecf20Sopenharmony_ci		};
558c2ecf20Sopenharmony_ci	};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci	leds {
588c2ecf20Sopenharmony_ci		compatible = "gpio-leds";
598c2ecf20Sopenharmony_ci		led-ds2 {
608c2ecf20Sopenharmony_ci			label = "ds2";
618c2ecf20Sopenharmony_ci			gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
628c2ecf20Sopenharmony_ci			linux,default-trigger = "heartbeat";
638c2ecf20Sopenharmony_ci		};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci		led-ds3 {
668c2ecf20Sopenharmony_ci			label = "ds3";
678c2ecf20Sopenharmony_ci			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
688c2ecf20Sopenharmony_ci			linux,default-trigger = "phy0tx"; /* WLAN tx */
698c2ecf20Sopenharmony_ci			default-state = "off";
708c2ecf20Sopenharmony_ci		};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci		led-ds4 {
738c2ecf20Sopenharmony_ci			label = "ds4";
748c2ecf20Sopenharmony_ci			gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
758c2ecf20Sopenharmony_ci			linux,default-trigger = "phy0rx"; /* WLAN rx */
768c2ecf20Sopenharmony_ci			default-state = "off";
778c2ecf20Sopenharmony_ci		};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci		led-ds5 {
808c2ecf20Sopenharmony_ci			label = "ds5";
818c2ecf20Sopenharmony_ci			gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
828c2ecf20Sopenharmony_ci			linux,default-trigger = "bluetooth-power";
838c2ecf20Sopenharmony_ci		};
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci		vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
868c2ecf20Sopenharmony_ci			label = "vbus_det";
878c2ecf20Sopenharmony_ci			gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
888c2ecf20Sopenharmony_ci			default-state = "on";
898c2ecf20Sopenharmony_ci		};
908c2ecf20Sopenharmony_ci	};
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	wmmcsdio_fixed: fixedregulator-mmcsdio {
938c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
948c2ecf20Sopenharmony_ci		regulator-name = "wmmcsdio_fixed";
958c2ecf20Sopenharmony_ci		regulator-min-microvolt = <3300000>;
968c2ecf20Sopenharmony_ci		regulator-max-microvolt = <3300000>;
978c2ecf20Sopenharmony_ci		regulator-always-on;
988c2ecf20Sopenharmony_ci		regulator-boot-on;
998c2ecf20Sopenharmony_ci	};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci	sdio_pwrseq: sdio-pwrseq {
1028c2ecf20Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
1038c2ecf20Sopenharmony_ci		reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
1048c2ecf20Sopenharmony_ci		post-power-on-delay-ms = <10>;
1058c2ecf20Sopenharmony_ci	};
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci	ina226 {
1088c2ecf20Sopenharmony_ci		compatible = "iio-hwmon";
1098c2ecf20Sopenharmony_ci		io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
1108c2ecf20Sopenharmony_ci	};
1118c2ecf20Sopenharmony_ci};
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci&dcc {
1148c2ecf20Sopenharmony_ci	status = "okay";
1158c2ecf20Sopenharmony_ci};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci&gpio {
1188c2ecf20Sopenharmony_ci	status = "okay";
1198c2ecf20Sopenharmony_ci	gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
1208c2ecf20Sopenharmony_ci			  "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
1218c2ecf20Sopenharmony_ci			  "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
1228c2ecf20Sopenharmony_ci			  "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
1238c2ecf20Sopenharmony_ci			  "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
1248c2ecf20Sopenharmony_ci			  "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
1258c2ecf20Sopenharmony_ci			  "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
1268c2ecf20Sopenharmony_ci			  "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
1278c2ecf20Sopenharmony_ci			  "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
1288c2ecf20Sopenharmony_ci			  "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
1298c2ecf20Sopenharmony_ci			  "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
1308c2ecf20Sopenharmony_ci			  "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
1318c2ecf20Sopenharmony_ci			  "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
1328c2ecf20Sopenharmony_ci			  "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
1338c2ecf20Sopenharmony_ci			  "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
1348c2ecf20Sopenharmony_ci			  "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
1358c2ecf20Sopenharmony_ci			  "", "",
1368c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1378c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1388c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1398c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1408c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1418c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1428c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1438c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1448c2ecf20Sopenharmony_ci			  "", "", "", "", "", "", "", "", "", "",
1458c2ecf20Sopenharmony_ci			  "", "", "", "";
1468c2ecf20Sopenharmony_ci};
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci&i2c1 {
1498c2ecf20Sopenharmony_ci	status = "okay";
1508c2ecf20Sopenharmony_ci	clock-frequency = <100000>;
1518c2ecf20Sopenharmony_ci	i2c-mux@75 { /* u11 */
1528c2ecf20Sopenharmony_ci		compatible = "nxp,pca9548";
1538c2ecf20Sopenharmony_ci		#address-cells = <1>;
1548c2ecf20Sopenharmony_ci		#size-cells = <0>;
1558c2ecf20Sopenharmony_ci		reg = <0x75>;
1568c2ecf20Sopenharmony_ci		i2csw_0: i2c@0 {
1578c2ecf20Sopenharmony_ci			#address-cells = <1>;
1588c2ecf20Sopenharmony_ci			#size-cells = <0>;
1598c2ecf20Sopenharmony_ci			reg = <0>;
1608c2ecf20Sopenharmony_ci			label = "LS-I2C0";
1618c2ecf20Sopenharmony_ci		};
1628c2ecf20Sopenharmony_ci		i2csw_1: i2c@1 {
1638c2ecf20Sopenharmony_ci			#address-cells = <1>;
1648c2ecf20Sopenharmony_ci			#size-cells = <0>;
1658c2ecf20Sopenharmony_ci			reg = <1>;
1668c2ecf20Sopenharmony_ci			label = "LS-I2C1";
1678c2ecf20Sopenharmony_ci		};
1688c2ecf20Sopenharmony_ci		i2csw_2: i2c@2 {
1698c2ecf20Sopenharmony_ci			#address-cells = <1>;
1708c2ecf20Sopenharmony_ci			#size-cells = <0>;
1718c2ecf20Sopenharmony_ci			reg = <2>;
1728c2ecf20Sopenharmony_ci			label = "HS-I2C2";
1738c2ecf20Sopenharmony_ci		};
1748c2ecf20Sopenharmony_ci		i2csw_3: i2c@3 {
1758c2ecf20Sopenharmony_ci			#address-cells = <1>;
1768c2ecf20Sopenharmony_ci			#size-cells = <0>;
1778c2ecf20Sopenharmony_ci			reg = <3>;
1788c2ecf20Sopenharmony_ci			label = "HS-I2C3";
1798c2ecf20Sopenharmony_ci		};
1808c2ecf20Sopenharmony_ci		i2csw_4: i2c@4 {
1818c2ecf20Sopenharmony_ci			#address-cells = <1>;
1828c2ecf20Sopenharmony_ci			#size-cells = <0>;
1838c2ecf20Sopenharmony_ci			reg = <0x4>;
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci			pmic: pmic@5e { /* Custom TI PMIC u33 */
1868c2ecf20Sopenharmony_ci				compatible = "ti,tps65086";
1878c2ecf20Sopenharmony_ci				reg = <0x5e>;
1888c2ecf20Sopenharmony_ci				interrupt-parent = <&gpio>;
1898c2ecf20Sopenharmony_ci				interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
1908c2ecf20Sopenharmony_ci				#gpio-cells = <2>;
1918c2ecf20Sopenharmony_ci				gpio-controller;
1928c2ecf20Sopenharmony_ci			};
1938c2ecf20Sopenharmony_ci		};
1948c2ecf20Sopenharmony_ci		i2csw_5: i2c@5 {
1958c2ecf20Sopenharmony_ci			#address-cells = <1>;
1968c2ecf20Sopenharmony_ci			#size-cells = <0>;
1978c2ecf20Sopenharmony_ci			reg = <5>;
1988c2ecf20Sopenharmony_ci			/* PS_PMBUS */
1998c2ecf20Sopenharmony_ci			u35: ina226@40 { /* u35 */
2008c2ecf20Sopenharmony_ci				compatible = "ti,ina226";
2018c2ecf20Sopenharmony_ci				#io-channel-cells = <1>;
2028c2ecf20Sopenharmony_ci				reg = <0x40>;
2038c2ecf20Sopenharmony_ci				shunt-resistor = <10000>;
2048c2ecf20Sopenharmony_ci				/* MIO31 is alert which should be routed to PMUFW */
2058c2ecf20Sopenharmony_ci			};
2068c2ecf20Sopenharmony_ci		};
2078c2ecf20Sopenharmony_ci		i2csw_6: i2c@6 {
2088c2ecf20Sopenharmony_ci			#address-cells = <1>;
2098c2ecf20Sopenharmony_ci			#size-cells = <0>;
2108c2ecf20Sopenharmony_ci			reg = <6>;
2118c2ecf20Sopenharmony_ci			/*
2128c2ecf20Sopenharmony_ci			 * Not Connected
2138c2ecf20Sopenharmony_ci			 */
2148c2ecf20Sopenharmony_ci		};
2158c2ecf20Sopenharmony_ci		i2csw_7: i2c@7 {
2168c2ecf20Sopenharmony_ci			#address-cells = <1>;
2178c2ecf20Sopenharmony_ci			#size-cells = <0>;
2188c2ecf20Sopenharmony_ci			reg = <7>;
2198c2ecf20Sopenharmony_ci			/*
2208c2ecf20Sopenharmony_ci			 * usb5744 (DNP) - U5
2218c2ecf20Sopenharmony_ci			 * 100kHz - this is default freq for us
2228c2ecf20Sopenharmony_ci			 */
2238c2ecf20Sopenharmony_ci		};
2248c2ecf20Sopenharmony_ci	};
2258c2ecf20Sopenharmony_ci};
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_ci&rtc {
2288c2ecf20Sopenharmony_ci	status = "okay";
2298c2ecf20Sopenharmony_ci};
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci/* SD0 only supports 3.3V, no level shifter */
2328c2ecf20Sopenharmony_ci&sdhci0 {
2338c2ecf20Sopenharmony_ci	status = "okay";
2348c2ecf20Sopenharmony_ci	no-1-8-v;
2358c2ecf20Sopenharmony_ci	disable-wp;
2368c2ecf20Sopenharmony_ci};
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci&sdhci1 {
2398c2ecf20Sopenharmony_ci	status = "okay";
2408c2ecf20Sopenharmony_ci	bus-width = <0x4>;
2418c2ecf20Sopenharmony_ci	non-removable;
2428c2ecf20Sopenharmony_ci	disable-wp;
2438c2ecf20Sopenharmony_ci	cap-power-off-card;
2448c2ecf20Sopenharmony_ci	mmc-pwrseq = <&sdio_pwrseq>;
2458c2ecf20Sopenharmony_ci	vqmmc-supply = <&wmmcsdio_fixed>;
2468c2ecf20Sopenharmony_ci	#address-cells = <1>;
2478c2ecf20Sopenharmony_ci	#size-cells = <0>;
2488c2ecf20Sopenharmony_ci	wlcore: wifi@2 {
2498c2ecf20Sopenharmony_ci		compatible = "ti,wl1831";
2508c2ecf20Sopenharmony_ci		reg = <2>;
2518c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio>;
2528c2ecf20Sopenharmony_ci		interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
2538c2ecf20Sopenharmony_ci	};
2548c2ecf20Sopenharmony_ci};
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci&spi0 { /* Low Speed connector */
2578c2ecf20Sopenharmony_ci	status = "okay";
2588c2ecf20Sopenharmony_ci	label = "LS-SPI0";
2598c2ecf20Sopenharmony_ci	num-cs = <1>;
2608c2ecf20Sopenharmony_ci};
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ci&spi1 { /* High Speed connector */
2638c2ecf20Sopenharmony_ci	status = "okay";
2648c2ecf20Sopenharmony_ci	label = "HS-SPI1";
2658c2ecf20Sopenharmony_ci	num-cs = <1>;
2668c2ecf20Sopenharmony_ci};
2678c2ecf20Sopenharmony_ci
2688c2ecf20Sopenharmony_ci&uart0 {
2698c2ecf20Sopenharmony_ci	status = "okay";
2708c2ecf20Sopenharmony_ci	bluetooth {
2718c2ecf20Sopenharmony_ci		compatible = "ti,wl1831-st";
2728c2ecf20Sopenharmony_ci		enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
2738c2ecf20Sopenharmony_ci	};
2748c2ecf20Sopenharmony_ci};
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci&uart1 {
2778c2ecf20Sopenharmony_ci	status = "okay";
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci};
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ci/* ULPI SMSC USB3320 */
2828c2ecf20Sopenharmony_ci&usb0 {
2838c2ecf20Sopenharmony_ci	status = "okay";
2848c2ecf20Sopenharmony_ci	dr_mode = "peripheral";
2858c2ecf20Sopenharmony_ci};
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ci/* ULPI SMSC USB3320 */
2888c2ecf20Sopenharmony_ci&usb1 {
2898c2ecf20Sopenharmony_ci	status = "okay";
2908c2ecf20Sopenharmony_ci	dr_mode = "host";
2918c2ecf20Sopenharmony_ci};
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci&watchdog0 {
2948c2ecf20Sopenharmony_ci	status = "okay";
2958c2ecf20Sopenharmony_ci};
296