xref: /openbmc/u-boot/arch/arm/dts/zynqmp-zcu100-revC.dts (revision d391c13c99a2b48c98cef6df4479247cd4e62f9d)
16d034093SMichal Simek// SPDX-License-Identifier: GPL-2.0+
26d034093SMichal Simek/*
36d034093SMichal Simek * dts file for Xilinx ZynqMP ZCU100 revC
46d034093SMichal Simek *
56d034093SMichal Simek * (C) Copyright 2016 - 2018, Xilinx, Inc.
66d034093SMichal Simek *
76d034093SMichal Simek * Michal Simek <michal.simek@xilinx.com>
86d034093SMichal Simek * Nathalie Chan King Choy
96d034093SMichal Simek */
106d034093SMichal Simek
116d034093SMichal Simek/dts-v1/;
126d034093SMichal Simek
136d034093SMichal Simek#include "zynqmp.dtsi"
146d034093SMichal Simek#include "zynqmp-clk.dtsi"
156d034093SMichal Simek#include <dt-bindings/input/input.h>
166d034093SMichal Simek#include <dt-bindings/interrupt-controller/irq.h>
176d034093SMichal Simek#include <dt-bindings/gpio/gpio.h>
186d034093SMichal Simek#include <dt-bindings/phy/phy.h>
196d034093SMichal Simek
206d034093SMichal Simek/ {
216d034093SMichal Simek	model = "ZynqMP ZCU100 RevC";
226d034093SMichal Simek	compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
236d034093SMichal Simek
246d034093SMichal Simek	aliases {
256d034093SMichal Simek		gpio0 = &gpio;
266d034093SMichal Simek		i2c0 = &i2c1;
276d034093SMichal Simek		rtc0 = &rtc;
286d034093SMichal Simek		serial0 = &uart1;
296d034093SMichal Simek		serial1 = &uart0;
306d034093SMichal Simek		serial2 = &dcc;
316d034093SMichal Simek		spi0 = &spi0;
326d034093SMichal Simek		spi1 = &spi1;
336d034093SMichal Simek		usb0 = &usb0;
346d034093SMichal Simek		usb1 = &usb1;
356d034093SMichal Simek		mmc0 = &sdhci0;
366d034093SMichal Simek		mmc1 = &sdhci1;
376d034093SMichal Simek	};
386d034093SMichal Simek
396d034093SMichal Simek	chosen {
406d034093SMichal Simek		bootargs = "earlycon";
416d034093SMichal Simek		stdout-path = "serial0:115200n8";
426d034093SMichal Simek	};
436d034093SMichal Simek
446d034093SMichal Simek	memory@0 {
456d034093SMichal Simek		device_type = "memory";
466d034093SMichal Simek		reg = <0x0 0x0 0x0 0x80000000>;
476d034093SMichal Simek	};
486d034093SMichal Simek
496d034093SMichal Simek	gpio-keys {
506d034093SMichal Simek		compatible = "gpio-keys";
516d034093SMichal Simek		autorepeat;
526d034093SMichal Simek		sw4 {
536d034093SMichal Simek			label = "sw4";
546d034093SMichal Simek			gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
556d034093SMichal Simek			linux,code = <KEY_POWER>;
566d034093SMichal Simek			gpio-key,wakeup;
576d034093SMichal Simek			autorepeat;
586d034093SMichal Simek		};
596d034093SMichal Simek	};
606d034093SMichal Simek
616d034093SMichal Simek	iio-hwmon {
626d034093SMichal Simek		compatible = "iio-hwmon";
636d034093SMichal Simek		io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
646d034093SMichal Simek			      <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
656d034093SMichal Simek			      <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
666d034093SMichal Simek			      <&xilinx_ams 9>, <&xilinx_ams 10>,
676d034093SMichal Simek			      <&xilinx_ams 11>, <&xilinx_ams 12>;
686d034093SMichal Simek	};
696d034093SMichal Simek
706d034093SMichal Simek	leds {
716d034093SMichal Simek		compatible = "gpio-leds";
726d034093SMichal Simek		ds2 {
736d034093SMichal Simek			label = "ds2";
746d034093SMichal Simek			gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
756d034093SMichal Simek			linux,default-trigger = "heartbeat";
766d034093SMichal Simek		};
776d034093SMichal Simek
786d034093SMichal Simek		ds3 {
796d034093SMichal Simek			label = "ds3";
806d034093SMichal Simek			gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
816d034093SMichal Simek			linux,default-trigger = "phy0tx"; /* WLAN tx */
826d034093SMichal Simek			default-state = "off";
836d034093SMichal Simek		};
846d034093SMichal Simek
856d034093SMichal Simek		ds4 {
866d034093SMichal Simek			label = "ds4";
876d034093SMichal Simek			gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
886d034093SMichal Simek			linux,default-trigger = "phy0rx"; /* WLAN rx */
896d034093SMichal Simek			default-state = "off";
906d034093SMichal Simek		};
916d034093SMichal Simek
926d034093SMichal Simek		ds5 {
936d034093SMichal Simek			label = "ds5";
946d034093SMichal Simek			gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
956d034093SMichal Simek			linux,default-trigger = "bluetooth-power";
966d034093SMichal Simek		};
976d034093SMichal Simek
986d034093SMichal Simek		vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
996d034093SMichal Simek			label = "vbus_det";
1006d034093SMichal Simek			gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
1016d034093SMichal Simek			default-state = "on";
1026d034093SMichal Simek		};
1036d034093SMichal Simek	};
1046d034093SMichal Simek
1056d034093SMichal Simek	ltc2954: ltc2954 { /* U7 */
1066d034093SMichal Simek		compatible = "lltc,ltc2954", "lltc,ltc2952";
107*8418d2deSMichal Simek		status = "disabled";
1086d034093SMichal Simek		trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
1096d034093SMichal Simek		/* If there is HW watchdog on mezzanine this signal should be connected there */
1106d034093SMichal Simek		watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
1116d034093SMichal Simek		kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
1126d034093SMichal Simek	};
1136d034093SMichal Simek
1146d034093SMichal Simek	wmmcsdio_fixed: fixedregulator-mmcsdio {
1156d034093SMichal Simek		compatible = "regulator-fixed";
1166d034093SMichal Simek		regulator-name = "wmmcsdio_fixed";
1176d034093SMichal Simek		regulator-min-microvolt = <3300000>;
1186d034093SMichal Simek		regulator-max-microvolt = <3300000>;
1196d034093SMichal Simek		regulator-always-on;
1206d034093SMichal Simek		regulator-boot-on;
1216d034093SMichal Simek	};
1226d034093SMichal Simek
1236d034093SMichal Simek	sdio_pwrseq: sdio_pwrseq {
1246d034093SMichal Simek		compatible = "mmc-pwrseq-simple";
1256d034093SMichal Simek		reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
1266d034093SMichal Simek	};
1276d034093SMichal Simek};
1286d034093SMichal Simek
1296d034093SMichal Simek&dcc {
1306d034093SMichal Simek	status = "okay";
1316d034093SMichal Simek};
1326d034093SMichal Simek
1336d034093SMichal Simek&gpio {
1346d034093SMichal Simek	status = "okay";
1356d034093SMichal Simek	gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
1366d034093SMichal Simek			  "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
1376d034093SMichal Simek			  "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
1386d034093SMichal Simek			  "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
1396d034093SMichal Simek			  "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
1406d034093SMichal Simek			  "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
1416d034093SMichal Simek			  "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
1426d034093SMichal Simek			  "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
1436d034093SMichal Simek			  "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
1446d034093SMichal Simek			  "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
1456d034093SMichal Simek			  "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
1466d034093SMichal Simek			  "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
1476d034093SMichal Simek			  "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
1486d034093SMichal Simek			  "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
1496d034093SMichal Simek			  "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
1506d034093SMichal Simek			  "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
1516d034093SMichal Simek			  "", "",
1526d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1536d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1546d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1556d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1566d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1576d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1586d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1596d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1606d034093SMichal Simek			  "", "", "", "", "", "", "", "", "", "",
1616d034093SMichal Simek			  "", "", "", "";
1626d034093SMichal Simek};
1636d034093SMichal Simek
1646d034093SMichal Simek&gpu {
1656d034093SMichal Simek	status = "okay";
1666d034093SMichal Simek};
1676d034093SMichal Simek
1686d034093SMichal Simek&i2c1 {
1696d034093SMichal Simek	status = "okay";
1706d034093SMichal Simek	clock-frequency = <100000>;
1716d034093SMichal Simek	i2c-mux@75 { /* u11 */
1726d034093SMichal Simek		compatible = "nxp,pca9548";
1736d034093SMichal Simek		#address-cells = <1>;
1746d034093SMichal Simek		#size-cells = <0>;
1756d034093SMichal Simek		reg = <0x75>;
1766d034093SMichal Simek		i2csw_0: i2c@0 {
1776d034093SMichal Simek			#address-cells = <1>;
1786d034093SMichal Simek			#size-cells = <0>;
1796d034093SMichal Simek			reg = <0>;
1806d034093SMichal Simek			label = "LS-I2C0";
1816d034093SMichal Simek		};
1826d034093SMichal Simek		i2csw_1: i2c@1 {
1836d034093SMichal Simek			#address-cells = <1>;
1846d034093SMichal Simek			#size-cells = <0>;
1856d034093SMichal Simek			reg = <1>;
1866d034093SMichal Simek			label = "LS-I2C1";
1876d034093SMichal Simek		};
1886d034093SMichal Simek		i2csw_2: i2c@2 {
1896d034093SMichal Simek			#address-cells = <1>;
1906d034093SMichal Simek			#size-cells = <0>;
1916d034093SMichal Simek			reg = <2>;
1926d034093SMichal Simek			label = "HS-I2C2";
1936d034093SMichal Simek		};
1946d034093SMichal Simek		i2csw_3: i2c@3 {
1956d034093SMichal Simek			#address-cells = <1>;
1966d034093SMichal Simek			#size-cells = <0>;
1976d034093SMichal Simek			reg = <3>;
1986d034093SMichal Simek			label = "HS-I2C3";
1996d034093SMichal Simek		};
2006d034093SMichal Simek		i2csw_4: i2c@4 {
2016d034093SMichal Simek			#address-cells = <1>;
2026d034093SMichal Simek			#size-cells = <0>;
2036d034093SMichal Simek			reg = <0x4>;
2046d034093SMichal Simek
2056d034093SMichal Simek			pmic: pmic@5e { /* Custom TI PMIC u33 */
2066d034093SMichal Simek				compatible = "ti,tps65086";
2076d034093SMichal Simek				reg = <0x5e>;
2086d034093SMichal Simek				interrupt-parent = <&gpio>;
2096d034093SMichal Simek				interrupts = <77 GPIO_ACTIVE_LOW>;
2106d034093SMichal Simek				#gpio-cells = <2>;
2116d034093SMichal Simek				gpio-controller;
2126d034093SMichal Simek			};
2136d034093SMichal Simek		};
2146d034093SMichal Simek		i2csw_5: i2c@5 {
2156d034093SMichal Simek			#address-cells = <1>;
2166d034093SMichal Simek			#size-cells = <0>;
2176d034093SMichal Simek			reg = <5>;
2186d034093SMichal Simek			/* PS_PMBUS */
2196d034093SMichal Simek			ina226@40 { /* u35 */
2206d034093SMichal Simek				compatible = "ti,ina226";
2216d034093SMichal Simek				reg = <0x40>;
2226d034093SMichal Simek				shunt-resistor = <10000>;
2236d034093SMichal Simek				/* MIO31 is alert which should be routed to PMUFW */
2246d034093SMichal Simek			};
2256d034093SMichal Simek		};
2266d034093SMichal Simek		i2csw_6: i2c@6 {
2276d034093SMichal Simek			#address-cells = <1>;
2286d034093SMichal Simek			#size-cells = <0>;
2296d034093SMichal Simek			reg = <6>;
2306d034093SMichal Simek			/*
2316d034093SMichal Simek			 * Not Connected
2326d034093SMichal Simek			 */
2336d034093SMichal Simek		};
2346d034093SMichal Simek		i2csw_7: i2c@7 {
2356d034093SMichal Simek			#address-cells = <1>;
2366d034093SMichal Simek			#size-cells = <0>;
2376d034093SMichal Simek			reg = <7>;
2386d034093SMichal Simek			/*
2396d034093SMichal Simek			 * usb5744 (DNP) - U5
2406d034093SMichal Simek			 * 100kHz - this is default freq for us
2416d034093SMichal Simek			 */
2426d034093SMichal Simek		};
2436d034093SMichal Simek	};
2446d034093SMichal Simek};
2456d034093SMichal Simek
2466d034093SMichal Simek&rtc {
2476d034093SMichal Simek	status = "okay";
2486d034093SMichal Simek};
2496d034093SMichal Simek
2506d034093SMichal Simek/* SD0 only supports 3.3V, no level shifter */
2516d034093SMichal Simek&sdhci0 {
2526d034093SMichal Simek	status = "okay";
2536d034093SMichal Simek	no-1-8-v;
2546d034093SMichal Simek	disable-wp;
2556d034093SMichal Simek	xlnx,mio_bank = <0>;
2566d034093SMichal Simek};
2576d034093SMichal Simek
2586d034093SMichal Simek&sdhci1 {
2596d034093SMichal Simek	status = "okay";
2606d034093SMichal Simek	bus-width = <0x4>;
2616d034093SMichal Simek	xlnx,mio_bank = <0>;
2626d034093SMichal Simek	non-removable;
2636d034093SMichal Simek	disable-wp;
2646d034093SMichal Simek	cap-power-off-card;
2656d034093SMichal Simek	mmc-pwrseq = <&sdio_pwrseq>;
2666d034093SMichal Simek	vqmmc-supply = <&wmmcsdio_fixed>;
2676d034093SMichal Simek	#address-cells = <1>;
2686d034093SMichal Simek	#size-cells = <0>;
2696d034093SMichal Simek	wlcore: wifi@2 {
2706d034093SMichal Simek		compatible = "ti,wl1831";
2716d034093SMichal Simek		reg = <2>;
2726d034093SMichal Simek		interrupt-parent = <&gpio>;
2736d034093SMichal Simek		interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
2746d034093SMichal Simek	};
2756d034093SMichal Simek};
2766d034093SMichal Simek
2776d034093SMichal Simek&serdes {
2786d034093SMichal Simek	status = "okay";
2796d034093SMichal Simek};
2806d034093SMichal Simek
2816d034093SMichal Simek&spi0 { /* Low Speed connector */
2826d034093SMichal Simek	status = "okay";
2836d034093SMichal Simek	label = "LS-SPI0";
284c7e79489SMichal Simek	num-cs = <1>;
2856d034093SMichal Simek};
2866d034093SMichal Simek
2876d034093SMichal Simek&spi1 { /* High Speed connector */
2886d034093SMichal Simek	status = "okay";
2896d034093SMichal Simek	label = "HS-SPI1";
290c7e79489SMichal Simek	num-cs = <1>;
2916d034093SMichal Simek};
2926d034093SMichal Simek
2936d034093SMichal Simek&uart0 {
2946d034093SMichal Simek	status = "okay";
2956d034093SMichal Simek	bluetooth {
2966d034093SMichal Simek		compatible = "ti,wl1831-st";
2976d034093SMichal Simek		enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
2986d034093SMichal Simek	};
2996d034093SMichal Simek};
3006d034093SMichal Simek
3016d034093SMichal Simek&uart1 {
3026d034093SMichal Simek	status = "okay";
3036d034093SMichal Simek
3046d034093SMichal Simek};
3056d034093SMichal Simek
3066d034093SMichal Simek/* ULPI SMSC USB3320 */
3076d034093SMichal Simek&usb0 {
3086d034093SMichal Simek	status = "okay";
3096d034093SMichal Simek};
3106d034093SMichal Simek
3116d034093SMichal Simek&dwc3_0 {
3126d034093SMichal Simek	status = "okay";
3136d034093SMichal Simek	dr_mode = "peripheral";
3146d034093SMichal Simek	phy-names = "usb3-phy";
3156d034093SMichal Simek	phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
3166d034093SMichal Simek	maximum-speed = "super-speed";
3176d034093SMichal Simek};
3186d034093SMichal Simek
3196d034093SMichal Simek/* ULPI SMSC USB3320 */
3206d034093SMichal Simek&usb1 {
3216d034093SMichal Simek	status = "okay";
3226d034093SMichal Simek};
3236d034093SMichal Simek
3246d034093SMichal Simek&dwc3_1 {
3256d034093SMichal Simek	status = "okay";
3266d034093SMichal Simek	dr_mode = "host";
3276d034093SMichal Simek	phy-names = "usb3-phy";
3286d034093SMichal Simek	phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
3296d034093SMichal Simek	maximum-speed = "super-speed";
3306d034093SMichal Simek};
3316d034093SMichal Simek
3326d034093SMichal Simek&watchdog0 {
3336d034093SMichal Simek	status = "okay";
3346d034093SMichal Simek};
3356d034093SMichal Simek
3366d034093SMichal Simek&xilinx_ams {
3376d034093SMichal Simek	status = "okay";
3386d034093SMichal Simek};
3396d034093SMichal Simek
3406d034093SMichal Simek&ams_ps {
3416d034093SMichal Simek	status = "okay";
3426d034093SMichal Simek};
343