1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * dts file for Xilinx ZynqMP ZCU100 revC 4 * 5 * (C) Copyright 2016 - 2022, Xilinx, Inc. 6 * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc. 7 * 8 * Michal Simek <michal.simek@amd.com> 9 * Nathalie Chan King Choy 10 */ 11 12/dts-v1/; 13 14#include "zynqmp.dtsi" 15#include "zynqmp-clk-ccf.dtsi" 16#include <dt-bindings/input/input.h> 17#include <dt-bindings/interrupt-controller/irq.h> 18#include <dt-bindings/gpio/gpio.h> 19#include <dt-bindings/pinctrl/pinctrl-zynqmp.h> 20#include <dt-bindings/phy/phy.h> 21 22/ { 23 model = "ZynqMP ZCU100 RevC"; 24 compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp"; 25 26 aliases { 27 i2c0 = &i2c1; 28 rtc0 = &rtc; 29 serial0 = &uart1; 30 serial1 = &uart0; 31 serial2 = &dcc; 32 spi0 = &spi0; 33 spi1 = &spi1; 34 usb0 = &usb0; 35 usb1 = &usb1; 36 mmc0 = &sdhci0; 37 mmc1 = &sdhci1; 38 }; 39 40 chosen { 41 bootargs = "earlycon"; 42 stdout-path = "serial0:115200n8"; 43 }; 44 45 memory@0 { 46 device_type = "memory"; 47 reg = <0x0 0x0 0x0 0x80000000>; 48 }; 49 50 gpio-keys { 51 compatible = "gpio-keys"; 52 autorepeat; 53 switch-4 { 54 label = "sw4"; 55 gpios = <&gpio 23 GPIO_ACTIVE_LOW>; 56 linux,code = <KEY_POWER>; 57 wakeup-source; 58 autorepeat; 59 }; 60 }; 61 62 iio-hwmon { 63 compatible = "iio-hwmon"; 64 io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>, 65 <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>, 66 <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>, 67 <&xilinx_ams 9>, <&xilinx_ams 10>, 68 <&xilinx_ams 11>, <&xilinx_ams 12>; 69 }; 70 71 leds { 72 compatible = "gpio-leds"; 73 led-ds2 { 74 label = "ds2"; 75 gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; 76 linux,default-trigger = "heartbeat"; 77 }; 78 79 led-ds3 { 80 label = "ds3"; 81 gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; 82 linux,default-trigger = "phy0tx"; /* WLAN tx */ 83 default-state = "off"; 84 }; 85 86 led-ds4 { 87 label = "ds4"; 88 gpios = <&gpio 18 GPIO_ACTIVE_HIGH>; 89 linux,default-trigger = "phy0rx"; /* WLAN rx */ 90 default-state = "off"; 91 }; 92 93 led-ds5 { 94 label = "ds5"; 95 gpios = <&gpio 17 GPIO_ACTIVE_HIGH>; 96 linux,default-trigger = "bluetooth-power"; 97 }; 98 99 led-vbus-det { /* U5 USB5744 VBUS detection via MIO25 */ 100 label = "vbus_det"; 101 gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; 102 default-state = "on"; 103 }; 104 }; 105 106 wmmcsdio_fixed: fixedregulator-mmcsdio { 107 compatible = "regulator-fixed"; 108 regulator-name = "wmmcsdio_fixed"; 109 regulator-min-microvolt = <3300000>; 110 regulator-max-microvolt = <3300000>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114 115 sdio_pwrseq: sdio-pwrseq { 116 compatible = "mmc-pwrseq-simple"; 117 reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */ 118 post-power-on-delay-ms = <10>; 119 }; 120 121 ina226 { 122 compatible = "iio-hwmon"; 123 io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>; 124 }; 125 126 si5335_0: si5335_0 { /* clk0_usb - u23 */ 127 compatible = "fixed-clock"; 128 #clock-cells = <0>; 129 clock-frequency = <26000000>; 130 }; 131 132 si5335_1: si5335_1 { /* clk1_dp - u23 */ 133 compatible = "fixed-clock"; 134 #clock-cells = <0>; 135 clock-frequency = <27000000>; 136 }; 137}; 138 139&dcc { 140 status = "okay"; 141}; 142 143&gpio { 144 status = "okay"; 145 gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL", 146 "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS", 147 "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1", 148 "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1", 149 "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT", 150 "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE", 151 "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL", 152 "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C", 153 "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E", 154 "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3", 155 "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2", 156 "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3", 157 "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK", 158 "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1", 159 "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6", 160 "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */ 161 "", "", 162 "", "", "", "", "", "", "", "", "", "", 163 "", "", "", "", "", "", "", "", "", "", 164 "", "", "", "", "", "", "", "", "", "", 165 "", "", "", "", "", "", "", "", "", "", 166 "", "", "", "", "", "", "", "", "", "", 167 "", "", "", "", "", "", "", "", "", "", 168 "", "", "", "", "", "", "", "", "", "", 169 "", "", "", "", "", "", "", "", "", "", 170 "", "", "", "", "", "", "", "", "", "", 171 "", "", "", ""; 172}; 173 174&gpu { 175 status = "okay"; 176}; 177 178&i2c1 { 179 status = "okay"; 180 pinctrl-names = "default", "gpio"; 181 pinctrl-0 = <&pinctrl_i2c1_default>; 182 pinctrl-1 = <&pinctrl_i2c1_gpio>; 183 scl-gpios = <&gpio 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 184 sda-gpios = <&gpio 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 185 clock-frequency = <100000>; 186 i2c-mux@75 { /* u11 */ 187 compatible = "nxp,pca9548"; 188 #address-cells = <1>; 189 #size-cells = <0>; 190 reg = <0x75>; 191 i2csw_0: i2c@0 { 192 #address-cells = <1>; 193 #size-cells = <0>; 194 reg = <0>; 195 label = "LS-I2C0"; 196 }; 197 i2csw_1: i2c@1 { 198 #address-cells = <1>; 199 #size-cells = <0>; 200 reg = <1>; 201 label = "LS-I2C1"; 202 }; 203 i2csw_2: i2c@2 { 204 #address-cells = <1>; 205 #size-cells = <0>; 206 reg = <2>; 207 label = "HS-I2C2"; 208 }; 209 i2csw_3: i2c@3 { 210 #address-cells = <1>; 211 #size-cells = <0>; 212 reg = <3>; 213 label = "HS-I2C3"; 214 }; 215 i2csw_4: i2c@4 { 216 #address-cells = <1>; 217 #size-cells = <0>; 218 reg = <0x4>; 219 220 pmic: pmic@5e { /* Custom TI PMIC u33 */ 221 compatible = "ti,tps65086"; 222 reg = <0x5e>; 223 interrupt-parent = <&gpio>; 224 interrupts = <77 IRQ_TYPE_LEVEL_LOW>; 225 #gpio-cells = <2>; 226 gpio-controller; 227 }; 228 }; 229 i2csw_5: i2c@5 { 230 #address-cells = <1>; 231 #size-cells = <0>; 232 reg = <5>; 233 /* PS_PMBUS */ 234 u35: ina226@40 { /* u35 */ 235 compatible = "ti,ina226"; 236 #io-channel-cells = <1>; 237 reg = <0x40>; 238 shunt-resistor = <10000>; 239 /* MIO31 is alert which should be routed to PMUFW */ 240 }; 241 }; 242 i2csw_6: i2c@6 { 243 #address-cells = <1>; 244 #size-cells = <0>; 245 reg = <6>; 246 /* 247 * Not Connected 248 */ 249 }; 250 i2csw_7: i2c@7 { 251 #address-cells = <1>; 252 #size-cells = <0>; 253 reg = <7>; 254 /* 255 * usb5744 (DNP) - U5 256 * 100kHz - this is default freq for us 257 */ 258 }; 259 }; 260}; 261 262&pinctrl0 { 263 status = "okay"; 264 pinctrl_i2c1_default: i2c1-default { 265 mux { 266 groups = "i2c1_1_grp"; 267 function = "i2c1"; 268 }; 269 270 conf { 271 groups = "i2c1_1_grp"; 272 bias-pull-up; 273 slew-rate = <SLEW_RATE_SLOW>; 274 power-source = <IO_STANDARD_LVCMOS18>; 275 }; 276 }; 277 278 pinctrl_i2c1_gpio: i2c1-gpio { 279 mux { 280 groups = "gpio0_4_grp", "gpio0_5_grp"; 281 function = "gpio0"; 282 }; 283 284 conf { 285 groups = "gpio0_4_grp", "gpio0_5_grp"; 286 slew-rate = <SLEW_RATE_SLOW>; 287 power-source = <IO_STANDARD_LVCMOS18>; 288 }; 289 }; 290 291 pinctrl_sdhci0_default: sdhci0-default { 292 mux { 293 groups = "sdio0_3_grp"; 294 function = "sdio0"; 295 }; 296 297 conf { 298 groups = "sdio0_3_grp"; 299 slew-rate = <SLEW_RATE_SLOW>; 300 power-source = <IO_STANDARD_LVCMOS18>; 301 bias-disable; 302 }; 303 304 mux-cd { 305 groups = "sdio0_cd_0_grp"; 306 function = "sdio0_cd"; 307 }; 308 309 conf-cd { 310 groups = "sdio0_cd_0_grp"; 311 bias-high-impedance; 312 bias-pull-up; 313 slew-rate = <SLEW_RATE_SLOW>; 314 power-source = <IO_STANDARD_LVCMOS18>; 315 }; 316 }; 317 318 pinctrl_sdhci1_default: sdhci1-default { 319 mux { 320 groups = "sdio1_2_grp"; 321 function = "sdio1"; 322 }; 323 324 conf { 325 groups = "sdio1_2_grp"; 326 slew-rate = <SLEW_RATE_SLOW>; 327 power-source = <IO_STANDARD_LVCMOS18>; 328 bias-disable; 329 }; 330 }; 331 332 pinctrl_spi0_default: spi0-default { 333 mux { 334 groups = "spi0_3_grp"; 335 function = "spi0"; 336 }; 337 338 conf { 339 groups = "spi0_3_grp"; 340 bias-disable; 341 slew-rate = <SLEW_RATE_SLOW>; 342 power-source = <IO_STANDARD_LVCMOS18>; 343 }; 344 345 mux-cs { 346 groups = "spi0_ss_9_grp"; 347 function = "spi0_ss"; 348 }; 349 350 conf-cs { 351 groups = "spi0_ss_9_grp"; 352 bias-disable; 353 }; 354 355 }; 356 357 pinctrl_spi1_default: spi1-default { 358 mux { 359 groups = "spi1_0_grp"; 360 function = "spi1"; 361 }; 362 363 conf { 364 groups = "spi1_0_grp"; 365 bias-disable; 366 slew-rate = <SLEW_RATE_SLOW>; 367 power-source = <IO_STANDARD_LVCMOS18>; 368 }; 369 370 mux-cs { 371 groups = "spi1_ss_0_grp"; 372 function = "spi1_ss"; 373 }; 374 375 conf-cs { 376 groups = "spi1_ss_0_grp"; 377 bias-disable; 378 }; 379 380 }; 381 382 pinctrl_uart0_default: uart0-default { 383 mux { 384 groups = "uart0_0_grp"; 385 function = "uart0"; 386 }; 387 388 conf { 389 groups = "uart0_0_grp"; 390 slew-rate = <SLEW_RATE_SLOW>; 391 power-source = <IO_STANDARD_LVCMOS18>; 392 }; 393 394 conf-rx { 395 pins = "MIO3"; 396 bias-high-impedance; 397 }; 398 399 conf-tx { 400 pins = "MIO2"; 401 bias-disable; 402 }; 403 }; 404 405 pinctrl_uart1_default: uart1-default { 406 mux { 407 groups = "uart1_0_grp"; 408 function = "uart1"; 409 }; 410 411 conf { 412 groups = "uart1_0_grp"; 413 slew-rate = <SLEW_RATE_SLOW>; 414 power-source = <IO_STANDARD_LVCMOS18>; 415 }; 416 417 conf-rx { 418 pins = "MIO1"; 419 bias-high-impedance; 420 }; 421 422 conf-tx { 423 pins = "MIO0"; 424 bias-disable; 425 }; 426 }; 427 428 pinctrl_usb0_default: usb0-default { 429 mux { 430 groups = "usb0_0_grp"; 431 function = "usb0"; 432 }; 433 434 conf { 435 groups = "usb0_0_grp"; 436 power-source = <IO_STANDARD_LVCMOS18>; 437 }; 438 439 conf-rx { 440 pins = "MIO52", "MIO53", "MIO55"; 441 bias-high-impedance; 442 drive-strength = <12>; 443 slew-rate = <SLEW_RATE_FAST>; 444 }; 445 446 conf-tx { 447 pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59", 448 "MIO60", "MIO61", "MIO62", "MIO63"; 449 bias-disable; 450 drive-strength = <4>; 451 slew-rate = <SLEW_RATE_SLOW>; 452 }; 453 }; 454 455 pinctrl_usb1_default: usb1-default { 456 mux { 457 groups = "usb1_0_grp"; 458 function = "usb1"; 459 }; 460 461 conf { 462 groups = "usb1_0_grp"; 463 power-source = <IO_STANDARD_LVCMOS18>; 464 }; 465 466 conf-rx { 467 pins = "MIO64", "MIO65", "MIO67"; 468 bias-high-impedance; 469 drive-strength = <12>; 470 slew-rate = <SLEW_RATE_FAST>; 471 }; 472 473 conf-tx { 474 pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71", 475 "MIO72", "MIO73", "MIO74", "MIO75"; 476 bias-disable; 477 drive-strength = <4>; 478 slew-rate = <SLEW_RATE_SLOW>; 479 }; 480 }; 481}; 482 483&psgtr { 484 status = "okay"; 485 /* usb3, dp */ 486 clocks = <&si5335_0>, <&si5335_1>; 487 clock-names = "ref0", "ref1"; 488}; 489 490&rtc { 491 status = "okay"; 492}; 493 494/* SD0 only supports 3.3V, no level shifter */ 495&sdhci0 { 496 status = "okay"; 497 no-1-8-v; 498 disable-wp; 499 pinctrl-names = "default"; 500 pinctrl-0 = <&pinctrl_sdhci0_default>; 501 xlnx,mio-bank = <0>; 502}; 503 504&sdhci1 { 505 status = "okay"; 506 bus-width = <0x4>; 507 pinctrl-names = "default"; 508 pinctrl-0 = <&pinctrl_sdhci1_default>; 509 xlnx,mio-bank = <0>; 510 non-removable; 511 disable-wp; 512 cap-power-off-card; 513 mmc-pwrseq = <&sdio_pwrseq>; 514 vqmmc-supply = <&wmmcsdio_fixed>; 515 #address-cells = <1>; 516 #size-cells = <0>; 517 wlcore: wifi@2 { 518 compatible = "ti,wl1831"; 519 reg = <2>; 520 interrupt-parent = <&gpio>; 521 interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */ 522 }; 523}; 524 525&spi0 { /* Low Speed connector */ 526 status = "okay"; 527 label = "LS-SPI0"; 528 num-cs = <1>; 529 pinctrl-names = "default"; 530 pinctrl-0 = <&pinctrl_spi0_default>; 531}; 532 533&spi1 { /* High Speed connector */ 534 status = "okay"; 535 label = "HS-SPI1"; 536 num-cs = <1>; 537 pinctrl-names = "default"; 538 pinctrl-0 = <&pinctrl_spi1_default>; 539}; 540 541&uart0 { 542 status = "okay"; 543 pinctrl-names = "default"; 544 pinctrl-0 = <&pinctrl_uart0_default>; 545 bluetooth { 546 compatible = "ti,wl1831-st"; 547 enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>; 548 }; 549}; 550 551&uart1 { 552 status = "okay"; 553 pinctrl-names = "default"; 554 pinctrl-0 = <&pinctrl_uart1_default>; 555}; 556 557/* ULPI SMSC USB3320 */ 558&usb0 { 559 status = "okay"; 560 pinctrl-names = "default"; 561 pinctrl-0 = <&pinctrl_usb0_default>; 562 phy-names = "usb3-phy"; 563 phys = <&psgtr 2 PHY_TYPE_USB3 0 0>; 564 /delete-property/ reset-gpios; 565}; 566 567&dwc3_0 { 568 status = "okay"; 569 dr_mode = "peripheral"; 570 maximum-speed = "super-speed"; 571}; 572 573/* ULPI SMSC USB3320 */ 574&usb1 { 575 status = "okay"; 576 pinctrl-names = "default"; 577 pinctrl-0 = <&pinctrl_usb1_default>; 578 phy-names = "usb3-phy"; 579 phys = <&psgtr 3 PHY_TYPE_USB3 1 0>; 580 reset-gpios = <&modepin_gpio 1 GPIO_ACTIVE_LOW>; 581}; 582 583&dwc3_1 { 584 status = "okay"; 585 dr_mode = "host"; 586 maximum-speed = "super-speed"; 587}; 588 589&watchdog0 { 590 status = "okay"; 591}; 592 593&xilinx_ams { 594 status = "okay"; 595}; 596 597&ams_ps { 598 status = "okay"; 599}; 600 601&zynqmp_dpdma { 602 status = "okay"; 603}; 604 605&zynqmp_dpsub { 606 status = "okay"; 607 phy-names = "dp-phy0", "dp-phy1"; 608 phys = <&psgtr 1 PHY_TYPE_DP 0 1>, 609 <&psgtr 0 PHY_TYPE_DP 1 1>; 610}; 611