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