]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
arm64: zynqmp: Add/Update/Sync DTs for xilinx platforms
authorMichal Simek <michal.simek@xilinx.com>
Wed, 27 Mar 2019 08:11:14 +0000 (09:11 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 3 Apr 2019 08:31:29 +0000 (10:31 +0200)
Add/Update/Sync device tree descriptions for Xilinx boards.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
21 files changed:
arch/arm64/boot/dts/xilinx/Makefile
arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/xilinx/zynqmp-clk.dtsi
arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revB.dts [new file with mode: 0644]
arch/arm64/boot/dts/xilinx/zynqmp-zc1285-revA.dts [new file with mode: 0644]
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm017-dc3.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm019-dc5.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revB.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts [new file with mode: 0644]
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
arch/arm64/boot/dts/xilinx/zynqmp.dtsi

index 60f5443f3ef40b388c0894f327ca0da2a23086b9..779392cdfe088f1233301844064adbe9de0da57d 100644 (file)
@@ -3,6 +3,8 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += avnet-ultra96-rev1.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1232-revA.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1254-revA.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1275-revA.dtb
+dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1275-revB.dtb
+dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1285-revA.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm015-dc1.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm016-dc2.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm017-dc3.dtb
@@ -13,5 +15,6 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-revA.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-revB.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-rev1.0.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu104-revA.dtb
+dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu104-revC.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-revA.dtb
 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu111-revA.dtb
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp-clk-ccf.dtsi
new file mode 100644 (file)
index 0000000..d4ce849
--- /dev/null
@@ -0,0 +1,313 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Clock specification for Xilinx ZynqMP
+ *
+ * (C) Copyright 2017, Xilinx, Inc.
+ *
+ * Michal Simek <michal.simek@xilinx.com>
+ */
+
+#include <dt-bindings/clock/xlnx-zynqmp-clk.h>
+/ {
+       fclk0: fclk0 {
+               status = "okay";
+               compatible = "xlnx,fclk";
+               clocks = <&zynqmp_clk PL0_REF>;
+       };
+
+       fclk1: fclk1 {
+               status = "okay";
+               compatible = "xlnx,fclk";
+               clocks = <&zynqmp_clk PL1_REF>;
+       };
+
+       fclk2: fclk2 {
+               status = "okay";
+               compatible = "xlnx,fclk";
+               clocks = <&zynqmp_clk PL2_REF>;
+       };
+
+       fclk3: fclk3 {
+               status = "okay";
+               compatible = "xlnx,fclk";
+               clocks = <&zynqmp_clk PL3_REF>;
+       };
+
+       pss_ref_clk: pss_ref_clk {
+               u-boot,dm-pre-reloc;
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <33333333>;
+       };
+
+       video_clk: video_clk {
+               u-boot,dm-pre-reloc;
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+       };
+
+       pss_alt_ref_clk: pss_alt_ref_clk {
+               u-boot,dm-pre-reloc;
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
+       gt_crx_ref_clk: gt_crx_ref_clk {
+               u-boot,dm-pre-reloc;
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <108000000>;
+       };
+
+       aux_ref_clk: aux_ref_clk {
+               u-boot,dm-pre-reloc;
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+       };
+
+       dp_aclk: dp_aclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+               clock-accuracy = <100>;
+       };
+};
+
+&zynqmp_firmware {
+       zynqmp_clk: clock-controller {
+               u-boot,dm-pre-reloc;
+               #clock-cells = <1>;
+               compatible = "xlnx,zynqmp-clk";
+               clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>,
+                        <&aux_ref_clk>, <&gt_crx_ref_clk>;
+               clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk",
+                             "aux_ref_clk", "gt_crx_ref_clk";
+       };
+};
+
+&can0 {
+       clocks = <&zynqmp_clk CAN0_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&can1 {
+       clocks = <&zynqmp_clk CAN1_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&cpu0 {
+       clocks = <&zynqmp_clk ACPU>;
+};
+
+&fpd_dma_chan1 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan2 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan3 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan4 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan5 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan6 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan7 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&fpd_dma_chan8 {
+       clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&gpu {
+       clocks = <&zynqmp_clk GPU_REF>, <&zynqmp_clk GPU_PP0_REF>, <&zynqmp_clk GPU_PP1_REF>;
+};
+
+&lpd_dma_chan1 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan2 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan3 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan4 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan5 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan6 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan7 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&lpd_dma_chan8 {
+       clocks = <&zynqmp_clk ADMA_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&nand0 {
+       clocks = <&zynqmp_clk NAND_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&gem0 {
+       clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM0_REF>, <&zynqmp_clk GEM0_TX>,
+                <&zynqmp_clk GEM0_RX>, <&zynqmp_clk GEM_TSU>;
+       clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
+};
+
+&gem1 {
+       clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM1_REF>, <&zynqmp_clk GEM1_TX>,
+                <&zynqmp_clk GEM1_RX>, <&zynqmp_clk GEM_TSU>;
+       clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
+};
+
+&gem2 {
+       clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM2_REF>, <&zynqmp_clk GEM2_TX>,
+                <&zynqmp_clk GEM2_RX>, <&zynqmp_clk GEM_TSU>;
+       clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
+};
+
+&gem3 {
+       clocks = <&zynqmp_clk LPD_LSBUS>, <&zynqmp_clk GEM3_REF>, <&zynqmp_clk GEM3_TX>,
+                <&zynqmp_clk GEM3_RX>, <&zynqmp_clk GEM_TSU>;
+       clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
+};
+
+&gpio {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&i2c0 {
+       clocks = <&zynqmp_clk I2C0_REF>;
+};
+
+&i2c1 {
+       clocks = <&zynqmp_clk I2C1_REF>;
+};
+
+&perf_monitor_ocm {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&perf_monitor_ddr {
+       clocks = <&zynqmp_clk TOPSW_LSBUS>;
+};
+
+&perf_monitor_cci {
+       clocks = <&zynqmp_clk TOPSW_LSBUS>;
+};
+
+&perf_monitor_lpd {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&pcie {
+       clocks = <&zynqmp_clk PCIE_REF>;
+};
+
+&qspi {
+       clocks = <&zynqmp_clk QSPI_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&sata {
+       clocks = <&zynqmp_clk SATA_REF>;
+};
+
+&sdhci0 {
+       clocks = <&zynqmp_clk SDIO0_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&sdhci1 {
+       clocks = <&zynqmp_clk SDIO1_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&spi0 {
+       clocks = <&zynqmp_clk SPI0_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&spi1 {
+       clocks = <&zynqmp_clk SPI1_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&ttc0 {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&ttc1 {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&ttc2 {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&ttc3 {
+       clocks = <&zynqmp_clk LPD_LSBUS>;
+};
+
+&uart0 {
+       clocks = <&zynqmp_clk UART0_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&uart1 {
+       clocks = <&zynqmp_clk UART1_REF>, <&zynqmp_clk LPD_LSBUS>;
+};
+
+&usb0 {
+       clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
+};
+
+&usb1 {
+       clocks = <&zynqmp_clk USB1_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
+};
+
+&watchdog0 {
+       clocks = <&zynqmp_clk WDT>;
+};
+
+&lpd_watchdog {
+       clocks = <&zynqmp_clk LPD_WDT>;
+};
+
+&xilinx_ams {
+       clocks = <&zynqmp_clk AMS_REF>;
+};
+
+&zynqmp_dpsub {
+       clocks = <&dp_aclk>, <&zynqmp_clk DP_AUDIO_REF>, <&zynqmp_clk DP_VIDEO_REF>;
+};
+
+&xlnx_dpdma {
+       clocks = <&zynqmp_clk DPDMA_REF>;
+};
+
+&zynqmp_dp_snd_codec0 {
+       clocks = <&zynqmp_clk DP_AUDIO_REF>;
+};
+
+&pcap {
+       clocks = <&zynqmp_clk PCAP>;
+};
index 306ad2157c9882b5ce4a5a9c5bc24e5d25d75c4b..1f45f4290592d767d0243e3930dbc4f730e91f24 100644 (file)
@@ -12,6 +12,7 @@
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <100000000>;
+               u-boot,dm-pre-reloc;
        };
 
        clk125: clk125 {
@@ -24,6 +25,7 @@
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <200000000>;
+               u-boot,dm-pre-reloc;
        };
 
        clk250: clk250 {
                clock-accuracy = <100>;
        };
 
-       dpdma_clk: dpdma-clk {
+       dpdma_clk: dpdma_clk {
                compatible = "fixed-clock";
                #clock-cells = <0x0>;
                clock-frequency = <533000000>;
        };
 
-       drm_clock: drm-clock {
+       drm_clock: drm_clock {
                compatible = "fixed-clock";
                #clock-cells = <0x0>;
                clock-frequency = <262750000>;
        clocks = <&clk600>, <&clk100>;
 };
 
+&nand0 {
+       clocks = <&clk100 &clk100>;
+};
+
 &gem0 {
        clocks = <&clk125>, <&clk125>, <&clk125>;
 };
        clocks = <&clk100>;
 };
 
+&perf_monitor_ocm {
+       clocks = <&clk100>;
+};
+
+&perf_monitor_ddr {
+       clocks = <&clk100>;
+};
+
+&perf_monitor_cci {
+       clocks = <&clk100>;
+};
+
+&perf_monitor_lpd {
+       clocks = <&clk100>;
+};
+
+&qspi {
+       clocks = <&clk300 &clk300>;
+};
+
 &sata {
        clocks = <&clk250>;
 };
 };
 
 &watchdog0 {
+       clocks = <&clk100>;
+};
+
+&lpd_watchdog {
        clocks = <&clk250>;
 };
+
+&zynqmp_dpsub {
+       clocks = <&dp_aclk>, <&dp_aud_clk>, <&drm_clock>;
+};
+
+&xlnx_dpdma {
+       clocks = <&dpdma_clk>;
+};
+
+&zynqmp_dp_snd_codec0 {
+       clocks = <&dp_aud_clk>;
+};
index 0f7b4cf6078edee50e628617b3ec15abaca05101..5c212ba468e6ba3141d22e244d60c1255d24c9fb 100644 (file)
@@ -10,7 +10,8 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZC1232 RevA";
@@ -19,6 +20,7 @@
        aliases {
                serial0 = &uart0;
                serial1 = &dcc;
+               spi0 = &qspi;
        };
 
        chosen {
        status = "okay";
 };
 
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB FIXME */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &sata {
        status = "okay";
        /* SATA OOB timing settings */
@@ -47,6 +78,8 @@
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane0 PHY_TYPE_SATA 0 0 125000000>, <&lane1 PHY_TYPE_SATA 1 1 125000000>;
 };
 
 &uart0 {
index 9092828f92ecd51662027c6e8e3324578e09aa6c..881aacc582536b281d6bdff4c0fc41053ce1b6ae 100644 (file)
@@ -11,7 +11,7 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 
 / {
        model = "ZynqMP ZC1254 RevA";
@@ -20,6 +20,7 @@
        aliases {
                serial0 = &uart0;
                serial1 = &dcc;
+               spi0 = &qspi;
        };
 
        chosen {
        status = "okay";
 };
 
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &uart0 {
        status = "okay";
 };
index 4f404c580eec507698996318f6c8e6e192effa7f..7403f153e44729bfcb0462b1b3236a4e7fef0889 100644 (file)
@@ -11,7 +11,7 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 
 / {
        model = "ZynqMP ZC1275 RevA";
@@ -20,6 +20,7 @@
        aliases {
                serial0 = &uart0;
                serial1 = &dcc;
+               spi0 = &qspi;
        };
 
        chosen {
        status = "okay";
 };
 
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &uart0 {
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revB.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revB.dts
new file mode 100644 (file)
index 0000000..72517ae
--- /dev/null
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Xilinx ZynqMP ZC1275 RevB
+ *
+ * (C) Copyright 2018, Xilinx, Inc.
+ *
+ * Michal Simek <michal.simek@xilinx.com>
+ * Siva Durga Prasad Paladugu <sivadur@xilinx.com>
+ */
+
+/dts-v1/;
+
+#include "zynqmp.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
+
+/ {
+       model = "ZynqMP ZC1275 RevB";
+       compatible = "xlnx,zynqmp-zc1275-revB", "xlnx,zynqmp-zc1275", "xlnx,zynqmp";
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &dcc;
+               spi0 = &qspi;
+               mmc0 = &sdhci1;
+               ethernet0 = &gem1;
+       };
+
+       chosen {
+               bootargs = "earlycon";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+};
+
+&dcc {
+       status = "okay";
+};
+
+&gem1 {
+       mdio {
+               phy1: ethernet-phy@1 {
+                       reg = <1>; /* KSZ9031RNXIC on AES-FMC-NETW1-G */
+                       rxc-skew-ps = <1800>; /* Skew control of RX_CLK pad output */
+                       txc-skew-ps = <1800>; /* Skew control of GTX_CLK pad input */
+                       txen-skew-ps = <900>; /* Skew control of TX_CTL pad input */
+                       rxdv-skew-ps = <0>; /* Skew control of RX_CTL pad output */
+                       rxd0-skew-ps = <0>; /* Skew control of RXD0 pad output */
+                       rxd1-skew-ps = <0>; /* Skew control of RXD1 pad output */
+                       rxd2-skew-ps = <0>; /* Skew control of RXD2 pad output */
+                       rxd3-skew-ps = <0>; /* Skew control of RXD3 pad output */
+                       txd0-skew-ps = <900>; /* Skew control of TXD0 pad input */
+                       txd1-skew-ps = <900>; /* Skew control of TXD1 pad input */
+                       txd2-skew-ps = <900>; /* Skew control of TXD2 pad input */
+                       txd3-skew-ps = <900>; /* Skew control of TXD3 pad input */
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <1>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&sdhci1 {
+       status = "okay";
+       no-1-8-v;
+       xlnx,mio_bank = <1>;
+};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zc1285-revA.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zc1285-revA.dts
new file mode 100644 (file)
index 0000000..c5f4675
--- /dev/null
@@ -0,0 +1,245 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Xilinx ZynqMP ZC1275 RevB
+ *
+ * (C) Copyright 2018 - 2019, Xilinx, Inc.
+ *
+ * Michal Simek <michal.simek@xilinx.com>
+ * Siva Durga Prasad Paladugu <sivadur@xilinx.com>
+ */
+
+/dts-v1/;
+
+#include "zynqmp.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
+
+/ {
+       model = "ZynqMP ZC1285 RevA";
+       compatible = "xlnx,zynqmp-zc1285-revA", "xlnx,zynqmp-zc1285", "xlnx,zynqmp";
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &dcc;
+               spi0 = &qspi;
+               mmc0 = &sdhci1;
+               ethernet0 = &gem1; /* EMIO */
+               ethernet1 = &gem3; /* PS ethernet */
+               i2c = &i2c0; /* EMIO */
+       };
+
+       chosen {
+               bootargs = "earlycon";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+};
+
+&dcc {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       i2c-mux@75 {
+               compatible = "nxp,pca9548"; /* u22 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x75>;
+
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       /* PMBUS */
+                       max20751@74 { /* u23 */
+                               compatible = "maxim,max20751";
+                               reg = <0x74>;
+                       };
+                       max20751@70 { /* u89 */
+                               compatible = "maxim,max20751";
+                               reg = <0x70>;
+                       };
+                       max15301@a { /* u28 */
+                               compatible = "maxim,max15301";
+                               reg = <0xa>;
+                       };
+                       max15303@b { /* u48 */
+                               compatible = "maxim,max15303";
+                               reg = <0xb>;
+                       };
+                       max15303@d { /* u27 */
+                               compatible = "maxim,max15303";
+                               reg = <0xd>;
+                       };
+                       max15303@e { /* u11 */
+                               compatible = "maxim,max15303";
+                               reg = <0xe>;
+                       };
+                       max15303@f { /* u96 */
+                               compatible = "maxim,max15303";
+                               reg = <0xf>;
+                       };
+                       max15303@11 { /* u47 */
+                               compatible = "maxim,max15303";
+                               reg = <0x11>;
+                       };
+                       max15303@12 { /* u24 */
+                               compatible = "maxim,max15303";
+                               reg = <0x12>;
+                       };
+                       max15301@13 { /* u29 */
+                               compatible = "maxim,max15301";
+                               reg = <0x13>;
+                       };
+                       max15303@14 { /* u51 */
+                               compatible = "maxim,max15303";
+                               reg = <0x14>;
+                       };
+                       max15303@15 { /* u30 */
+                               compatible = "maxim,max15303";
+                               reg = <0x15>;
+                       };
+                       max15303@16 { /* u102 */
+                               compatible = "maxim,max15303";
+                               reg = <0x16>;
+                       };
+                       max15301@17 { /* u50 */
+                               compatible = "maxim,max15301";
+                               reg = <0x17>;
+                       };
+                       max15301@18 { /* u31 */
+                               compatible = "maxim,max15301";
+                               reg = <0x18>;
+                       };
+               };
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       /* CM_I2C */
+               };
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       /* SYS_EEPROM */
+                       eeprom: eeprom@54 { /* u101 */
+                               compatible = "atmel,24c32"; /* 24LC32A */
+                               reg = <0x54>;
+                       };
+               };
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+                       /* FMC1 */
+               };
+               i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+                       /* FMC2 */
+               };
+               i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+                       /* ANALOG_PMBUS */
+                       ina226@40 { /* u60 */
+                               compatible = "ti,ina226";
+                               reg = <0x40>;
+                               shunt-resistor = <1000>;
+                       };
+                       ina226@41 { /* u61 */
+                               compatible = "ti,ina226";
+                               reg = <0x41>;
+                               shunt-resistor = <1000>;
+                       };
+                       ina226@42 { /* u63 */
+                               compatible = "ti,ina226";
+                               reg = <0x42>;
+                               shunt-resistor = <1000>;
+                       };
+                       ina226@43 { /* u65 */
+                               compatible = "ti,ina226";
+                               reg = <0x43>;
+                               shunt-resistor = <1000>;
+                       };
+                       ina226@44 { /* u64 */
+                               compatible = "ti,ina226";
+                               reg = <0x44>;
+                               shunt-resistor = <1000>;
+                       };
+               };
+               i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+                       /* ANALOG_CM_I2C */
+               };
+               i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+                       /* FMC3 */
+               };
+       };
+};
+
+&gem1 {
+       mdio {
+               phy1: ethernet-phy@1 {
+                       reg = <1>; /* KSZ9031RNXIC on AES-FMC-NETW1-G */
+                       rxc-skew-ps = <1800>; /* Skew control of RX_CLK pad output */
+                       txc-skew-ps = <1800>; /* Skew control of GTX_CLK pad input */
+                       txen-skew-ps = <900>; /* Skew control of TX_CTL pad input */
+                       rxdv-skew-ps = <0>; /* Skew control of RX_CTL pad output */
+                       rxd0-skew-ps = <0>; /* Skew control of RXD0 pad output */
+                       rxd1-skew-ps = <0>; /* Skew control of RXD1 pad output */
+                       rxd2-skew-ps = <0>; /* Skew control of RXD2 pad output */
+                       rxd3-skew-ps = <0>; /* Skew control of RXD3 pad output */
+                       txd0-skew-ps = <900>; /* Skew control of TXD0 pad input */
+                       txd1-skew-ps = <900>; /* Skew control of TXD1 pad input */
+                       txd2-skew-ps = <900>; /* Skew control of TXD2 pad input */
+                       txd3-skew-ps = <900>; /* Skew control of TXD3 pad input */
+               };
+       };
+};
+
+&gem3 {
+       status = "okay";
+       phy-mode = "rgmii";
+       phy-handle = <&phy2>;
+       phy2: ethernet-phy@1 {
+               reg = <1>; /* KSZ9031RNXIC */
+       };
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <1>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&sdhci1 {
+       status = "okay";
+       no-1-8-v;
+       xlnx,mio_bank = <1>;
+};
index 9a3e39d1294f1590fa7a910eb402d8c1073c28c0..3cbeaccd7ba4eeea7e336ae6171438c271dfad2b 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
 
 / {
        model = "ZynqMP zc1751-xm015-dc1 RevA";
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c1;
                mmc0 = &sdhci0;
                mmc1 = &sdhci1;
                rtc0 = &rtc;
                serial0 = &uart0;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
@@ -73,6 +78,8 @@
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@0 {
                reg = <0>;
        };
 
 &gpio {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_default>;
 };
 
+&gpu {
+       status = "okay";
+};
 
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 36 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
 
        eeprom: eeprom@55 {
                compatible = "atmel,24c64"; /* 24AA64 */
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_9_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_9_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_36_grp", "gpio0_37_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_36_grp", "gpio0_37_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_8_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_8_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO34";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO35";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci0_default: sdhci0-default {
+               mux {
+                       groups = "sdio0_0_grp";
+                       function = "sdio0";
+               };
+
+               conf {
+                       groups = "sdio0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio0_cd_0_grp";
+                       function = "sdio0_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio0_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio0_wp_0_grp";
+                       function = "sdio0_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio0_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio1_wp_0_grp";
+                       function = "sdio1_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio1_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_gpio_default: gpio-default {
+               mux {
+                       function = "gpio0";
+                       groups = "gpio0_38_grp";
+               };
+
+               conf {
+                       groups = "gpio0_38_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* Micron MT25QU512ABB8ESF */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 3 150000000>;
 };
 
 /* eMMC */
 &sdhci0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci0_default>;
        bus-width = <8>;
+       xlnx,mio_bank = <0>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
+       xlnx,mio_bank = <1>;
+};
+
+&serdes {
+       status = "okay";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 0 27000000>,
+              <&lane0 PHY_TYPE_DP 1 1 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
 };
index 11cc67184fa9ffb832a9d02a1b66454dbd82a5d0..0e3df864fe051791276a5538eb2d9d005ba6bea3 100644 (file)
@@ -10,8 +10,9 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
 
 / {
        model = "ZynqMP zc1751-xm016-dc2 RevA";
                can0 = &can0;
                can1 = &can1;
                ethernet0 = &gem2;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                rtc0 = &rtc;
                serial0 = &uart0;
                serial1 = &uart1;
                spi0 = &spi0;
                spi1 = &spi1;
+               usb0 = &usb1;
        };
 
        chosen {
 
 &can0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can0_default>;
 };
 
 &can1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
 };
 
 &fpd_dma_chan1 {
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem2_default>;
        phy0: phy@5 {
                reg = <5>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
        };
 };
 
 &i2c0 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
 
        tca6416_u26: gpio@20 {
                compatible = "ti,tca6416";
        };
 };
 
+&nand0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_nand0_default>;
+       arasan,has-mdma;
+
+       nand@0 {
+               reg = <0x0>;
+               #address-cells = <0x2>;
+               #size-cells = <0x1>;
+
+               partition@0 {   /* for testing purpose */
+                       label = "nand-fsbl-uboot";
+                       reg = <0x0 0x0 0x400000>;
+               };
+               partition@1 {   /* for testing purpose */
+                       label = "nand-linux";
+                       reg = <0x0 0x400000 0x1400000>;
+               };
+               partition@2 {   /* for testing purpose */
+                       label = "nand-device-tree";
+                       reg = <0x0 0x1800000 0x400000>;
+               };
+               partition@3 {   /* for testing purpose */
+                       label = "nand-rootfs";
+                       reg = <0x0 0x1c00000 0x1400000>;
+               };
+               partition@4 {   /* for testing purpose */
+                       label = "nand-bitstream";
+                       reg = <0x0 0x3000000 0x400000>;
+               };
+               partition@5 {   /* for testing purpose */
+                       label = "nand-misc";
+                       reg = <0x0 0x3400000 0xfcc00000>;
+               };
+       };
+       nand@1 {
+               reg = <0x1>;
+               #address-cells = <0x2>;
+               #size-cells = <0x1>;
+
+               partition@0 {   /* for testing purpose */
+                       label = "nand1-fsbl-uboot";
+                       reg = <0x0 0x0 0x400000>;
+               };
+               partition@1 {   /* for testing purpose */
+                       label = "nand1-linux";
+                       reg = <0x0 0x400000 0x1400000>;
+               };
+               partition@2 {   /* for testing purpose */
+                       label = "nand1-device-tree";
+                       reg = <0x0 0x1800000 0x400000>;
+               };
+               partition@3 {   /* for testing purpose */
+                       label = "nand1-rootfs";
+                       reg = <0x0 0x1c00000 0x1400000>;
+               };
+               partition@4 {   /* for testing purpose */
+                       label = "nand1-bitstream";
+                       reg = <0x0 0x3000000 0x400000>;
+               };
+               partition@5 {   /* for testing purpose */
+                       label = "nand1-misc";
+                       reg = <0x0 0x3400000 0xfcc00000>;
+               };
+       };
+};
+
+&pinctrl0 {
+       status = "okay";
+       pinctrl_can0_default: can0-default {
+               mux {
+                       function = "can0";
+                       groups = "can0_9_grp";
+               };
+
+               conf {
+                       groups = "can0_9_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO38";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO39";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_8_grp";
+               };
+
+               conf {
+                       groups = "can1_8_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO33";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO32";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_1_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_1_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_6_grp", "gpio0_7_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_6_grp", "gpio0_7_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_10_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_10_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO42";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO43";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_10_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_10_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO41";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO40";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb1_default: usb1-default {
+               mux {
+                       groups = "usb1_0_grp";
+                       function = "usb1";
+               };
+
+               conf {
+                       groups = "usb1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO64", "MIO65", "MIO67";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
+                              "MIO72", "MIO73", "MIO74", "MIO75";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem2_default: gem2-default {
+               mux {
+                       function = "ethernet2";
+                       groups = "ethernet2_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet2_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO58", "MIO59", "MIO60", "MIO61", "MIO62",
+                                                                       "MIO63";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO52", "MIO53", "MIO54", "MIO55", "MIO56",
+                                                                       "MIO57";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio2";
+                       groups = "mdio2_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio2_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_nand0_default: nand0-default {
+               mux {
+                       groups = "nand0_0_grp";
+                       function = "nand0";
+               };
+
+               conf {
+                       groups = "nand0_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-ce {
+                       groups = "nand0_ce_0_grp";
+                       function = "nand0_ce";
+               };
+
+               conf-ce {
+                       groups = "nand0_ce_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-rb {
+                       groups = "nand0_rb_0_grp";
+                       function = "nand0_rb";
+               };
+
+               conf-rb {
+                       groups = "nand0_rb_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-dqs {
+                       groups = "nand0_dqs_0_grp";
+                       function = "nand0_dqs";
+               };
+
+               conf-dqs {
+                       groups = "nand0_dqs_0_grp";
+                       bias-pull-up;
+               };
+       };
+
+       pinctrl_spi0_default: spi0-default {
+               mux {
+                       groups = "spi0_0_grp";
+                       function = "spi0";
+               };
+
+               conf {
+                       groups = "spi0_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-cs {
+                       groups = "spi0_ss_0_grp", "spi0_ss_1_grp",
+                                                       "spi0_ss_2_grp";
+                       function = "spi0_ss";
+               };
+
+               conf-cs {
+                       groups = "spi0_ss_0_grp", "spi0_ss_1_grp",
+                                                       "spi0_ss_2_grp";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_spi1_default: spi1-default {
+               mux {
+                       groups = "spi1_3_grp";
+                       function = "spi1";
+               };
+
+               conf {
+                       groups = "spi1_3_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-cs {
+                       groups = "spi1_ss_9_grp", "spi1_ss_10_grp",
+                                                       "spi1_ss_11_grp";
+                       function = "spi1_ss";
+               };
+
+               conf-cs {
+                       groups = "spi1_ss_9_grp", "spi1_ss_10_grp",
+                                                       "spi1_ss_11_grp";
+                       bias-disable;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
 &spi0 {
        status = "okay";
        num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi0_default>;
 
-       spi0_flash0: flash0@0 {
+       spi0_flash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "sst,sst25wf080", "jedec,spi-nor";
 &spi1 {
        status = "okay";
        num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi1_default>;
 
-       spi1_flash0: flash0@0 {
+       spi1_flash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "atmel,at45db041e", "atmel,at45", "atmel,dataflash";
 /* ULPI SMSC USB3320 */
 &usb1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb1_default>;
+};
+
+&dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
index 7a49deeae647b53b534a99835836f407d2f3afa9..d6a010355bb88014699475ae952df5a2c1e51126 100644 (file)
@@ -10,7 +10,7 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 
 / {
        model = "ZynqMP zc1751-xm017-dc3 RevA";
 
        aliases {
                ethernet0 = &gem0;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci1;
                rtc0 = &rtc;
                serial0 = &uart0;
                serial1 = &uart1;
+               usb0 = &usb0;
+               usb1 = &usb1;
        };
 
        chosen {
        clock-frequency = <400000>;
 };
 
+/* MT29F64G08AECDBJ4-6 */
+&nand0 {
+       status = "okay";
+       arasan,has-mdma;
+       num-cs = <2>;
+
+       partition@0 {   /* for testing purpose */
+               label = "nand-fsbl-uboot";
+               reg = <0x0 0x0 0x400000>;
+       };
+       partition@1 {   /* for testing purpose */
+               label = "nand-linux";
+               reg = <0x0 0x400000 0x1400000>;
+       };
+       partition@2 {   /* for testing purpose */
+               label = "nand-device-tree";
+               reg = <0x0 0x1800000 0x400000>;
+       };
+       partition@3 {   /* for testing purpose */
+               label = "nand-rootfs";
+               reg = <0x0 0x1C00000 0x1400000>;
+       };
+       partition@4 {   /* for testing purpose */
+               label = "nand-bitstream";
+               reg = <0x0 0x3000000 0x400000>;
+       };
+       partition@5 {   /* for testing purpose */
+               label = "nand-misc";
+               reg = <0x0 0x3400000 0xFCC00000>;
+       };
+
+       partition@6 {   /* for testing purpose */
+               label = "nand1-fsbl-uboot";
+               reg = <0x1 0x0 0x400000>;
+       };
+       partition@7 {   /* for testing purpose */
+               label = "nand1-linux";
+               reg = <0x1 0x400000 0x1400000>;
+       };
+       partition@8 {   /* for testing purpose */
+               label = "nand1-device-tree";
+               reg = <0x1 0x1800000 0x400000>;
+       };
+       partition@9 {   /* for testing purpose */
+               label = "nand1-rootfs";
+               reg = <0x1 0x1C00000 0x1400000>;
+       };
+       partition@10 {  /* for testing purpose */
+               label = "nand1-bitstream";
+               reg = <0x1 0x3000000 0x400000>;
+       };
+       partition@11 {  /* for testing purpose */
+               label = "nand1-misc";
+               reg = <0x1 0x3400000 0xFCC00000>;
+       };
+};
+
 &rtc {
        status = "okay";
 };
index 54c7b4f1d1e46af799c8549844b598e350ecd2da..fabef11647a46c561f553e855e88dd98f9ae3920 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 
 / {
        model = "ZynqMP zc1751-xm018-dc4";
        compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp";
 
        aliases {
+               can0 = &can0;
+               can1 = &can1;
                ethernet0 = &gem0;
                ethernet1 = &gem1;
                ethernet2 = &gem2;
                ethernet3 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                rtc0 = &rtc;
                serial0 = &uart0;
                serial1 = &uart1;
+               spi0 = &qspi;
        };
 
        chosen {
        status = "okay";
 };
 
+&zynqmp_dpsub {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
+
 &gem0 {
        status = "okay";
        phy-mode = "rgmii-id";
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+};
+
 &i2c0 {
        clock-frequency = <400000>;
        status = "okay";
        status = "okay";
 };
 
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
index b8b5ff13818d307e21c6c4f003efdba5c20db341..857dfd5c469beb8d66ed0fb691c5ed4c2204467e 100644 (file)
@@ -11,8 +11,9 @@
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
 
 / {
        model = "ZynqMP zc1751-xm019-dc5 RevA";
@@ -20,6 +21,7 @@
 
        aliases {
                ethernet0 = &gem1;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci0;
@@ -74,6 +76,8 @@
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem1_default>;
        phy0: phy@0 {
                reg = <0>;
        };
 
 &i2c0 {
        status = "okay";
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 74 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 75 GPIO_ACTIVE_HIGH>;
 };
 
 &i2c1 {
        status = "okay";
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 76 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 77 GPIO_ACTIVE_HIGH>;
+
+};
+
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_18_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_18_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_74_grp", "gpio0_75_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_74_grp", "gpio0_75_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_19_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_19_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_76_grp", "gpio0_77_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_76_grp", "gpio0_77_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_17_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO71";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_18_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_18_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO73";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO72";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem1_default: gem1-default {
+               mux {
+                       function = "ethernet1";
+                       groups = "ethernet1_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO44", "MIO45", "MIO46", "MIO47", "MIO48",
+                                                                       "MIO49";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO38", "MIO39", "MIO40", "MIO41", "MIO42",
+                                                                       "MIO43";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio1";
+                       groups = "mdio1_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci0_default: sdhci0-default {
+               mux {
+                       groups = "sdio0_0_grp";
+                       function = "sdio0";
+               };
+
+               conf {
+                       groups = "sdio0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio0_cd_0_grp";
+                       function = "sdio0_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio0_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio0_wp_0_grp";
+                       function = "sdio0_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio0_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_watchdog0_default: watchdog0-default {
+               mux-clk {
+                       groups = "swdt0_clk_1_grp";
+                       function = "swdt0_clk";
+               };
+
+               conf-clk {
+                       groups = "swdt0_clk_1_grp";
+                       bias-pull-up;
+               };
+
+               mux-rst {
+                       groups = "swdt0_rst_1_grp";
+                       function = "swdt0_rst";
+               };
+
+               conf-rst {
+                       groups = "swdt0_rst_1_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+               };
+       };
+
+       pinctrl_ttc0_default: ttc0-default {
+               mux-clk {
+                       groups = "ttc0_clk_0_grp";
+                       function = "ttc0_clk";
+               };
+
+               conf-clk {
+                       groups = "ttc0_clk_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-wav {
+                       groups = "ttc0_wav_0_grp";
+                       function = "ttc0_wav";
+               };
+
+               conf-wav {
+                       groups = "ttc0_wav_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+               };
+       };
+
+       pinctrl_ttc1_default: ttc1-default {
+               mux-clk {
+                       groups = "ttc1_clk_0_grp";
+                       function = "ttc1_clk";
+               };
+
+               conf-clk {
+                       groups = "ttc1_clk_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-wav {
+                       groups = "ttc1_wav_0_grp";
+                       function = "ttc1_wav";
+               };
+
+               conf-wav {
+                       groups = "ttc1_wav_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+               };
+       };
+
+       pinctrl_ttc2_default: ttc2-default {
+               mux-clk {
+                       groups = "ttc2_clk_0_grp";
+                       function = "ttc2_clk";
+               };
+
+               conf-clk {
+                       groups = "ttc2_clk_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-wav {
+                       groups = "ttc2_wav_0_grp";
+                       function = "ttc2_wav";
+               };
+
+               conf-wav {
+                       groups = "ttc2_wav_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+               };
+       };
+
+       pinctrl_ttc3_default: ttc3-default {
+               mux-clk {
+                       groups = "ttc3_clk_0_grp";
+                       function = "ttc3_clk";
+               };
+
+               conf-clk {
+                       groups = "ttc3_clk_0_grp";
+                       bias-pull-up;
+               };
+
+               mux-wav {
+                       groups = "ttc3_wav_0_grp";
+                       function = "ttc3_wav";
+               };
+
+               conf-wav {
+                       groups = "ttc3_wav_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+               };
+       };
 };
 
 &sdhci0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci0_default>;
        no-1-8-v;
+       xlnx,mio_bank = <0>;
 };
 
 &ttc0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ttc0_default>;
 };
 
 &ttc1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ttc1_default>;
 };
 
 &ttc2 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ttc2_default>;
 };
 
 &ttc3 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ttc3_default>;
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
 
 &watchdog0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_watchdog0_default>;
 };
index e5699d0d91e45df9809a6875a9ac2da7942a9228..e0590d29051f163716a71cbb5a5bbc6deb43920e 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU100 RevC";
        compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp";
 
        aliases {
+               gpio0 = &gpio;
                i2c0 = &i2c1;
                rtc0 = &rtc;
                serial0 = &uart1;
@@ -28,6 +31,8 @@
                serial2 = &dcc;
                spi0 = &spi0;
                spi1 = &spi1;
+               usb0 = &usb0;
+               usb1 = &usb1;
                mmc0 = &sdhci0;
                mmc1 = &sdhci1;
        };
                        label = "sw4";
                        gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_POWER>;
-                       wakeup-source;
+                       gpio-key,wakeup;
                        autorepeat;
                };
        };
 
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&xilinx_ams 0>, <&xilinx_ams 1>, <&xilinx_ams 2>,
+                             <&xilinx_ams 3>, <&xilinx_ams 4>, <&xilinx_ams 5>,
+                             <&xilinx_ams 6>, <&xilinx_ams 7>, <&xilinx_ams 8>,
+                             <&xilinx_ams 9>, <&xilinx_ams 10>,
+                             <&xilinx_ams 11>, <&xilinx_ams 12>;
+       };
+
        leds {
                compatible = "gpio-leds";
                ds2 {
                        linux,default-trigger = "bluetooth-power";
                };
 
-               vbus-det { /* U5 USB5744 VBUS detection via MIO25 */
+               vbus_det { /* U5 USB5744 VBUS detection via MIO25 */
                        label = "vbus_det";
                        gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
        };
 
+       ltc2954: ltc2954 { /* U7 */
+               compatible = "lltc,ltc2954", "lltc,ltc2952";
+               status = "disabled";
+               trigger-gpios = <&gpio 26 GPIO_ACTIVE_LOW>; /* INT line - input */
+               /* If there is HW watchdog on mezzanine this signal should be connected there */
+               watchdog-gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; /* MIO on PAD */
+               kill-gpios = <&gpio 34 GPIO_ACTIVE_LOW>; /* KILL signal - output */
+       };
+
        wmmcsdio_fixed: fixedregulator-mmcsdio {
                compatible = "regulator-fixed";
                regulator-name = "wmmcsdio_fixed";
                regulator-boot-on;
        };
 
-       sdio_pwrseq: sdio-pwrseq {
+       sdio_pwrseq: sdio_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
-               post-power-on-delay-ms = <10>;
        };
 };
 
                          "", "", "", "";
 };
 
+&gpu {
+       status = "okay";
+};
+
 &i2c1 {
        status = "okay";
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
        clock-frequency = <100000>;
        i2c-mux@75 { /* u11 */
                compatible = "nxp,pca9548";
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_1_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_1_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_4_grp", "gpio0_5_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_4_grp", "gpio0_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_sdhci0_default: sdhci0-default {
+               mux {
+                       groups = "sdio0_3_grp";
+                       function = "sdio0";
+               };
+
+               conf {
+                       groups = "sdio0_3_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio0_cd_0_grp";
+                       function = "sdio0_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio0_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_2_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_2_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_spi0_default: spi0-default {
+               mux {
+                       groups = "spi0_3_grp";
+                       function = "spi0";
+               };
+
+               conf {
+                       groups = "spi0_3_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-cs {
+                       groups = "spi0_ss_9_grp";
+                       function = "spi0_ss";
+               };
+
+               conf-cs {
+                       groups = "spi0_ss_9_grp";
+                       bias-disable;
+               };
+
+       };
+
+       pinctrl_spi1_default: spi1-default {
+               mux {
+                       groups = "spi1_0_grp";
+                       function = "spi1";
+               };
+
+               conf {
+                       groups = "spi1_0_grp";
+                       bias-disable;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-cs {
+                       groups = "spi1_ss_0_grp";
+                       function = "spi1_ss";
+               };
+
+               conf-cs {
+                       groups = "spi1_ss_0_grp";
+                       bias-disable;
+               };
+
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_0_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO3";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO2";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_0_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO1";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO0";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb1_default: usb1-default {
+               mux {
+                       groups = "usb1_0_grp";
+                       function = "usb1";
+               };
+
+               conf {
+                       groups = "usb1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO64", "MIO65", "MIO67";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO66", "MIO68", "MIO69", "MIO70", "MIO71",
+                              "MIO72", "MIO73", "MIO74", "MIO75";
+                       bias-disable;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
 &sdhci0 {
        status = "okay";
        no-1-8-v;
-       broken-cd; /* CD has to be enabled by default */
        disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci0_default>;
+       xlnx,mio_bank = <0>;
 };
 
 &sdhci1 {
        status = "okay";
        bus-width = <0x4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
+       xlnx,mio_bank = <0>;
        non-removable;
        disable-wp;
        cap-power-off-card;
        };
 };
 
+&serdes {
+       status = "okay";
+};
+
 &spi0 { /* Low Speed connector */
        status = "okay";
        label = "LS-SPI0";
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi0_default>;
 };
 
 &spi1 { /* High Speed connector */
        status = "okay";
        label = "HS-SPI1";
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi1_default>;
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
        bluetooth {
                compatible = "ti,wl1831-st";
                enable-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "peripheral";
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
+       maximum-speed = "super-speed";
 };
 
 /* ULPI SMSC USB3320 */
 &usb1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb1_default>;
+};
+
+&dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
+       phy-names = "usb3-phy";
+       phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
+       maximum-speed = "super-speed";
 };
 
 &watchdog0 {
        status = "okay";
 };
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 1 27000000>,
+              <&lane0 PHY_TYPE_DP 1 1 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
+
+&xilinx_ams {
+       status = "okay";
+};
+
+&ams_ps {
+       status = "okay";
+};
index cef81671f3ab4e369b1847b5df03f507c2bd5ec3..36863f65e94e76be03e557e764b7e563b11885c6 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU102 RevA";
@@ -20,6 +22,7 @@
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci1;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
                bootargs = "earlycon";
                stdout-path = "serial0:115200n8";
+               xlnx,eeprom = &eeprom;
        };
 
        memory@0 {
                        label = "sw19";
                        gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_DOWN>;
-                       wakeup-source;
+                       gpio-key,wakeup;
                        autorepeat;
                };
        };
 
        leds {
                compatible = "gpio-leds";
-               heartbeat-led {
+               heartbeat_led {
                        label = "heartbeat";
                        gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
@@ -63,6 +69,8 @@
 
 &can1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
 };
 
 &dcc {
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@21 {
                reg = <21>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
+               /* reset-gpios = <&tca6416_u97 6 GPIO_ACTIVE_LOW>; */
        };
 };
 
 &gpio {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_default>;
+};
+
+&gpu {
+       status = "okay";
 };
 
 &i2c0 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 
        tca6416_u97: gpio@20 {
                compatible = "ti,tca6416";
                reg = <0x20>;
-               gpio-controller;
+               gpio-controller; /* IRQ not connected */
                #gpio-cells = <2>;
-               /*
-                * IRQ not connected
-                * Lines:
-                * 0 - PS_GTR_LAN_SEL0
-                * 1 - PS_GTR_LAN_SEL1
-                * 2 - PS_GTR_LAN_SEL2
-                * 3 - PS_GTR_LAN_SEL3
-                * 4 - PCI_CLK_DIR_SEL
-                * 5 - IIC_MUX_RESET_B
-                * 6 - GEM3_EXP_RESET_B
-                * 7, 10 - 17 - not connected
-                */
-
-               gtr-sel0 {
+               gpio-line-names = "PS_GTR_LAN_SEL0", "PS_GTR_LAN_SEL1", "PS_GTR_LAN_SEL2", "PS_GTR_LAN_SEL3",
+                               "PCI_CLK_DIR_SEL", "IIC_MUX_RESET_B", "GEM3_EXP_RESET_B",
+                               "", "", "", "", "", "", "", "", "";
+               gtr_sel0 {
                        gpio-hog;
                        gpios = <0 0>;
                        output-low; /* PCIE = 0, DP = 1 */
                        line-name = "sel0";
                };
-               gtr-sel1 {
+               gtr_sel1 {
                        gpio-hog;
                        gpios = <1 0>;
                        output-high; /* PCIE = 0, DP = 1 */
                        line-name = "sel1";
                };
-               gtr-sel2 {
+               gtr_sel2 {
                        gpio-hog;
                        gpios = <2 0>;
                        output-high; /* PCIE = 0, USB0 = 1 */
                        line-name = "sel2";
                };
-               gtr-sel3 {
+               gtr_sel3 {
                        gpio-hog;
                        gpios = <3 0>;
                        output-high; /* PCIE = 0, SATA = 1 */
        tca6416_u61: gpio@21 {
                compatible = "ti,tca6416";
                reg = <0x21>;
-               gpio-controller;
+               gpio-controller; /* IRQ not connected */
                #gpio-cells = <2>;
-               /*
-                * IRQ not connected
-                * Lines:
-                * 0 - VCCPSPLL_EN
-                * 1 - MGTRAVCC_EN
-                * 2 - MGTRAVTT_EN
-                * 3 - VCCPSDDRPLL_EN
-                * 4 - MIO26_PMU_INPUT_LS
-                * 5 - PL_PMBUS_ALERT
-                * 6 - PS_PMBUS_ALERT
-                * 7 - MAXIM_PMBUS_ALERT
-                * 10 - PL_DDR4_VTERM_EN
-                * 11 - PL_DDR4_VPP_2V5_EN
-                * 12 - PS_DIMM_VDDQ_TO_PSVCCO_ON
-                * 13 - PS_DIMM_SUSPEND_EN
-                * 14 - PS_DDR4_VTERM_EN
-                * 15 - PS_DDR4_VPP_2V5_EN
-                * 16 - 17 - not connected
-                */
+               gpio-line-names = "VCCPSPLL_EN", "MGTRAVCC_EN", "MGTRAVTT_EN", "VCCPSDDRPLL_EN", "MIO26_PMU_INPUT_LS",
+                               "PL_PMBUS_ALERT", "PS_PMBUS_ALERT", "MAXIM_PMBUS_ALERT", "PL_DDR4_VTERM_EN",
+                               "PL_DDR4_VPP_2V5_EN", "PS_DIMM_VDDQ_TO_PSVCCO_ON", "PS_DIMM_SUSPEND_EN",
+                               "PS_DDR4_VTERM_EN", "PS_DDR4_VPP_2V5_EN", "", "";
        };
 
        i2c-mux@75 { /* u60 */
                                status = "disabled"; /* unreachable */
                                reg = <0x20>;
                        };
-
                        max20751@72 { /* u95 */
                                compatible = "maxim,max20751";
                                reg = <0x72>;
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
 
        /* PL i2c via PCA9306 - u45 */
        i2c-mux@74 { /* u34 */
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u69 */
+                               compatible = "silabs,si5341";
                                reg = <0x36>;
                        };
 
                                temperature-stability = <50>;
                                factory-fout = <300000000>;
                                clock-frequency = <300000000>;
+                               clock-output-names = "si570_user";
                        };
                };
                i2c@3 {
                                temperature-stability = <50>; /* copy from zc702 */
                                factory-fout = <156250000>;
                                clock-frequency = <148500000>;
+                               clock-output-names = "si570_mgt";
                        };
                };
                i2c@4 {
                        #size-cells = <0>;
                        reg = <4>;
                        si5328: clock-generator@69 {/* SI5328 - u20 */
+                               compatible = "silabs,si5328";
                                reg = <0x69>;
                                /*
                                 * Chip has interrupt present connected to PL
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_3_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_3_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_5_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO21";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO20";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_6_grp";
+               };
+
+               conf {
+                       groups = "can1_6_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO25";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO24";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio1_wp_0_grp";
+                       function = "sdio1_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio1_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_gpio_default: gpio-default {
+               mux-sw {
+                       function = "gpio0";
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+               };
+
+               conf-sw {
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-msp {
+                       function = "gpio0";
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+               };
+
+               conf-msp {
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-pull-up {
+                       pins = "MIO22", "MIO23";
+                       bias-pull-up;
+               };
+
+               conf-pull-none {
+                       pins = "MIO13", "MIO38";
+                       bias-disable;
+               };
+       };
+};
+
 &pcie {
        status = "okay";
 };
 
+&qspi {
+       status = "okay";
+       is-dual = <1>;
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
        no-1-8-v;
+       xlnx,mio_bank = <1>;
+};
+
+&serdes {
+       status = "okay";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
+       maximum-speed = "super-speed";
 };
 
 &watchdog0 {
        status = "okay";
 };
+
+&xilinx_ams {
+       status = "okay";
+};
+
+&ams_ps {
+       status = "okay";
+};
+
+&ams_pl {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0";
+       phys = <&lane1 PHY_TYPE_DP 0 3 27000000>;
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
index af4d86882a5c30611b116abbaa8e4257efc40fbf..fb235df60ce6648d16d5757739a6893ae5a888c0 100644 (file)
@@ -21,6 +21,8 @@
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
+               /* reset-gpios = <&tca6416_u97 6 GPIO_ACTIVE_LOW>; */
        };
        /* Cleanup from RevA */
        /delete-node/ phy@21;
index d4ad19a38c936238f7db6199ff35073772a73aec..833f986f0d2f9640a2600805e0c21aa5973fd169 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU104 RevA";
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c1;
                mmc0 = &sdhci1;
                rtc0 = &rtc;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
 
 &can1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
 };
 
 &dcc {
        status = "okay";
 };
 
+&fpd_dma_chan1 {
+       status = "okay";
+};
+
+&fpd_dma_chan2 {
+       status = "okay";
+};
+
+&fpd_dma_chan3 {
+       status = "okay";
+};
+
+&fpd_dma_chan4 {
+       status = "okay";
+};
+
+&fpd_dma_chan5 {
+       status = "okay";
+};
+
+&fpd_dma_chan6 {
+       status = "okay";
+};
+
+&fpd_dma_chan7 {
+       status = "okay";
+};
+
+&fpd_dma_chan8 {
+       status = "okay";
+};
+
 &gem3 {
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@c {
                reg = <0xc>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
        };
 };
 
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+};
+
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
 
        /* Another connection to this bus via PL i2c via PCA9306 - u45 */
        i2c-mux@74 { /* u34 */
                         * 512B - 768B address 0x56
                         * 768B - 1024B address 0x57
                         */
-                       eeprom@54 { /* u23 */
+                       eeprom: eeprom@54 { /* u23 */
                                compatible = "atmel,24c08";
                                reg = <0x54>;
                                #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <1>;
                        clock_8t49n287: clock-generator@6c { /* 8T49N287 - u182 */
+                               compatible = "idt,8t49n287";
                                reg = <0x6c>;
                        };
                };
                        #size-cells = <0>;
                        reg = <2>;
                        irps5401_43: irps54012@43 { /* IRPS5401 - u175 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
                                reg = <0x43>;
                        };
                        irps5401_4d: irps54012@4d { /* IRPS5401 - u180 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
                                reg = <0x4d>;
                        };
                };
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
-                       tca6416_u97: gpio@21 {
+                       tca6416_u97: gpio@20 {
                                compatible = "ti,tca6416";
-                               reg = <0x21>;
+                               reg = <0x20>;
                                gpio-controller;
                                #gpio-cells = <2>;
                                /*
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_6_grp";
+               };
+
+               conf {
+                       groups = "can1_6_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO25";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO24";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+                       drive-strength = <12>;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_5_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO21";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO20";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* n25q512a 128MiB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
        no-1-8-v;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
+       xlnx,mio_bank = <1>;
        disable-wp;
 };
 
+&serdes {
+       status = "okay";
+};
+
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
+       maximum-speed = "super-speed";
 };
 
 &watchdog0 {
        status = "okay";
 };
+
+&xilinx_ams {
+       status = "okay";
+};
+
+&ams_ps {
+       status = "okay";
+};
+
+&ams_pl {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 3 27000000>, <&lane0 PHY_TYPE_DP 1 3 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts b/arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
new file mode 100644 (file)
index 0000000..1ee284f
--- /dev/null
@@ -0,0 +1,547 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * dts file for Xilinx ZynqMP ZCU104
+ *
+ * (C) Copyright 2017 - 2018, Xilinx, Inc.
+ *
+ * Michal Simek <michal.simek@xilinx.com>
+ */
+
+/dts-v1/;
+
+#include "zynqmp.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
+
+/ {
+       model = "ZynqMP ZCU104 RevC";
+       compatible = "xlnx,zynqmp-zcu104-revC", "xlnx,zynqmp-zcu104", "xlnx,zynqmp";
+
+       aliases {
+               ethernet0 = &gem3;
+               gpio0 = &gpio;
+               i2c0 = &i2c1;
+               mmc0 = &sdhci1;
+               rtc0 = &rtc;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
+       };
+
+       chosen {
+               bootargs = "earlycon";
+               stdout-path = "serial0:115200n8";
+               xlnx,eeprom = &eeprom;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+};
+
+&can1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
+};
+
+&dcc {
+       status = "okay";
+};
+
+&fpd_dma_chan1 {
+       status = "okay";
+};
+
+&fpd_dma_chan2 {
+       status = "okay";
+};
+
+&fpd_dma_chan3 {
+       status = "okay";
+};
+
+&fpd_dma_chan4 {
+       status = "okay";
+};
+
+&fpd_dma_chan5 {
+       status = "okay";
+};
+
+&fpd_dma_chan6 {
+       status = "okay";
+};
+
+&fpd_dma_chan7 {
+       status = "okay";
+};
+
+&fpd_dma_chan8 {
+       status = "okay";
+};
+
+&gem3 {
+       status = "okay";
+       phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
+       phy0: phy@c {
+               reg = <0xc>;
+               ti,rx-internal-delay = <0x8>;
+               ti,tx-internal-delay = <0xa>;
+               ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
+       };
+};
+
+&gpio {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
+
+       tca6416_u97: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               /*
+                 * IRQ not connected
+                 * Lines:
+                 * 0 - IRPS5401_ALERT_B
+                 * 1 - HDMI_8T49N241_INT_ALM
+                 * 2 - MAX6643_OT_B
+                 * 3 - MAX6643_FANFAIL_B
+                 * 5 - IIC_MUX_RESET_B
+                 * 6 - GEM3_EXP_RESET_B
+                 * 7 - FMC_LPC_PRSNT_M2C_B
+                 * 4, 10 - 17 - not connected
+                 */
+       };
+
+       /* Another connection to this bus via PL i2c via PCA9306 - u45 */
+       i2c-mux@74 { /* u34 */
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x74>;
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       /*
+                        * IIC_EEPROM 1kB memory which uses 256B blocks
+                        * where every block has different address.
+                        *    0 - 256B address 0x54
+                        * 256B - 512B address 0x55
+                        * 512B - 768B address 0x56
+                        * 768B - 1024B address 0x57
+                        */
+                       eeprom: eeprom@54 { /* u23 */
+                               compatible = "atmel,24c08";
+                               reg = <0x54>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                       };
+               };
+
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       clock_8t49n287: clock-generator@6c { /* 8T49N287 - u182 */
+                               compatible = "idt,8t49n287";
+                               reg = <0x6c>;
+                       };
+               };
+
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       irps5401_43: irps54012@43 { /* IRPS5401 - u175 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
+                               reg = <0x43>;
+                       };
+                       irps5401_4d: irps54012@4d { /* IRPS5401 - u180 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
+                               reg = <0x4d>;
+                       };
+               };
+
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+                       ina226@40 { /* u183 */
+                               compatible = "ti,ina226";
+                               reg = <0x40>;
+                               shunt-resistor = <5000>;
+                       };
+               };
+
+               i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+
+               /* 4, 6 not connected */
+       };
+};
+
+&pinctrl0 {
+       status = "okay";
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_6_grp";
+               };
+
+               conf {
+                       groups = "can1_6_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO25";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO24";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+                       drive-strength = <12>;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_5_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO21";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO20";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       drive-strength = <12>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* n25q512a 128MiB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+       /* SATA OOB timing settings */
+       ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
+       ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
+       ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
+       ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>;
+       ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
+       ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
+       ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
+};
+
+/* SD1 with level shifter */
+&sdhci1 {
+       status = "okay";
+       no-1-8-v;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
+       xlnx,mio_bank = <1>;
+       disable-wp;
+};
+
+&serdes {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
+};
+
+&uart1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
+};
+
+/* ULPI SMSC USB3320 */
+&usb0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
+       maximum-speed = "super-speed";
+};
+
+&watchdog0 {
+       status = "okay";
+};
+
+&xilinx_ams {
+       status = "okay";
+};
+
+&ams_ps {
+       status = "okay";
+};
+
+&ams_pl {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 3 27000000>, <&lane0 PHY_TYPE_DP 1 3 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
index 94cf5094df648a8652f855db3a70a91fdba23b44..32c35869a1a9eae4e2412b08a37e1474b956fa4c 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU106 RevA";
@@ -20,6 +22,7 @@
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci1;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
                bootargs = "earlycon";
                stdout-path = "serial0:115200n8";
+               xlnx,eeprom = &eeprom;
        };
 
        memory@0 {
                        label = "sw19";
                        gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_DOWN>;
-                       wakeup-source;
+                       gpio-key,wakeup;
                        autorepeat;
                };
        };
 
        leds {
                compatible = "gpio-leds";
-               heartbeat-led {
+               heartbeat_led {
                        label = "heartbeat";
                        gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
 
 &can1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
 };
 
 &dcc {
        status = "okay";
 };
 
-/* fpd_dma clk 667MHz, lpd_dma 500MHz */
 &fpd_dma_chan1 {
        status = "okay";
 };
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@c {
                reg = <0xc>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
        };
 };
 
 &gpio {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_default>;
+};
+
+&gpu {
+       status = "okay";
 };
 
 &i2c0 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 
        tca6416_u97: gpio@20 {
                compatible = "ti,tca6416";
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
 
        /* PL i2c via PCA9306 - u45 */
        i2c-mux@74 { /* u34 */
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u69 */
+                               compatible = "si5341";
                                reg = <0x36>;
                        };
 
                                temperature-stability = <50>;
                                factory-fout = <300000000>;
                                clock-frequency = <300000000>;
+                               clock-output-names = "si570_user";
                        };
                };
                i2c@3 {
                                temperature-stability = <50>; /* copy from zc702 */
                                factory-fout = <156250000>;
                                clock-frequency = <148500000>;
+                               clock-output-names = "si570_mgt";
                        };
                };
                i2c@4 {
                        #size-cells = <0>;
                        reg = <4>;
                        si5328: clock-generator@69 {/* SI5328 - u20 */
+                               compatible = "silabs,si5328";
                                reg = <0x69>;
                        };
                };
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_3_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_3_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_5_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO21";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO20";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_6_grp";
+               };
+
+               conf {
+                       groups = "can1_6_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO25";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO24";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio1_wp_0_grp";
+                       function = "sdio1_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio1_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_gpio_default: gpio-default {
+               mux {
+                       function = "gpio0";
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+               };
+
+               conf {
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-msp {
+                       function = "gpio0";
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+               };
+
+               conf-msp {
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-pull-up {
+                       pins = "MIO22";
+                       bias-pull-up;
+               };
+
+               conf-pull-none {
+                       pins = "MIO13", "MIO23", "MIO38";
+                       bias-disable;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       is-dual = <1>;
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
        no-1-8-v;
+       xlnx,mio_bank = <1>;
+};
+
+&serdes {
+       status = "okay";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
 };
 
 &watchdog0 {
        status = "okay";
 };
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 3 27000000>, <&lane0 PHY_TYPE_DP 1 3 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};
index 460adc3782958257f91ad3e331a771d9f7ee958f..2d6be96e713d567c15e3fc825d2cc3489cd11227 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU111 RevA";
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci1;
                rtc0 = &rtc;
                serial0 = &uart0;
                serial1 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
                bootargs = "earlycon";
                stdout-path = "serial0:115200n8";
+               xlnx,eeprom = &eeprom;
        };
 
        memory@0 {
                        label = "sw19";
                        gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_DOWN>;
-                       wakeup-source;
+                       gpio-key,wakeup;
                        autorepeat;
                };
        };
 
        leds {
                compatible = "gpio-leds";
-               heartbeat-led {
+               heartbeat_led {
                        label = "heartbeat";
                        gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@c {
                reg = <0xc>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
        };
 };
 
 &gpio {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_default>;
+};
+
+&gpu {
+       status = "okay";
 };
 
 &i2c0 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 
        tca6416_u22: gpio@20 {
                compatible = "ti,tca6416";
                        #size-cells = <0>;
                        reg = <2>;
                        irps5401_43: irps54012@43 { /* IRPS5401 - u53 check these */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
                                reg = <0x43>;
                        };
                        irps5401_44: irps54012@44 { /* IRPS5401 - u55 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
                                reg = <0x44>;
                        };
                        irps5401_45: irps54012@45 { /* IRPS5401 - u57 */
+                               #clock-cells = <0>;
+                               compatible = "infineon,irps5401";
                                reg = <0x45>;
                        };
                        /* u68 IR38064 +0 */
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
 
        i2c-mux@74 { /* u26 */
                compatible = "nxp,pca9548";
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u46 */
+                               compatible = "si5341";
                                reg = <0x36>;
                        };
 
                                temperature-stability = <50>;
                                factory-fout = <300000000>;
                                clock-frequency = <300000000>;
+                               clock-output-names = "si570_user";
                        };
                };
                i2c@3 {
                                temperature-stability = <50>;
                                factory-fout = <156250000>;
                                clock-frequency = <148500000>;
+                               clock-output-names = "si570_mgt";
                        };
                };
                i2c@4 {
                        #size-cells = <0>;
                        reg = <4>;
                        si5328: clock-generator@69 { /* SI5328 - u48 */
+                               compatible = "silabs,si5328";
                                reg = <0x69>;
                        };
                };
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_3_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_3_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_gpio_default: gpio-default {
+               mux {
+                       function = "gpio0";
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+               };
+
+               conf {
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-msp {
+                       function = "gpio0";
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+               };
+
+               conf-msp {
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-pull-up {
+                       pins = "MIO22";
+                       bias-pull-up;
+               };
+
+               conf-pull-none {
+                       pins = "MIO13", "MIO23", "MIO38";
+                       bias-disable;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       is-dual = <1>;
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 3 125000000>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
        no-1-8-v;
+       disable-wp;
+       xlnx,mio_bank = <1>;
+};
+
+&serdes {
+       status = "okay";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 1 27000000>, <&lane0 PHY_TYPE_DP 1 1 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
 };
index fa4fd777d90e361a7c34364bea6c4a7d3b13906f..db61b4dfe670d7c9718d69674edd305a49d91ecd 100644 (file)
@@ -12,6 +12,9 @@
  * the License, or (at your option) any later version.
  */
 
+#include <dt-bindings/power/xlnx-zynqmp-power.h>
+#include <dt-bindings/reset/xlnx-zynqmp-resets.h>
+
 / {
        compatible = "xlnx,zynqmp";
        #address-cells = <2>;
@@ -71,7 +74,7 @@
                };
        };
 
-       cpu_opp_table: cpu-opp-table {
+       cpu_opp_table: cpu_opp_table {
                compatible = "operating-points-v2";
                opp-shared;
                opp00 {
        dcc: dcc {
                compatible = "arm,dcc";
                status = "disabled";
+               u-boot,dm-pre-reloc;
+       };
+
+       zynqmp_ipi {
+               compatible = "xlnx,zynqmp-ipi-mailbox";
+               interrupt-parent = <&gic>;
+               interrupts = <0 35 4>;
+               xlnx,ipi-id = <0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ipi_mailbox_pmu1: mailbox@ff990400 {
+                       reg = <0x0 0xff9905c0 0x0 0x20>,
+                             <0x0 0xff9905e0 0x0 0x20>,
+                             <0x0 0xff990e80 0x0 0x20>,
+                             <0x0 0xff990ea0 0x0 0x20>;
+                       reg-names = "local_request_region", "local_response_region",
+                                   "remote_request_region", "remote_response_region";
+                       #mbox-cells = <1>;
+                       xlnx,ipi-id = <4>;
+               };
        };
 
        pmu {
                method = "smc";
        };
 
+       firmware {
+               zynqmp_firmware: zynqmp-firmware {
+                       compatible = "xlnx,zynqmp-firmware";
+                       method = "smc";
+                       #power-domain-cells = <0x1>;
+                       u-boot,dm-pre-reloc;
+
+                       zynqmp_power: zynqmp-power {
+                               compatible = "xlnx,zynqmp-power";
+                               interrupt-parent = <&gic>;
+                               interrupts = <0 35 4>;
+                               mboxes = <&ipi_mailbox_pmu1 0>,
+                                        <&ipi_mailbox_pmu1 1>;
+                               mbox-names = "tx", "rx";
+                       };
+
+                       zynqmp_reset: reset-controller {
+                               compatible = "xlnx,zynqmp-reset";
+                               #reset-cells = <1>;
+                       };
+
+                       pinctrl0: pinctrl {
+                               compatible = "xlnx,zynqmp-pinctrl";
+                               status = "disabled";
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&gic>;
                             <1 10 0xf08>;
        };
 
-       amba_apu: amba-apu@0 {
+       edac {
+               compatible = "arm,cortex-a53-edac";
+       };
+
+       fpga_full: fpga-full {
+               compatible = "fpga-region";
+               fpga-mgr = <&pcap>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+       };
+
+       nvmem_firmware {
+               compatible = "xlnx,zynqmp-nvmem-fw";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               soc_revision: soc_revision@0 {
+                       reg = <0x0 0x4>;
+               };
+               /* efuse access */
+               efuse_dna: efuse_dna@c {
+                       reg = <0xc 0xc>;
+               };
+               efuse_usr0: efuse_usr0@20 {
+                       reg = <0x20 0x4>;
+               };
+               efuse_usr1: efuse_usr1@24 {
+                       reg = <0x24 0x4>;
+               };
+               efuse_usr2: efuse_usr2@28 {
+                       reg = <0x28 0x4>;
+               };
+               efuse_usr3: efuse_usr3@2c {
+                       reg = <0x2c 0x4>;
+               };
+               efuse_usr4: efuse_usr4@30 {
+                       reg = <0x30 0x4>;
+               };
+               efuse_usr5: efuse_usr5@34 {
+                       reg = <0x34 0x4>;
+               };
+               efuse_usr6: efuse_usr6@38 {
+                       reg = <0x38 0x4>;
+               };
+               efuse_usr7: efuse_usr7@3c {
+                       reg = <0x3c 0x4>;
+               };
+               efuse_miscusr: efuse_miscusr@40 {
+                       reg = <0x40 0x4>;
+               };
+               efuse_chash: efuse_chash@50 {
+                       reg = <0x50 0x4>;
+               };
+               efuse_pufmisc: efuse_pufmisc@54 {
+                       reg = <0x54 0x4>;
+               };
+               efuse_sec: efuse_sec@58 {
+                       reg = <0x58 0x4>;
+               };
+               efuse_spkid: efuse_spkid@5c {
+                       reg = <0x5c 0x4>;
+               };
+               efuse_ppk0hash: efuse_ppk0hash@a0 {
+                       reg = <0xa0 0x30>;
+               };
+               efuse_ppk1hash: efuse_ppk1hash@d0 {
+                       reg = <0xd0 0x30>;
+               };
+       };
+
+       pcap: pcap {
+               compatible = "xlnx,zynqmp-pcap-fpga";
+               clock-names = "ref_clk";
+       };
+
+       xlnx_rsa: zynqmp_rsa {
+               compatible = "xlnx,zynqmp-rsa";
+       };
+
+       xlnx_keccak_384: sha384 {
+               compatible = "xlnx,zynqmp-keccak-384";
+       };
+
+       xlnx_aes: zynqmp_aes {
+               compatible = "xlnx,zynqmp-aes";
+       };
+
+       amba_apu: amba_apu@0 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <1>;
                };
        };
 
+       smmu: smmu@fd800000 {
+               compatible = "arm,mmu-500";
+               reg = <0x0 0xfd800000 0x0 0x20000>;
+               #iommu-cells = <1>;
+               status = "disabled";
+               #global-interrupts = <1>;
+               interrupt-parent = <&gic>;
+               interrupts = <0 155 4>,
+                       <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                       <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                       <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                       <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
+       };
+
        amba: amba {
                compatible = "simple-bus";
+               u-boot,dm-pre-reloc;
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
                        interrupt-parent = <&gic>;
                        tx-fifo-depth = <0x40>;
                        rx-fifo-depth = <0x40>;
+                       power-domains = <&zynqmp_firmware PD_CAN_0>;
                };
 
                can1: can@ff070000 {
                        interrupt-parent = <&gic>;
                        tx-fifo-depth = <0x40>;
                        rx-fifo-depth = <0x40>;
+                       power-domains = <&zynqmp_firmware PD_CAN_1>;
                };
 
                cci: cci@fd6e0000 {
                        interrupts = <0 124 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14e8>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan2: dma@fd510000 {
                        interrupts = <0 125 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14e9>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan3: dma@fd520000 {
                        interrupts = <0 126 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14ea>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan4: dma@fd530000 {
                        interrupts = <0 127 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14eb>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan5: dma@fd540000 {
                        interrupts = <0 128 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14ec>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan6: dma@fd550000 {
                        interrupts = <0 129 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14ed>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan7: dma@fd560000 {
                        interrupts = <0 130 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14ee>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
                };
 
                fpd_dma_chan8: dma@fd570000 {
                        interrupts = <0 131 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <128>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x14ef>;
+                       power-domains = <&zynqmp_firmware PD_GDMA>;
+               };
+
+               gpu: gpu@fd4b0000 {
+                       status = "disabled";
+                       compatible = "arm,mali-400", "arm,mali-utgard";
+                       reg = <0x0 0xfd4b0000 0x0 0x10000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
+                       interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
+                       clock-names = "gpu", "gpu_pp0", "gpu_pp1";
+                       power-domains = <&zynqmp_firmware PD_GPU>;
                };
 
                /* LPDDMA default allows only secured access. inorder to enable
                        interrupts = <0 77 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x868>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan2: dma@ffa90000 {
                        interrupts = <0 78 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x869>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan3: dma@ffaa0000 {
                        interrupts = <0 79 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86a>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan4: dma@ffab0000 {
                        interrupts = <0 80 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86b>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan5: dma@ffac0000 {
                        interrupts = <0 81 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86c>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan6: dma@ffad0000 {
                        interrupts = <0 82 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86d>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan7: dma@ffae0000 {
                        interrupts = <0 83 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86e>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                lpd_dma_chan8: dma@ffaf0000 {
                        interrupts = <0 84 4>;
                        clock-names = "clk_main", "clk_apb";
                        xlnx,bus-width = <64>;
+                       #stream-id-cells = <1>;
+                       /* iommus = <&smmu 0x86f>; */
+                       power-domains = <&zynqmp_firmware PD_ADMA>;
                };
 
                mc: memory-controller@fd070000 {
                        interrupts = <0 112 4>;
                };
 
+               nand0: nand@ff100000 {
+                       compatible = "arasan,nfc-v3p10";
+                       status = "disabled";
+                       reg = <0x0 0xff100000 0x0 0x1000>;
+                       clock-names = "clk_sys", "clk_flash";
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 14 4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x872>;
+                       power-domains = <&zynqmp_firmware PD_NAND>;
+               };
+
                gem0: ethernet@ff0b0000 {
                        compatible = "cdns,zynqmp-gem", "cdns,gem";
                        status = "disabled";
                        clock-names = "pclk", "hclk", "tx_clk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x874>;
+                       power-domains = <&zynqmp_firmware PD_ETH_0>;
                };
 
                gem1: ethernet@ff0c0000 {
                        clock-names = "pclk", "hclk", "tx_clk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x875>;
+                       power-domains = <&zynqmp_firmware PD_ETH_1>;
                };
 
                gem2: ethernet@ff0d0000 {
                        clock-names = "pclk", "hclk", "tx_clk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x876>;
+                       power-domains = <&zynqmp_firmware PD_ETH_2>;
                };
 
                gem3: ethernet@ff0e0000 {
                        clock-names = "pclk", "hclk", "tx_clk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x877>;
+                       power-domains = <&zynqmp_firmware PD_ETH_3>;
                };
 
                gpio: gpio@ff0a0000 {
                        compatible = "xlnx,zynqmp-gpio-1.0";
                        status = "disabled";
                        #gpio-cells = <0x2>;
-                       gpio-controller;
                        interrupt-parent = <&gic>;
                        interrupts = <0 16 4>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                        reg = <0x0 0xff0a0000 0x0 0x1000>;
+                       gpio-controller;
+                       power-domains = <&zynqmp_firmware PD_GPIO>;
                };
 
                i2c0: i2c@ff020000 {
                        reg = <0x0 0xff020000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       power-domains = <&zynqmp_firmware PD_I2C_0>;
                };
 
                i2c1: i2c@ff030000 {
                        reg = <0x0 0xff030000 0x0 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       power-domains = <&zynqmp_firmware PD_I2C_1>;
+               };
+
+               ocm: memory-controller@ff960000 {
+                       compatible = "xlnx,zynqmp-ocmc-1.0";
+                       reg = <0x0 0xff960000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 10 4>;
+               };
+
+               perf_monitor_ocm: perf-monitor@ffa00000 {
+                       compatible = "xlnx,axi-perf-monitor";
+                       reg = <0x0 0xffa00000 0x0 0x10000>;
+                       interrupts = <0 25 4>;
+                       interrupt-parent = <&gic>;
+                       xlnx,enable-profile = <0>;
+                       xlnx,enable-trace = <0>;
+                       xlnx,num-monitor-slots = <1>;
+                       xlnx,enable-event-count = <1>;
+                       xlnx,enable-event-log = <1>;
+                       xlnx,have-sampled-metric-cnt = <1>;
+                       xlnx,num-of-counters = <8>;
+                       xlnx,metric-count-width = <32>;
+                       xlnx,metrics-sample-count-width = <32>;
+                       xlnx,global-count-width = <32>;
+                       xlnx,metric-count-scale = <1>;
+               };
+
+               perf_monitor_ddr: perf-monitor@fd0b0000 {
+                       compatible = "xlnx,axi-perf-monitor";
+                       reg = <0x0 0xfd0b0000 0x0 0x10000>;
+                       interrupts = <0 123 4>;
+                       interrupt-parent = <&gic>;
+                       xlnx,enable-profile = <0>;
+                       xlnx,enable-trace = <0>;
+                       xlnx,num-monitor-slots = <6>;
+                       xlnx,enable-event-count = <1>;
+                       xlnx,enable-event-log = <0>;
+                       xlnx,have-sampled-metric-cnt = <1>;
+                       xlnx,num-of-counters = <10>;
+                       xlnx,metric-count-width = <32>;
+                       xlnx,metrics-sample-count-width = <32>;
+                       xlnx,global-count-width = <32>;
+                       xlnx,metric-count-scale = <1>;
+               };
+
+               perf_monitor_cci: perf-monitor@fd490000 {
+                       compatible = "xlnx,axi-perf-monitor";
+                       reg = <0x0 0xfd490000 0x0 0x10000>;
+                       interrupts = <0 123 4>;
+                       interrupt-parent = <&gic>;
+                       xlnx,enable-profile = <0>;
+                       xlnx,enable-trace = <0>;
+                       xlnx,num-monitor-slots = <1>;
+                       xlnx,enable-event-count = <1>;
+                       xlnx,enable-event-log = <0>;
+                       xlnx,have-sampled-metric-cnt = <1>;
+                       xlnx,num-of-counters = <8>;
+                       xlnx,metric-count-width = <32>;
+                       xlnx,metrics-sample-count-width = <32>;
+                       xlnx,global-count-width = <32>;
+                       xlnx,metric-count-scale = <1>;
+               };
+
+               perf_monitor_lpd: perf-monitor@ffa10000 {
+                       compatible = "xlnx,axi-perf-monitor";
+                       reg = <0x0 0xffa10000 0x0 0x10000>;
+                       interrupts = <0 25 4>;
+                       interrupt-parent = <&gic>;
+                       xlnx,enable-profile = <0>;
+                       xlnx,enable-trace = <0>;
+                       xlnx,num-monitor-slots = <1>;
+                       xlnx,enable-event-count = <1>;
+                       xlnx,enable-event-log = <1>;
+                       xlnx,have-sampled-metric-cnt = <1>;
+                       xlnx,num-of-counters = <8>;
+                       xlnx,metric-count-width = <32>;
+                       xlnx,metrics-sample-count-width = <32>;
+                       xlnx,global-count-width = <32>;
+                       xlnx,metric-count-scale = <1>;
                };
 
                pcie: pcie@fd0e0000 {
                                        <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
                                        <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
                                        <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
+                       power-domains = <&zynqmp_firmware PD_PCIE>;
                        pcie_intc: legacy-interrupt-controller {
                                interrupt-controller;
                                #address-cells = <0>;
                        };
                };
 
+               qspi: spi@ff0f0000 {
+                       u-boot,dm-pre-reloc;
+                       compatible = "xlnx,zynqmp-qspi-1.0";
+                       status = "disabled";
+                       clock-names = "ref_clk", "pclk";
+                       interrupts = <0 15 4>;
+                       interrupt-parent = <&gic>;
+                       num-cs = <1>;
+                       reg = <0x0 0xff0f0000 0x0 0x1000>,
+                             <0x0 0xc0000000 0x0 0x8000000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x873>;
+                       power-domains = <&zynqmp_firmware PD_QSPI>;
+               };
+
                rtc: rtc@ffa60000 {
                        compatible = "xlnx,zynqmp-rtc";
                        status = "disabled";
                        calibration = <0x8000>;
                };
 
+               serdes: zynqmp_phy@fd400000 {
+                       compatible = "xlnx,zynqmp-psgtr-v1.1";
+                       status = "disabled";
+                       reg = <0x0 0xfd400000 0x0 0x40000>,
+                             <0x0 0xfd3d0000 0x0 0x1000>;
+                       reg-names = "serdes", "siou";
+                       nvmem-cells = <&soc_revision>;
+                       nvmem-cell-names = "soc_revision";
+                       resets = <&zynqmp_reset ZYNQMP_RESET_SATA>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB0_APB>,
+                                <&zynqmp_reset ZYNQMP_RESET_USB1_APB>,
+                                <&zynqmp_reset ZYNQMP_RESET_DP>,
+                                <&zynqmp_reset ZYNQMP_RESET_GEM0>,
+                                <&zynqmp_reset ZYNQMP_RESET_GEM1>,
+                                <&zynqmp_reset ZYNQMP_RESET_GEM2>,
+                                <&zynqmp_reset ZYNQMP_RESET_GEM3>;
+                       reset-names = "sata_rst", "usb0_crst", "usb1_crst",
+                                     "usb0_hibrst", "usb1_hibrst", "usb0_apbrst",
+                                     "usb1_apbrst", "dp_rst", "gem0_rst",
+                                     "gem1_rst", "gem2_rst", "gem3_rst";
+                       lane0: lane0 {
+                               #phy-cells = <4>;
+                       };
+                       lane1: lane1 {
+                               #phy-cells = <4>;
+                       };
+                       lane2: lane2 {
+                               #phy-cells = <4>;
+                       };
+                       lane3: lane3 {
+                               #phy-cells = <4>;
+                       };
+               };
+
                sata: ahci@fd0c0000 {
                        compatible = "ceva,ahci-1v84";
                        status = "disabled";
                        reg = <0x0 0xfd0c0000 0x0 0x2000>;
                        interrupt-parent = <&gic>;
                        interrupts = <0 133 4>;
+                       power-domains = <&zynqmp_firmware PD_SATA>;
+                       #stream-id-cells = <4>;
+                       /* iommus = <&smmu 0x4c0>, <&smmu 0x4c1>, */
+                       /*       <&smmu 0x4c2>, <&smmu 0x4c3>; */
+                       /* dma-coherent; */
                };
 
                sdhci0: mmc@ff160000 {
-                       compatible = "arasan,sdhci-8.9a";
+                       u-boot,dm-pre-reloc;
+                       compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 48 4>;
                        reg = <0x0 0xff160000 0x0 0x1000>;
                        clock-names = "clk_xin", "clk_ahb";
+                       xlnx,device_id = <0>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x870>;
+                       power-domains = <&zynqmp_firmware PD_SD_0>;
+                       nvmem-cells = <&soc_revision>;
+                       nvmem-cell-names = "soc_revision";
                };
 
                sdhci1: mmc@ff170000 {
-                       compatible = "arasan,sdhci-8.9a";
+                       u-boot,dm-pre-reloc;
+                       compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 49 4>;
                        reg = <0x0 0xff170000 0x0 0x1000>;
                        clock-names = "clk_xin", "clk_ahb";
-               };
-
-               smmu: smmu@fd800000 {
-                       compatible = "arm,mmu-500";
-                       reg = <0x0 0xfd800000 0x0 0x20000>;
-                       status = "disabled";
-                       #global-interrupts = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <0 155 4>,
-                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
-                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
-                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
-                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
+                       xlnx,device_id = <1>;
+                       #stream-id-cells = <1>;
+                       iommus = <&smmu 0x871>;
+                       power-domains = <&zynqmp_firmware PD_SD_1>;
+                       nvmem-cells = <&soc_revision>;
+                       nvmem-cell-names = "soc_revision";
                };
 
                spi0: spi@ff040000 {
                        clock-names = "ref_clk", "pclk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       power-domains = <&zynqmp_firmware PD_SPI_0>;
                };
 
                spi1: spi@ff050000 {
                        clock-names = "ref_clk", "pclk";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       power-domains = <&zynqmp_firmware PD_SPI_1>;
                };
 
                ttc0: timer@ff110000 {
                        interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
                        reg = <0x0 0xff110000 0x0 0x1000>;
                        timer-width = <32>;
+                       power-domains = <&zynqmp_firmware PD_TTC_0>;
                };
 
                ttc1: timer@ff120000 {
                        interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
                        reg = <0x0 0xff120000 0x0 0x1000>;
                        timer-width = <32>;
+                       power-domains = <&zynqmp_firmware PD_TTC_1>;
                };
 
                ttc2: timer@ff130000 {
                        interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
                        reg = <0x0 0xff130000 0x0 0x1000>;
                        timer-width = <32>;
+                       power-domains = <&zynqmp_firmware PD_TTC_2>;
                };
 
                ttc3: timer@ff140000 {
                        interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
                        reg = <0x0 0xff140000 0x0 0x1000>;
                        timer-width = <32>;
+                       power-domains = <&zynqmp_firmware PD_TTC_3>;
                };
 
                uart0: serial@ff000000 {
+                       u-boot,dm-pre-reloc;
                        compatible = "cdns,uart-r1p12", "xlnx,xuartps";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 21 4>;
                        reg = <0x0 0xff000000 0x0 0x1000>;
                        clock-names = "uart_clk", "pclk";
+                       power-domains = <&zynqmp_firmware PD_UART_0>;
                };
 
                uart1: serial@ff010000 {
+                       u-boot,dm-pre-reloc;
                        compatible = "cdns,uart-r1p12", "xlnx,xuartps";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 22 4>;
                        reg = <0x0 0xff010000 0x0 0x1000>;
                        clock-names = "uart_clk", "pclk";
+                       power-domains = <&zynqmp_firmware PD_UART_1>;
                };
 
-               usb0: usb@fe200000 {
-                       compatible = "snps,dwc3";
+               usb0: usb0@ff9d0000 {
+                       #address-cells = <2>;
+                       #size-cells = <2>;
                        status = "disabled";
-                       interrupt-parent = <&gic>;
-                       interrupts = <0 65 4>;
-                       reg = <0x0 0xfe200000 0x0 0x40000>;
-                       clock-names = "clk_xin", "clk_ahb";
+                       compatible = "xlnx,zynqmp-dwc3";
+                       reg = <0x0 0xff9d0000 0x0 0x100>;
+                       clock-names = "bus_clk", "ref_clk";
+                       power-domains = <&zynqmp_firmware PD_USB_0>;
+                       ranges;
+                       nvmem-cells = <&soc_revision>;
+                       nvmem-cell-names = "soc_revision";
+
+                       dwc3_0: dwc3@fe200000 {
+                               compatible = "snps,dwc3";
+                               status = "disabled";
+                               reg = <0x0 0xfe200000 0x0 0x40000>;
+                               interrupt-parent = <&gic>;
+                               interrupt-names = "dwc_usb3", "otg", "hiber";
+                               interrupts = <0 65 4>, <0 69 4>, <0 75 4>;
+                               #stream-id-cells = <1>;
+                               iommus = <&smmu 0x860>;
+                               snps,quirk-frame-length-adjustment = <0x20>;
+                               snps,refclk_fladj;
+                               snps,enable_guctl1_resume_quirk;
+                               snps,enable_guctl1_ipd_quirk;
+                               snps,xhci-stream-quirk;
+                               /* dma-coherent; */
+                               /* snps,enable-hibernation; */
+                       };
                };
 
-               usb1: usb@fe300000 {
-                       compatible = "snps,dwc3";
+               usb1: usb1@ff9e0000 {
+                       #address-cells = <2>;
+                       #size-cells = <2>;
                        status = "disabled";
-                       interrupt-parent = <&gic>;
-                       interrupts = <0 70 4>;
-                       reg = <0x0 0xfe300000 0x0 0x40000>;
-                       clock-names = "clk_xin", "clk_ahb";
+                       compatible = "xlnx,zynqmp-dwc3";
+                       reg = <0x0 0xff9e0000 0x0 0x100>;
+                       clock-names = "bus_clk", "ref_clk";
+                       power-domains = <&zynqmp_firmware PD_USB_1>;
+                       ranges;
+                       nvmem-cells = <&soc_revision>;
+                       nvmem-cell-names = "soc_revision";
+
+                       dwc3_1: dwc3@fe300000 {
+                               compatible = "snps,dwc3";
+                               status = "disabled";
+                               reg = <0x0 0xfe300000 0x0 0x40000>;
+                               interrupt-parent = <&gic>;
+                               interrupt-names = "dwc_usb3", "otg", "hiber";
+                               interrupts = <0 70 4>, <0 74 4>, <0 76 4>;
+                               #stream-id-cells = <1>;
+                               iommus = <&smmu 0x861>;
+                               snps,quirk-frame-length-adjustment = <0x20>;
+                               snps,refclk_fladj;
+                               snps,enable_guctl1_resume_quirk;
+                               snps,enable_guctl1_ipd_quirk;
+                               snps,xhci-stream-quirk;
+                               /* dma-coherent; */
+                       };
                };
 
                watchdog0: watchdog@fd4d0000 {
                        interrupt-parent = <&gic>;
                        interrupts = <0 113 1>;
                        reg = <0x0 0xfd4d0000 0x0 0x1000>;
+                       timeout-sec = <60>;
+                       reset-on-timeout;
+               };
+
+               lpd_watchdog: watchdog@ff150000 {
+                       compatible = "cdns,wdt-r1p2";
+                       status = "disabled";
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 52 1>;
+                       reg = <0x0 0xff150000 0x0 0x1000>;
                        timeout-sec = <10>;
                };
+
+               xilinx_ams: ams@ffa50000 {
+                       compatible = "xlnx,zynqmp-ams";
+                       status = "disabled";
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 56 4>;
+                       interrupt-names = "ams-irq";
+                       reg = <0x0 0xffa50000 0x0 0x800>;
+                       reg-names = "ams-base";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       #io-channel-cells = <1>;
+                       ranges;
+
+                       ams_ps: ams_ps@ffa50800 {
+                               compatible = "xlnx,zynqmp-ams-ps";
+                               status = "disabled";
+                               reg = <0x0 0xffa50800 0x0 0x400>;
+                       };
+
+                       ams_pl: ams_pl@ffa50c00 {
+                               compatible = "xlnx,zynqmp-ams-pl";
+                               status = "disabled";
+                               reg = <0x0 0xffa50c00 0x0 0x400>;
+                       };
+               };
+
+               xlnx_dpdma: dma@fd4c0000 {
+                       compatible = "xlnx,dpdma";
+                       status = "disabled";
+                       reg = <0x0 0xfd4c0000 0x0 0x1000>;
+                       interrupts = <0 122 4>;
+                       interrupt-parent = <&gic>;
+                       clock-names = "axi_clk";
+                       power-domains = <&zynqmp_firmware PD_DP>;
+                       dma-channels = <6>;
+                       #dma-cells = <1>;
+                       dma-video0channel {
+                               compatible = "xlnx,video0";
+                       };
+                       dma-video1channel {
+                               compatible = "xlnx,video1";
+                       };
+                       dma-video2channel {
+                               compatible = "xlnx,video2";
+                       };
+                       dma-graphicschannel {
+                               compatible = "xlnx,graphics";
+                       };
+                       dma-audio0channel {
+                               compatible = "xlnx,audio0";
+                       };
+                       dma-audio1channel {
+                               compatible = "xlnx,audio1";
+                       };
+               };
+
+               zynqmp_dpsub: zynqmp-display@fd4a0000 {
+                       compatible = "xlnx,zynqmp-dpsub-1.7";
+                       status = "disabled";
+                       reg = <0x0 0xfd4a0000 0x0 0x1000>,
+                             <0x0 0xfd4aa000 0x0 0x1000>,
+                             <0x0 0xfd4ab000 0x0 0x1000>,
+                             <0x0 0xfd4ac000 0x0 0x1000>;
+                       reg-names = "dp", "blend", "av_buf", "aud";
+                       interrupts = <0 119 4>;
+                       interrupt-parent = <&gic>;
+
+                       clock-names = "dp_apb_clk", "dp_aud_clk",
+                                     "dp_vtc_pixel_clk_in";
+
+                       power-domains = <&zynqmp_firmware PD_DP>;
+
+                       vid-layer {
+                               dma-names = "vid0", "vid1", "vid2";
+                               dmas = <&xlnx_dpdma 0>,
+                                      <&xlnx_dpdma 1>,
+                                      <&xlnx_dpdma 2>;
+                       };
+
+                       gfx-layer {
+                               dma-names = "gfx0";
+                               dmas = <&xlnx_dpdma 3>;
+                       };
+
+                       /* dummy node to indicate there's no child i2c device */
+                       i2c-bus {
+                       };
+
+                       zynqmp_dp_snd_codec0: zynqmp_dp_snd_codec0 {
+                               compatible = "xlnx,dp-snd-codec";
+                               clock-names = "aud_clk";
+                       };
+
+                       zynqmp_dp_snd_pcm0: zynqmp_dp_snd_pcm0 {
+                               compatible = "xlnx,dp-snd-pcm";
+                               dmas = <&xlnx_dpdma 4>;
+                               dma-names = "tx";
+                       };
+
+                       zynqmp_dp_snd_pcm1: zynqmp_dp_snd_pcm1 {
+                               compatible = "xlnx,dp-snd-pcm";
+                               dmas = <&xlnx_dpdma 5>;
+                               dma-names = "tx";
+                       };
+
+                       zynqmp_dp_snd_card0: zynqmp_dp_snd_card {
+                               compatible = "xlnx,dp-snd-card";
+                               xlnx,dp-snd-pcm = <&zynqmp_dp_snd_pcm0>,
+                                                 <&zynqmp_dp_snd_pcm1>;
+                               xlnx,dp-snd-codec = <&zynqmp_dp_snd_codec0>;
+                       };
+               };
        };
 };