Back to home page

OSCL-LXR

 
 

    


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 };