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