0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003 * dts file for Xilinx ZynqMP ZCU100 revC
0004 *
0005 * (C) Copyright 2016 - 2021, Xilinx, Inc.
0006 *
0007 * Michal Simek <michal.simek@xilinx.com>
0008 * Nathalie Chan King Choy
0009 */
0010
0011 /dts-v1/;
0012
0013 #include "zynqmp.dtsi"
0014 #include "zynqmp-clk-ccf.dtsi"
0015 #include <dt-bindings/input/input.h>
0016 #include <dt-bindings/interrupt-controller/irq.h>
0017 #include <dt-bindings/gpio/gpio.h>
0018 #include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
0019 #include <dt-bindings/phy/phy.h>
0020
0021 / {
0022 model = "ZynqMP ZCU100 RevC";
0023 compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
0024
0025 aliases {
0026 i2c0 = &i2c1;
0027 rtc0 = &rtc;
0028 serial0 = &uart1;
0029 serial1 = &uart0;
0030 serial2 = &dcc;
0031 spi0 = &spi0;
0032 spi1 = &spi1;
0033 usb0 = &usb0;
0034 usb1 = &usb1;
0035 mmc0 = &sdhci0;
0036 mmc1 = &sdhci1;
0037 };
0038
0039 chosen {
0040 bootargs = "earlycon";
0041 stdout-path = "serial0:115200n8";
0042 };
0043
0044 memory@0 {
0045 device_type = "memory";
0046 reg = <0x0 0x0 0x0 0x80000000>;
0047 };
0048
0049 gpio-keys {
0050 compatible = "gpio-keys";
0051 autorepeat;
0052 switch-4 {
0053 label = "sw4";
0054 gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
0055 linux,code = <KEY_POWER>;
0056 wakeup-source;
0057 autorepeat;
0058 };
0059 };
0060
0061 leds {
0062 compatible = "gpio-leds";
0063 led-ds2 {
0064 label = "ds2";
0065 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
0066 linux,default-trigger = "heartbeat";
0067 };
0068
0069 led-ds3 {
0070 label = "ds3";
0071 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
0072 linux,default-trigger = "phy0tx"; /* WLAN tx */
0073 default-state = "off";
0074 };
0075
0076 led-ds4 {
0077 label = "ds4";
0078 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
0079 linux,default-trigger = "phy0rx"; /* WLAN rx */
0080 default-state = "off";
0081 };
0082
0083 led-ds5 {
0084 label = "ds5";
0085 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
0086 linux,default-trigger = "bluetooth-power";
0087 };
0088
0089 vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
0090 label = "vbus_det";
0091 gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
0092 default-state = "on";
0093 };
0094 };
0095
0096 wmmcsdio_fixed: fixedregulator-mmcsdio {
0097 compatible = "regulator-fixed";
0098 regulator-name = "wmmcsdio_fixed";
0099 regulator-min-microvolt = <3300000>;
0100 regulator-max-microvolt = <3300000>;
0101 regulator-always-on;
0102 regulator-boot-on;
0103 };
0104
0105 sdio_pwrseq: sdio-pwrseq {
0106 compatible = "mmc-pwrseq-simple";
0107 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
0108 post-power-on-delay-ms = <10>;
0109 };
0110
0111 ina226 {
0112 compatible = "iio-hwmon";
0113 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
0114 };
0115
0116 si5335_0: si5335_0 { /* clk0_usb - u23 */
0117 compatible = "fixed-clock";
0118 #clock-cells = <0>;
0119 clock-frequency = <26000000>;
0120 };
0121
0122 si5335_1: si5335_1 { /* clk1_dp - u23 */
0123 compatible = "fixed-clock";
0124 #clock-cells = <0>;
0125 clock-frequency = <27000000>;
0126 };
0127 };
0128
0129 &dcc {
0130 status = "okay";
0131 };
0132
0133 &gpio {
0134 status = "okay";
0135 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL",
0136 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS",
0137 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1",
0138 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1",
0139 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT",
0140 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE",
0141 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL",
0142 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C",
0143 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E",
0144 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3",
0145 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2",
0146 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3",
0147 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK",
0148 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1",
0149 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6",
0150 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */
0151 "", "",
0152 "", "", "", "", "", "", "", "", "", "",
0153 "", "", "", "", "", "", "", "", "", "",
0154 "", "", "", "", "", "", "", "", "", "",
0155 "", "", "", "", "", "", "", "", "", "",
0156 "", "", "", "", "", "", "", "", "", "",
0157 "", "", "", "", "", "", "", "", "", "",
0158 "", "", "", "", "", "", "", "", "", "",
0159 "", "", "", "", "", "", "", "", "", "",
0160 "", "", "", "", "", "", "", "", "", "",
0161 "", "", "", "";
0162 };
0163
0164 &i2c1 {
0165 status = "okay";
0166 pinctrl-names = "default", "gpio";
0167 pinctrl-0 = <&pinctrl_i2c1_default>;
0168 pinctrl-1 = <&pinctrl_i2c1_gpio>;
0169 scl-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
0170 sda-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
0171 clock-frequency = <100000>;
0172 i2c-mux@75 { /* u11 */
0173 compatible = "nxp,pca9548";
0174 #address-cells = <1>;
0175 #size-cells = <0>;
0176 reg = <0x75>;
0177 i2csw_0: i2c@0 {
0178 #address-cells = <1>;
0179 #size-cells = <0>;
0180 reg = <0>;
0181 label = "LS-I2C0";
0182 };
0183 i2csw_1: i2c@1 {
0184 #address-cells = <1>;
0185 #size-cells = <0>;
0186 reg = <1>;
0187 label = "LS-I2C1";
0188 };
0189 i2csw_2: i2c@2 {
0190 #address-cells = <1>;
0191 #size-cells = <0>;
0192 reg = <2>;
0193 label = "HS-I2C2";
0194 };
0195 i2csw_3: i2c@3 {
0196 #address-cells = <1>;
0197 #size-cells = <0>;
0198 reg = <3>;
0199 label = "HS-I2C3";
0200 };
0201 i2csw_4: i2c@4 {
0202 #address-cells = <1>;
0203 #size-cells = <0>;
0204 reg = <0x4>;
0205
0206 pmic: pmic@5e { /* Custom TI PMIC u33 */
0207 compatible = "ti,tps65086";
0208 reg = <0x5e>;
0209 interrupt-parent = <&gpio>;
0210 interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
0211 #gpio-cells = <2>;
0212 gpio-controller;
0213 };
0214 };
0215 i2csw_5: i2c@5 {
0216 #address-cells = <1>;
0217 #size-cells = <0>;
0218 reg = <5>;
0219 /* PS_PMBUS */
0220 u35: ina226@40 { /* u35 */
0221 compatible = "ti,ina226";
0222 #io-channel-cells = <1>;
0223 reg = <0x40>;
0224 shunt-resistor = <10000>;
0225 /* MIO31 is alert which should be routed to PMUFW */
0226 };
0227 };
0228 i2csw_6: i2c@6 {
0229 #address-cells = <1>;
0230 #size-cells = <0>;
0231 reg = <6>;
0232 /*
0233 * Not Connected
0234 */
0235 };
0236 i2csw_7: i2c@7 {
0237 #address-cells = <1>;
0238 #size-cells = <0>;
0239 reg = <7>;
0240 /*
0241 * usb5744 (DNP) - U5
0242 * 100kHz - this is default freq for us
0243 */
0244 };
0245 };
0246 };
0247
0248 &pinctrl0 {
0249 status = "okay";
0250 pinctrl_i2c1_default: i2c1-default {
0251 mux {
0252 groups = "i2c1_1_grp";
0253 function = "i2c1";
0254 };
0255
0256 conf {
0257 groups = "i2c1_1_grp";
0258 bias-pull-up;
0259 slew-rate = <SLEW_RATE_SLOW>;
0260 power-source = <IO_STANDARD_LVCMOS18>;
0261 };
0262 };
0263
0264 pinctrl_i2c1_gpio: i2c1-gpio {
0265 mux {
0266 groups = "gpio0_4_grp", "gpio0_5_grp";
0267 function = "gpio0";
0268 };
0269
0270 conf {
0271 groups = "gpio0_4_grp", "gpio0_5_grp";
0272 slew-rate = <SLEW_RATE_SLOW>;
0273 power-source = <IO_STANDARD_LVCMOS18>;
0274 };
0275 };
0276
0277 pinctrl_sdhci0_default: sdhci0-default {
0278 mux {
0279 groups = "sdio0_3_grp";
0280 function = "sdio0";
0281 };
0282
0283 conf {
0284 groups = "sdio0_3_grp";
0285 slew-rate = <SLEW_RATE_SLOW>;
0286 power-source = <IO_STANDARD_LVCMOS18>;
0287 bias-disable;
0288 };
0289
0290 mux-cd {
0291 groups = "sdio0_cd_0_grp";
0292 function = "sdio0_cd";
0293 };
0294
0295 conf-cd {
0296 groups = "sdio0_cd_0_grp";
0297 bias-high-impedance;
0298 bias-pull-up;
0299 slew-rate = <SLEW_RATE_SLOW>;
0300 power-source = <IO_STANDARD_LVCMOS18>;
0301 };
0302 };
0303
0304 pinctrl_sdhci1_default: sdhci1-default {
0305 mux {
0306 groups = "sdio1_2_grp";
0307 function = "sdio1";
0308 };
0309
0310 conf {
0311 groups = "sdio1_2_grp";
0312 slew-rate = <SLEW_RATE_SLOW>;
0313 power-source = <IO_STANDARD_LVCMOS18>;
0314 bias-disable;
0315 };
0316 };
0317
0318 pinctrl_spi0_default: spi0-default {
0319 mux {
0320 groups = "spi0_3_grp";
0321 function = "spi0";
0322 };
0323
0324 conf {
0325 groups = "spi0_3_grp";
0326 bias-disable;
0327 slew-rate = <SLEW_RATE_SLOW>;
0328 power-source = <IO_STANDARD_LVCMOS18>;
0329 };
0330
0331 mux-cs {
0332 groups = "spi0_ss_9_grp";
0333 function = "spi0_ss";
0334 };
0335
0336 conf-cs {
0337 groups = "spi0_ss_9_grp";
0338 bias-disable;
0339 };
0340
0341 };
0342
0343 pinctrl_spi1_default: spi1-default {
0344 mux {
0345 groups = "spi1_0_grp";
0346 function = "spi1";
0347 };
0348
0349 conf {
0350 groups = "spi1_0_grp";
0351 bias-disable;
0352 slew-rate = <SLEW_RATE_SLOW>;
0353 power-source = <IO_STANDARD_LVCMOS18>;
0354 };
0355
0356 mux-cs {
0357 groups = "spi1_ss_0_grp";
0358 function = "spi1_ss";
0359 };
0360
0361 conf-cs {
0362 groups = "spi1_ss_0_grp";
0363 bias-disable;
0364 };
0365
0366 };
0367
0368 pinctrl_uart0_default: uart0-default {
0369 mux {
0370 groups = "uart0_0_grp";
0371 function = "uart0";
0372 };
0373
0374 conf {
0375 groups = "uart0_0_grp";
0376 slew-rate = <SLEW_RATE_SLOW>;
0377 power-source = <IO_STANDARD_LVCMOS18>;
0378 };
0379
0380 conf-rx {
0381 pins = "MIO3";
0382 bias-high-impedance;
0383 };
0384
0385 conf-tx {
0386 pins = "MIO2";
0387 bias-disable;
0388 };
0389 };
0390
0391 pinctrl_uart1_default: uart1-default {
0392 mux {
0393 groups = "uart1_0_grp";
0394 function = "uart1";
0395 };
0396
0397 conf {
0398 groups = "uart1_0_grp";
0399 slew-rate = <SLEW_RATE_SLOW>;
0400 power-source = <IO_STANDARD_LVCMOS18>;
0401 };
0402
0403 conf-rx {
0404 pins = "MIO1";
0405 bias-high-impedance;
0406 };
0407
0408 conf-tx {
0409 pins = "MIO0";
0410 bias-disable;
0411 };
0412 };
0413
0414 pinctrl_usb0_default: usb0-default {
0415 mux {
0416 groups = "usb0_0_grp";
0417 function = "usb0";
0418 };
0419
0420 conf {
0421 groups = "usb0_0_grp";
0422 slew-rate = <SLEW_RATE_SLOW>;
0423 power-source = <IO_STANDARD_LVCMOS18>;
0424 };
0425
0426 conf-rx {
0427 pins = "MIO52", "MIO53", "MIO55";
0428 bias-high-impedance;
0429 };
0430
0431 conf-tx {
0432 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
0433 "MIO60", "MIO61", "MIO62", "MIO63";
0434 bias-disable;
0435 };
0436 };
0437
0438 pinctrl_usb1_default: usb1-default {
0439 mux {
0440 groups = "usb1_0_grp";
0441 function = "usb1";
0442 };
0443
0444 conf {
0445 groups = "usb1_0_grp";
0446 slew-rate = <SLEW_RATE_SLOW>;
0447 power-source = <IO_STANDARD_LVCMOS18>;
0448 };
0449
0450 conf-rx {
0451 pins = "MIO64", "MIO65", "MIO67";
0452 bias-high-impedance;
0453 };
0454
0455 conf-tx {
0456 pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
0457 "MIO72", "MIO73", "MIO74", "MIO75";
0458 bias-disable;
0459 };
0460 };
0461 };
0462
0463 &psgtr {
0464 status = "okay";
0465 /* usb3, dp */
0466 clocks = <&si5335_0>, <&si5335_1>;
0467 clock-names = "ref0", "ref1";
0468 };
0469
0470 &rtc {
0471 status = "okay";
0472 };
0473
0474 /* SD0 only supports 3.3V, no level shifter */
0475 &sdhci0 {
0476 status = "okay";
0477 no-1-8-v;
0478 disable-wp;
0479 pinctrl-names = "default";
0480 pinctrl-0 = <&pinctrl_sdhci0_default>;
0481 xlnx,mio-bank = <0>;
0482 };
0483
0484 &sdhci1 {
0485 status = "okay";
0486 bus-width = <0x4>;
0487 pinctrl-names = "default";
0488 pinctrl-0 = <&pinctrl_sdhci1_default>;
0489 xlnx,mio-bank = <0>;
0490 non-removable;
0491 disable-wp;
0492 cap-power-off-card;
0493 mmc-pwrseq = <&sdio_pwrseq>;
0494 vqmmc-supply = <&wmmcsdio_fixed>;
0495 #address-cells = <1>;
0496 #size-cells = <0>;
0497 wlcore: wifi@2 {
0498 compatible = "ti,wl1831";
0499 reg = <2>;
0500 interrupt-parent = <&gpio>;
0501 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */
0502 };
0503 };
0504
0505 &spi0 { /* Low Speed connector */
0506 status = "okay";
0507 label = "LS-SPI0";
0508 num-cs = <1>;
0509 pinctrl-names = "default";
0510 pinctrl-0 = <&pinctrl_spi0_default>;
0511 };
0512
0513 &spi1 { /* High Speed connector */
0514 status = "okay";
0515 label = "HS-SPI1";
0516 num-cs = <1>;
0517 pinctrl-names = "default";
0518 pinctrl-0 = <&pinctrl_spi1_default>;
0519 };
0520
0521 &uart0 {
0522 status = "okay";
0523 pinctrl-names = "default";
0524 pinctrl-0 = <&pinctrl_uart0_default>;
0525 bluetooth {
0526 compatible = "ti,wl1831-st";
0527 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
0528 };
0529 };
0530
0531 &uart1 {
0532 status = "okay";
0533 pinctrl-names = "default";
0534 pinctrl-0 = <&pinctrl_uart1_default>;
0535 };
0536
0537 /* ULPI SMSC USB3320 */
0538 &usb0 {
0539 status = "okay";
0540 pinctrl-names = "default";
0541 pinctrl-0 = <&pinctrl_usb0_default>;
0542 phy-names = "usb3-phy";
0543 phys = <&psgtr 2 PHY_TYPE_USB3 0 0>;
0544 };
0545
0546 &dwc3_0 {
0547 status = "okay";
0548 dr_mode = "peripheral";
0549 maximum-speed = "super-speed";
0550 };
0551
0552 /* ULPI SMSC USB3320 */
0553 &usb1 {
0554 status = "okay";
0555 pinctrl-names = "default";
0556 pinctrl-0 = <&pinctrl_usb1_default>;
0557 phy-names = "usb3-phy";
0558 phys = <&psgtr 3 PHY_TYPE_USB3 1 0>;
0559 };
0560
0561 &dwc3_1 {
0562 status = "okay";
0563 dr_mode = "host";
0564 maximum-speed = "super-speed";
0565 };
0566
0567 &watchdog0 {
0568 status = "okay";
0569 };
0570
0571 &zynqmp_dpdma {
0572 status = "okay";
0573 };
0574
0575 &zynqmp_dpsub {
0576 status = "okay";
0577 phy-names = "dp-phy0", "dp-phy1";
0578 phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
0579 <&psgtr 0 PHY_TYPE_DP 1 1>;
0580 };