1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * dts file for Xilinx ZynqMP ZCU111 4 * 5 * (C) Copyright 2017 - 2018, Xilinx, Inc. 6 * 7 * Michal Simek <michal.simek@xilinx.com> 8 */ 9 10/dts-v1/; 11 12#include "zynqmp.dtsi" 13#include "zynqmp-clk.dtsi" 14#include <dt-bindings/input/input.h> 15#include <dt-bindings/gpio/gpio.h> 16 17/ { 18 model = "ZynqMP ZCU111 RevA"; 19 compatible = "xlnx,zynqmp-zcu111-revA", "xlnx,zynqmp-zcu111", "xlnx,zynqmp"; 20 21 aliases { 22 ethernet0 = &gem3; 23 i2c0 = &i2c0; 24 i2c1 = &i2c1; 25 mmc0 = &sdhci1; 26 rtc0 = &rtc; 27 serial0 = &uart0; 28 serial1 = &dcc; 29 }; 30 31 chosen { 32 bootargs = "earlycon"; 33 stdout-path = "serial0:115200n8"; 34 }; 35 36 memory@0 { 37 device_type = "memory"; 38 reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 39 /* Another 4GB connected to PL */ 40 }; 41 42 gpio-keys { 43 compatible = "gpio-keys"; 44 #address-cells = <1>; 45 #size-cells = <0>; 46 autorepeat; 47 sw19 { 48 label = "sw19"; 49 gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; 50 linux,code = <KEY_DOWN>; 51 gpio-key,wakeup; 52 autorepeat; 53 }; 54 }; 55 56 leds { 57 compatible = "gpio-leds"; 58 heartbeat_led { 59 label = "heartbeat"; 60 gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; 61 linux,default-trigger = "heartbeat"; 62 }; 63 }; 64}; 65 66&dcc { 67 status = "okay"; 68}; 69 70&fpd_dma_chan1 { 71 status = "okay"; 72}; 73 74&fpd_dma_chan2 { 75 status = "okay"; 76}; 77 78&fpd_dma_chan3 { 79 status = "okay"; 80}; 81 82&fpd_dma_chan4 { 83 status = "okay"; 84}; 85 86&fpd_dma_chan5 { 87 status = "okay"; 88}; 89 90&fpd_dma_chan6 { 91 status = "okay"; 92}; 93 94&fpd_dma_chan7 { 95 status = "okay"; 96}; 97 98&fpd_dma_chan8 { 99 status = "okay"; 100}; 101 102&gem3 { 103 status = "okay"; 104 phy-handle = <&phy0>; 105 phy-mode = "rgmii-id"; 106 phy0: phy@c { 107 reg = <0xc>; 108 ti,rx-internal-delay = <0x8>; 109 ti,tx-internal-delay = <0xa>; 110 ti,fifo-depth = <0x1>; 111 }; 112}; 113 114&gpio { 115 status = "okay"; 116}; 117 118&i2c0 { 119 status = "okay"; 120 clock-frequency = <400000>; 121 122 tca6416_u22: gpio@20 { 123 compatible = "ti,tca6416"; 124 reg = <0x20>; 125 gpio-controller; /* interrupt not connected */ 126 #gpio-cells = <2>; 127 /* 128 * IRQ not connected 129 * Lines: 130 * 0 - MAX6643_OT_B 131 * 1 - MAX6643_FANFAIL_B 132 * 2 - MIO26_PMU_INPUT_LS 133 * 4 - SFP_SI5382_INT_ALM 134 * 5 - IIC_MUX_RESET_B 135 * 6 - GEM3_EXP_RESET_B 136 * 10 - FMCP_HSPC_PRSNT_M2C_B 137 * 11 - CLK_SPI_MUX_SEL0 138 * 12 - CLK_SPI_MUX_SEL1 139 * 16 - IRPS5401_ALERT_B 140 * 17 - INA226_PMBUS_ALERT 141 * 3, 7, 13-15 - not connected 142 */ 143 }; 144 145 i2c-mux@75 { /* u23 */ 146 compatible = "nxp,pca9544"; 147 #address-cells = <1>; 148 #size-cells = <0>; 149 reg = <0x75>; 150 i2c@0 { 151 #address-cells = <1>; 152 #size-cells = <0>; 153 reg = <0>; 154 /* PS_PMBUS */ 155 /* PMBUS_ALERT done via pca9544 */ 156 ina226@40 { /* u67 */ 157 compatible = "ti,ina226"; 158 reg = <0x40>; 159 shunt-resistor = <2000>; 160 }; 161 ina226@41 { /* u59 */ 162 compatible = "ti,ina226"; 163 reg = <0x41>; 164 shunt-resistor = <5000>; 165 }; 166 ina226@42 { /* u61 */ 167 compatible = "ti,ina226"; 168 reg = <0x42>; 169 shunt-resistor = <5000>; 170 }; 171 ina226@43 { /* u60 */ 172 compatible = "ti,ina226"; 173 reg = <0x43>; 174 shunt-resistor = <5000>; 175 }; 176 ina226@45 { /* u64 */ 177 compatible = "ti,ina226"; 178 reg = <0x45>; 179 shunt-resistor = <5000>; 180 }; 181 ina226@46 { /* u69 */ 182 compatible = "ti,ina226"; 183 reg = <0x46>; 184 shunt-resistor = <2000>; 185 }; 186 ina226@47 { /* u66 */ 187 compatible = "ti,ina226"; 188 reg = <0x47>; 189 shunt-resistor = <5000>; 190 }; 191 ina226@48 { /* u65 */ 192 compatible = "ti,ina226"; 193 reg = <0x48>; 194 shunt-resistor = <5000>; 195 }; 196 ina226@49 { /* u63 */ 197 compatible = "ti,ina226"; 198 reg = <0x49>; 199 shunt-resistor = <5000>; 200 }; 201 ina226@4a { /* u3 */ 202 compatible = "ti,ina226"; 203 reg = <0x4a>; 204 shunt-resistor = <5000>; 205 }; 206 ina226@4b { /* u71 */ 207 compatible = "ti,ina226"; 208 reg = <0x4b>; 209 shunt-resistor = <5000>; 210 }; 211 ina226@4c { /* u77 */ 212 compatible = "ti,ina226"; 213 reg = <0x4c>; 214 shunt-resistor = <5000>; 215 }; 216 ina226@4d { /* u73 */ 217 compatible = "ti,ina226"; 218 reg = <0x4d>; 219 shunt-resistor = <5000>; 220 }; 221 ina226@4e { /* u79 */ 222 compatible = "ti,ina226"; 223 reg = <0x4e>; 224 shunt-resistor = <5000>; 225 }; 226 }; 227 i2c@1 { 228 #address-cells = <1>; 229 #size-cells = <0>; 230 reg = <1>; 231 /* NC */ 232 }; 233 i2c@2 { 234 #address-cells = <1>; 235 #size-cells = <0>; 236 reg = <2>; 237 irps5401_43: irps54012@43 { /* IRPS5401 - u53 check these */ 238 reg = <0x43>; 239 }; 240 irps5401_44: irps54012@44 { /* IRPS5401 - u55 */ 241 reg = <0x44>; 242 }; 243 irps5401_45: irps54012@45 { /* IRPS5401 - u57 */ 244 reg = <0x45>; 245 }; 246 /* u68 IR38064 +0 */ 247 /* u70 IR38060 +1 */ 248 /* u74 IR38060 +2 */ 249 /* u75 IR38060 +6 */ 250 /* J19 header too */ 251 252 }; 253 i2c@3 { 254 #address-cells = <1>; 255 #size-cells = <0>; 256 reg = <3>; 257 /* SYSMON */ 258 }; 259 }; 260}; 261 262&i2c1 { 263 status = "okay"; 264 clock-frequency = <400000>; 265 266 i2c-mux@74 { /* u26 */ 267 compatible = "nxp,pca9548"; 268 #address-cells = <1>; 269 #size-cells = <0>; 270 reg = <0x74>; 271 i2c@0 { 272 #address-cells = <1>; 273 #size-cells = <0>; 274 reg = <0>; 275 /* 276 * IIC_EEPROM 1kB memory which uses 256B blocks 277 * where every block has different address. 278 * 0 - 256B address 0x54 279 * 256B - 512B address 0x55 280 * 512B - 768B address 0x56 281 * 768B - 1024B address 0x57 282 */ 283 eeprom: eeprom@54 { /* u88 */ 284 compatible = "atmel,24c08"; 285 reg = <0x54>; 286 }; 287 }; 288 i2c@1 { 289 #address-cells = <1>; 290 #size-cells = <0>; 291 reg = <1>; 292 si5341: clock-generator@36 { /* SI5341 - u46 */ 293 reg = <0x36>; 294 }; 295 296 }; 297 i2c@2 { 298 #address-cells = <1>; 299 #size-cells = <0>; 300 reg = <2>; 301 si570_1: clock-generator@5d { /* USER SI570 - u47 */ 302 #clock-cells = <0>; 303 compatible = "silabs,si570"; 304 reg = <0x5d>; 305 temperature-stability = <50>; 306 factory-fout = <300000000>; 307 clock-frequency = <300000000>; 308 }; 309 }; 310 i2c@3 { 311 #address-cells = <1>; 312 #size-cells = <0>; 313 reg = <3>; 314 si570_2: clock-generator@5d { /* USER MGT SI570 - u49 */ 315 #clock-cells = <0>; 316 compatible = "silabs,si570"; 317 reg = <0x5d>; 318 temperature-stability = <50>; 319 factory-fout = <156250000>; 320 clock-frequency = <148500000>; 321 }; 322 }; 323 i2c@4 { 324 #address-cells = <1>; 325 #size-cells = <0>; 326 reg = <4>; 327 si5328: clock-generator@69 { /* SI5328 - u48 */ 328 reg = <0x69>; 329 }; 330 }; 331 i2c@5 { 332 #address-cells = <1>; 333 #size-cells = <0>; 334 reg = <5>; 335 sc18is603@2f { /* sc18is602 - u93 */ 336 compatible = "nxp,sc18is603"; 337 reg = <0x2f>; 338 /* 4 gpios for CS not handled by driver */ 339 /* 340 * USB2ANY cable or 341 * LMK04208 - u90 or 342 * LMX2594 - u102 or 343 * LMX2594 - u103 or 344 * LMX2594 - u104 345 */ 346 }; 347 }; 348 i2c@6 { 349 #address-cells = <1>; 350 #size-cells = <0>; 351 reg = <6>; 352 /* FMC connector */ 353 }; 354 /* 7 NC */ 355 }; 356 357 i2c-mux@75 { 358 compatible = "nxp,pca9548"; /* u27 */ 359 #address-cells = <1>; 360 #size-cells = <0>; 361 reg = <0x75>; 362 363 i2c@0 { 364 #address-cells = <1>; 365 #size-cells = <0>; 366 reg = <0>; 367 /* FMCP_HSPC_IIC */ 368 }; 369 i2c@1 { 370 #address-cells = <1>; 371 #size-cells = <0>; 372 reg = <1>; 373 /* NC */ 374 }; 375 i2c@2 { 376 #address-cells = <1>; 377 #size-cells = <0>; 378 reg = <2>; 379 /* SYSMON */ 380 }; 381 i2c@3 { 382 #address-cells = <1>; 383 #size-cells = <0>; 384 reg = <3>; 385 /* DDR4 SODIMM */ 386 }; 387 i2c@4 { 388 #address-cells = <1>; 389 #size-cells = <0>; 390 reg = <4>; 391 /* SFP3 */ 392 }; 393 i2c@5 { 394 #address-cells = <1>; 395 #size-cells = <0>; 396 reg = <5>; 397 /* SFP2 */ 398 }; 399 i2c@6 { 400 #address-cells = <1>; 401 #size-cells = <0>; 402 reg = <6>; 403 /* SFP1 */ 404 }; 405 i2c@7 { 406 #address-cells = <1>; 407 #size-cells = <0>; 408 reg = <7>; 409 /* SFP0 */ 410 }; 411 }; 412}; 413 414&rtc { 415 status = "okay"; 416}; 417 418&sata { 419 status = "okay"; 420 /* SATA OOB timing settings */ 421 ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 422 ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 423 ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 424 ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 425 ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 426 ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 427 ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 428 ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 429}; 430 431/* SD1 with level shifter */ 432&sdhci1 { 433 status = "okay"; 434 no-1-8-v; 435}; 436 437&uart0 { 438 status = "okay"; 439}; 440 441/* ULPI SMSC USB3320 */ 442&usb0 { 443 status = "okay"; 444}; 445