]> git.baikalelectronics.ru Git - uboot.git/commitdiff
xilinx: Sync DTs with Linux kernel
authorMichal Simek <michal.simek@xilinx.com>
Thu, 26 Nov 2020 13:25:02 +0000 (14:25 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 30 Mar 2021 10:03:24 +0000 (12:03 +0200)
There are several changes which happen in mainline kernel which should get
also to U-Boot. Here is the list of patches from the kernel:

- ARM: zynq: Fix leds subnode name for zc702/zybo-z7
- arm64: dts: zynqmp: Fix leds subnode name for zcu100/ultra96 v1
- arm64: dts: zynqmp: Fix u48 si5382 chip on zcu111
- arm64: dts: zynqmp: Wire up the DisplayPort subsystem
- arm64: dts: zynqmp: Add DisplayPort subsystem
- arm64: dts: zynqmp: Add DPDMA node
- arm64: dts: zynqmp: Enable phy driver for Sata on zcu102/zcu104/zcu106
- arm64: dts: zynqmp: Enable si5341 driver for zcu102/106/111
- arm64: dts: zynqmp: Add DT description for si5328 for zcu102/zcu106
- arm64: dts: zynqmp-zcu100-revC: correct interrupt flags
- arm64: dts: xilinx: align GPIO hog names with dtschema
- arm64: zynqmp: Add Xilinx AES node
- dt: bindings: dma: xilinx: dpdma: DT bindings for Xilinx DPDMA

but also some other changes have been done.
- Using only one compatible string for adxl345 on zturn
- Remove Xilinx internal DP bindings
- Remove USB3.0 serdes configurations
- Remove SATA serdes configuration for zc1232
- Resort nvmem_firmware
- Update nand compatible string
- Aling power-domains property for sd0/1

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
19 files changed:
arch/arm/dts/zynq-zc702.dts
arch/arm/dts/zynq-zturn-common.dtsi
arch/arm/dts/zynq-zybo-z7.dts
arch/arm/dts/zynqmp-clk-ccf.dtsi
arch/arm/dts/zynqmp-g-a2197-00-revA.dts
arch/arm/dts/zynqmp-m-a2197-01-revA.dts
arch/arm/dts/zynqmp-zc1232-revA.dts
arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts
arch/arm/dts/zynqmp-zc1751-xm018-dc4.dts
arch/arm/dts/zynqmp-zcu100-revC.dts
arch/arm/dts/zynqmp-zcu102-revA.dts
arch/arm/dts/zynqmp-zcu104-revA.dts
arch/arm/dts/zynqmp-zcu104-revC.dts
arch/arm/dts/zynqmp-zcu106-revA.dts
arch/arm/dts/zynqmp-zcu111-revA.dts
arch/arm/dts/zynqmp-zcu208-revA.dts
arch/arm/dts/zynqmp-zcu216-revA.dts
arch/arm/dts/zynqmp.dtsi
include/dt-bindings/dma/xlnx-zynqmp-dpdma.h [new file with mode: 0644]

index b043d341d68067b63b5424cd1d0b89a55632e392..e45eba3d90b323f84f6e26e1d0dac31807016219 100644 (file)
@@ -51,7 +51,7 @@
        leds {
                compatible = "gpio-leds";
 
-               ds23 {
+               led-ds23 {
                        label = "ds23";
                        gpios = <&gpio0 10 0>;
                        linux,default-trigger = "heartbeat";
index 1d7af02893dc8f06521af392ebb36f4badbfca20..486b6fa2e1b86c2fbefc9957bfb2337bddca3b61 100644 (file)
        };
 
        accelerometer@53 {
-               compatible = "adi,adxl345", "adxl345", "adi,adxl34x", "adxl34x";
+               compatible = "adi,adxl345";
                reg = <0x53>;
                interrupt-parent = <&intc>;
                interrupts = <0x0 0x1e 0x4>;
index 3f8a3bfa0ff7e3c4ac121c8edcfdc99cd4aa935f..116958ec97aa95a59d1e86a11fb6d3c97836777e 100644 (file)
@@ -31,7 +31,7 @@
        gpio-leds {
                compatible = "gpio-leds";
 
-               ld4 {
+               led-ld4 {
                        label = "zynq-zybo-z7:green:ld4";
                        gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
                };
index b02ef22abd205a74d9d529555aa2a7515424e5ab..987792e5c511e621cbac7d2427684c3f95a83ebd 100644 (file)
        clocks = <&zynqmp_clk AMS_REF>;
 };
 
-&zynqmp_dpsub {
-       clocks = <&dp_aclk>, <&zynqmp_clk DP_AUDIO_REF>, <&zynqmp_clk DP_VIDEO_REF>;
+&zynqmp_pcap {
+       clocks = <&zynqmp_clk PCAP>;
 };
 
-&xlnx_dpdma {
+&zynqmp_dpdma {
        clocks = <&zynqmp_clk DPDMA_REF>;
 };
 
-&zynqmp_dp_snd_codec0 {
-       clocks = <&zynqmp_clk DP_AUDIO_REF>;
-};
-
-&zynqmp_pcap {
-       clocks = <&zynqmp_clk PCAP>;
+&zynqmp_dpsub {
+       clocks = <&zynqmp_clk TOPSW_LSBUS>,
+                <&zynqmp_clk DP_AUDIO_REF>,
+                <&zynqmp_clk DP_VIDEO_REF>;
 };
index 9468dc574fd81757271ee6467d0cffe7e8135594..f94b797d1a24d9b3302da5b02099a26df11d6802 100644 (file)
@@ -88,9 +88,6 @@
                reset-gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
 /*             xlnx,phy-type = <PHY_TYPE_SGMII>; */
        };
-/*     phy-names = "...";
-       phys = <&lane0 PHY_TYPE_SGMII ... >
-       Note: lane0 sgmii/lane1 usb3 */
 };
 
 &gpio {
index 66ea02e5be7fe0a52a82658a40a5df1399365048..19e1ebdb1d6a3e82d1149c15084635fb73f4de70 100644 (file)
                reg = <0>;
 /*             xlnx,phy-type = <PHY_TYPE_SGMII>; */
        };
-/*     phy-names = "...";
-       phys = <&lane0 PHY_TYPE_SGMII ... >
-       Note: lane0 sgmii/lane1 usb3 */
 };
 
 &gpio {
index afb3e96520b83fcd472757643e4bded2a0f21b14..ef7cf0a36b2136960c51e39f2a8e0a4d731a4bc4 100644 (file)
@@ -78,8 +78,6 @@
        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 e2428ec974a3a3f4e558eb1760ca3eab14d9adcc..b8c5efb6a914ef754e6ea827c85400426f872458 100644 (file)
        dr_mode = "host";
 };
 
-&zynqmp_dpsub {
-       status = "okay";
-};
-
-&zynqmp_dp_snd_pcm0 {
-       status = "okay";
-};
-
-&zynqmp_dp_snd_pcm1 {
+&zynqmp_dpdma {
        status = "okay";
 };
 
-&zynqmp_dp_snd_card0 {
-       status = "okay";
-};
-
-&zynqmp_dp_snd_codec0 {
+&zynqmp_dpsub {
        status = "okay";
 };
 
-&xlnx_dpdma {
-       status = "okay";
-};
index 9b38b8b919e2114cbfc78c8025659c2d6978d5c1..aadda179c32347159c5511bba92c20af24ae8a30 100644 (file)
        status = "okay";
 };
 
-&xlnx_dpdma {
+&zynqmp_dpdma {
        status = "okay";
 };
 
index d6c914c917f51ca34ef1a1c8d985147dcf0fc30b..bbcc69c79673d51a3049211e26ba5c153ff70612 100644 (file)
 
        leds {
                compatible = "gpio-leds";
-               ds2 {
+               led-ds2 {
                        label = "ds2";
                        gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
-               ds3 {
+               led-ds3 {
                        label = "ds3";
                        gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "phy0tx"; /* WLAN tx */
                        default-state = "off";
                };
 
-               ds4 {
+               led-ds4 {
                        label = "ds4";
                        gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "phy0rx"; /* WLAN rx */
                        default-state = "off";
                };
 
-               ds5 {
+               led-ds5 {
                        label = "ds5";
                        gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "bluetooth-power";
                compatible = "iio-hwmon";
                io-channels = <&u35 0>, <&u35 1>, <&u35 2>, <&u35 3>;
        };
+
+       si5335a_0: clk26 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+       };
+
+       si5335a_1: clk27 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+       };
 };
 
 &dcc {
                                compatible = "ti,tps65086";
                                reg = <0x5e>;
                                interrupt-parent = <&gpio>;
-                               interrupts = <77 GPIO_ACTIVE_LOW>;
+                               interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
                                #gpio-cells = <2>;
                                gpio-controller;
                        };
        };
 };
 
+&psgtr {
+       status = "okay";
+       /* usb3, dps */
+       clocks = <&si5335a_0>, <&si5335a_1>;
+       clock-names = "ref0", "ref1";
+};
+
 &rtc {
        status = "okay";
 };
        };
 };
 
-&serdes {
-       status = "okay";
-};
-
 &spi0 { /* Low Speed connector */
        status = "okay";
        label = "LS-SPI0";
 &dwc3_0 {
        status = "okay";
        dr_mode = "peripheral";
-       phy-names = "usb3-phy";
-       phys = <&lane2 PHY_TYPE_USB3 0 0 26000000>;
        maximum-speed = "super-speed";
 };
 
 &dwc3_1 {
        status = "okay";
        dr_mode = "host";
-       phy-names = "usb3-phy";
-       phys = <&lane3 PHY_TYPE_USB3 1 0 26000000>;
        maximum-speed = "super-speed";
 };
 
 &ams_ps {
        status = "okay";
 };
+
+&zynqmp_dpdma {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&psgtr 1 PHY_TYPE_DP 0 1>,
+              <&psgtr 0 PHY_TYPE_DP 1 1>;
+};
index ed036e68f5e365855b46948330dd0f073160f3ce..9323b8d64d5683459591d174b23393b9f29d8790 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
        };
+
+       /* 48MHz reference crystal */
+       ref48: ref48M {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+       };
+
+       refhdmi: refhdmi {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <114285000>;
+       };
 };
 
 &can1 {
                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 {
+               gtr-sel0-hog {
                        gpio-hog;
                        gpios = <0 0>;
                        output-low; /* PCIE = 0, DP = 1 */
                        line-name = "sel0";
                };
-               gtr-sel1 {
+               gtr-sel1-hog {
                        gpio-hog;
                        gpios = <1 0>;
                        output-high; /* PCIE = 0, DP = 1 */
                        line-name = "sel1";
                };
-               gtr-sel2 {
+               gtr-sel2-hog {
                        gpio-hog;
                        gpios = <2 0>;
                        output-high; /* PCIE = 0, USB0 = 1 */
                        line-name = "sel2";
                };
-               gtr-sel3 {
+               gtr-sel3-hog {
                        gpio-hog;
                        gpios = <3 0>;
                        output-high; /* PCIE = 0, SATA = 1 */
                        si5341: clock-generator@36 { /* SI5341 - u69 */
                                compatible = "silabs,si5341";
                                reg = <0x36>;
+                               #clock-cells = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&ref48>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5341";
+
+                               si5341_0: out@0 {
+                                       /* refclk0 for PS-GT, used for DP */
+                                       reg = <0>;
+                                       always-on;
+                               };
+                               si5341_2: out@2 {
+                                       /* refclk2 for PS-GT, used for USB3 */
+                                       reg = <2>;
+                                       always-on;
+                               };
+                               si5341_3: out@3 {
+                                       /* refclk3 for PS-GT, used for SATA */
+                                       reg = <3>;
+                                       always-on;
+                               };
+                               si5341_4: out@4 {
+                                       /* refclk4 for PS-GT, used for PCIE slot */
+                                       reg = <4>;
+                                       always-on;
+                               };
+                               si5341_5: out@5 {
+                                       /* refclk5 for PS-GT, used for PCIE */
+                                       reg = <5>;
+                                       always-on;
+                               };
+                               si5341_6: out@6 {
+                                       /* refclk6 PL CLK125 */
+                                       reg = <6>;
+                                       always-on;
+                               };
+                               si5341_7: out@7 {
+                                       /* refclk7 PL CLK74 */
+                                       reg = <7>;
+                                       always-on;
+                               };
+                               si5341_9: out@9 {
+                                       /* refclk9 used for PS_REF_CLK 33.3 MHz */
+                                       reg = <9>;
+                                       always-on;
+                               };
                        };
-
                };
                i2c@2 {
                        #address-cells = <1>;
        status = "okay";
 };
 
+&psgtr {
+       status = "okay";
+       /* pcie, sata, usb3, dp */
+       clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
+       clock-names = "ref0", "ref1", "ref2", "ref3";
+};
+
 &qspi {
        status = "okay";
        is-dual = <1>;
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
 };
 
 /* SD1 with level shifter */
        xlnx,mio-bank = <1>;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        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";
 };
 
        status = "okay";
 };
 
-&zynqmp_dpsub {
+&zynqmp_dpdma {
        status = "okay";
 };
 
-&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 {
+&zynqmp_dpsub {
        status = "okay";
+       phy-names = "dp-phy0";
+       phys = <&psgtr 1 PHY_TYPE_DP 0 3>;
 };
index cb8ffdff9771dd96f99153ee99ed98180dcbffd3..a95bd4922a62c0a2f3326d19194eb1ae73961375 100644 (file)
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
        };
+
+       clock_8t49n287_5: clk125 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <125000000>;
+       };
+
+       clock_8t49n287_2: clk26 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+       };
+
+       clock_8t49n287_3: clk27 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+       };
 };
 
 &can1 {
        };
 };
 
+&psgtr {
+       status = "okay";
+       /* nc, sata, usb3, dp */
+       clocks = <&clock_8t49n287_5>, <&clock_8t49n287_2>, <&clock_8t49n287_3>;
+       clock-names = "ref1", "ref2", "ref3";
+};
+
 &rtc {
        status = "okay";
 };
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
 };
 
 /* SD1 with level shifter */
        disable-wp;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        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";
 };
 
 &ams_pl {
        status = "okay";
 };
+
+&zynqmp_dpdma {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
+              <&psgtr 0 PHY_TYPE_DP 1 3>;
+};
index e203280f0eca260d0440ab419f4b4bc134727af7..8f30a2883e27f553c9593f745e0fe6c9cc9673e3 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&u183 0>, <&u183 1>, <&u183 2>, <&u183 3>;
        };
+
+       clock_8t49n287_5: clk125 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <125000000>;
+       };
+
+       clock_8t49n287_2: clk26 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+       };
+
+       clock_8t49n287_3: clk27 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+       };
 };
 
 &can1 {
        status = "okay";
 };
 
+&psgtr {
+       status = "okay";
+       /* nc, sata, usb3, dp */
+       clocks = <&clock_8t49n287_5>, <&clock_8t49n287_2>, <&clock_8t49n287_3>;
+       clock-names = "ref1", "ref2", "ref3";
+};
+
 &sata {
        status = "okay";
        /* SATA OOB timing settings */
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
 };
 
 /* SD1 with level shifter */
        disable-wp;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        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";
 };
 
 &ams_pl {
        status = "okay";
 };
+
+&zynqmp_dpdma {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
+              <&psgtr 0 PHY_TYPE_DP 1 3>;
+};
index 1dff845ceeb6434870685c9f623fd918e8e979d0..971f76f1cabe3c67152fd9aac94dcce8a37ed864 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&u75 0>, <&u75 1>, <&u75 2>, <&u75 3>;
        };
+
+       /* 48MHz reference crystal */
+       ref48: ref48M {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+       };
+
+       refhdmi: refhdmi {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <114285000>;
+       };
 };
 
 &can1 {
        status = "okay";
 };
 
+&zynqmp_dpdma {
+       status = "okay";
+};
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&psgtr 1 PHY_TYPE_DP 0 3>,
+              <&psgtr 0 PHY_TYPE_DP 1 3>;
+};
+
+/* fpd_dma clk 667MHz, lpd_dma 500MHz */
 &fpd_dma_chan1 {
        status = "okay";
 };
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u69 */
-                               compatible = "si5341";
+                               compatible = "silabs,si5341";
                                reg = <0x36>;
+                               #clock-cells = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&ref48>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5341";
+
+                               si5341_0: out@0 {
+                                       /* refclk0 for PS-GT, used for DP */
+                                       reg = <0>;
+                                       always-on;
+                               };
+                               si5341_2: out@2 {
+                                       /* refclk2 for PS-GT, used for USB3 */
+                                       reg = <2>;
+                                       always-on;
+                               };
+                               si5341_3: out@3 {
+                                       /* refclk3 for PS-GT, used for SATA */
+                                       reg = <3>;
+                                       always-on;
+                               };
+                               si5341_6: out@6 {
+                                       /* refclk6 PL CLK125 */
+                                       reg = <6>;
+                                       always-on;
+                               };
+                               si5341_7: out@7 {
+                                       /* refclk7 PL CLK74 */
+                                       reg = <7>;
+                                       always-on;
+                               };
+                               si5341_9: out@9 {
+                                       /* refclk9 used for PS_REF_CLK 33.3 MHz */
+                                       reg = <9>;
+                                       always-on;
+                               };
                        };
 
                };
                        #size-cells = <0>;
                        reg = <4>;
                        si5328: clock-generator@69 {/* SI5328 - u20 */
-                               compatible = "silabs,si5328";
                                reg = <0x69>;
+                               /*
+                                * Chip has interrupt present connected to PL
+                                * interrupt-parent = <&>;
+                                * interrupts = <>;
+                                */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #clock-cells = <1>;
+                               clocks = <&refhdmi>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5328";
+
+                               si5328_clk: clk0@0 {
+                                       reg = <0>;
+                                       clock-frequency = <27000000>;
+                               };
                        };
                };
                i2c@5 {
        };
 };
 
+&psgtr {
+       status = "okay";
+       /* nc, sata, usb3, dp */
+       clocks = <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
+       clock-names = "ref1", "ref2", "ref3";
+};
+
 &qspi {
        status = "okay";
        is-dual = <1>;
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
 };
 
 /* SD1 with level shifter */
        xlnx,mio-bank = <1>;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        status = "okay";
        dr_mode = "host";
        snps,usb3_lpm_capable;
-       phy-names = "usb3-phy";
-       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
 };
 
 &watchdog0 {
index 82e6c8d3cdfdf9a13c72510e77ec66e3bd43f849..9e47008542ae3c18573acc372e34db19d6c8f74e 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&u79 0>, <&u79 1>, <&u79 2>, <&u79 3>;
        };
+
+       /* 48MHz reference crystal */
+       ref48: ref48M {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+       };
 };
 
 &dcc {
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u46 */
-                               compatible = "si5341";
+                               compatible = "silabs,si5341";
                                reg = <0x36>;
+                               #clock-cells = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&ref48>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5341";
+
+                               si5341_0: out@0 {
+                                       /* refclk0 for PS-GT, used for DP */
+                                       reg = <0>;
+                                       always-on;
+                               };
+                               si5341_2: out@2 {
+                                       /* refclk2 for PS-GT, used for USB3 */
+                                       reg = <2>;
+                                       always-on;
+                               };
+                               si5341_3: out@3 {
+                                       /* refclk3 for PS-GT, used for SATA */
+                                       reg = <3>;
+                                       always-on;
+                               };
+                               si5341_5: out@5 {
+                                       /* refclk5 PL CLK100 */
+                                       reg = <5>;
+                                       always-on;
+                               };
+                               si5341_6: out@6 {
+                                       /* refclk6 PL CLK125 */
+                                       reg = <6>;
+                                       always-on;
+                               };
+                               si5341_9: out@9 {
+                                       /* refclk9 used for PS_REF_CLK 33.3 MHz */
+                                       reg = <9>;
+                                       always-on;
+                               };
                        };
-
                };
                i2c@2 {
                        #address-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
-                       si5328: clock-generator@69 { /* SI5328 - u48 */
-                               compatible = "silabs,si5328";
+                       si5382: clock-generator@69 { /* SI5382 - u48 */
+                               compatible = "silabs,si5382";
                                reg = <0x69>;
                        };
                };
        };
 };
 
+&psgtr {
+       status = "okay";
+       /* nc, sata, usb3, dp */
+       clocks = <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
+       clock-names = "ref1", "ref2", "ref3";
+};
+
 &qspi {
        status = "okay";
        is-dual = <1>;
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 1>;
 };
 
 /* SD1 with level shifter */
        xlnx,mio-bank = <1>;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       dr_mode = "host";
 };
 
-&dwc3_0 {
+&zynqmp_dpdma {
        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 = <&psgtr 1 PHY_TYPE_DP 0 1>,
+              <&psgtr 0 PHY_TYPE_DP 1 1>;
 };
index 268e368b7657f73386cb811bf722ed34d98e8ba3..0e114cdacb1a31ce7cf368323b97b0638de04b1e 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
        };
+
+       /* 48MHz reference crystal */
+       ref48: ref48M {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+       };
 };
 
 &dcc {
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u43 */
-                               compatible = "si5341";
+                               compatible = "silabs,si5341";
                                reg = <0x36>;
+                               #clock-cells = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&ref48>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5341";
+
+                               si5341_2: out@2 {
+                                       /* refclk2 for PS-GT, used for USB3 */
+                                       reg = <2>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_3: out@3 {
+                                       /* refclk3 for PS-GT, used for SATA */
+                                       reg = <3>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_5: out@5 {
+                                       /* refclk5 PL CLK100 */
+                                       reg = <5>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_6: out@6 {
+                                       /* refclk6 PL CLK125 */
+                                       reg = <6>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_9: out@9 {
+                                       /* refclk9 used for PS_REF_CLK 33.3 MHz */
+                                       reg = <9>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
                        };
-
                };
                i2c_si570_user_c0: i2c@2 {
                        #address-cells = <1>;
        };
 };
 
+&psgtr {
+       status = "okay";
+       /* pcie, sata, usb3, dp */
+       clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
+       clock-names = "ref0", "ref1", "ref2", "ref3";
+};
+
 &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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 3>;
 };
 
 /* SD1 with level shifter */
        xlnx,mio-bank = <1>;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        status = "okay";
        dr_mode = "host";
        snps,usb3_lpm_capable;
-       phy-names = "usb3-phy";
-       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
 };
index 847e689c155f1f39b3d14fa34f8c677e418a06d1..2302b07c4825c5bb0c927a716097bd5f1b2cd2ca 100644 (file)
                compatible = "iio-hwmon";
                io-channels = <&dac_avcc 0>, <&dac_avcc 1>, <&dac_avcc 2>, <&dac_avcc 3>;
        };
+
+       /* 48MHz reference crystal */
+       ref48: ref48M {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+       };
+};
+
+&psgtr {
+       status = "okay";
+       /* pcie, sata, usb3, dp */
+       clocks = <&si5341 0 5>, <&si5341 0 3>, <&si5341 0 2>, <&si5341 0 0>;
+       clock-names = "ref0", "ref1", "ref2", "ref3";
 };
 
 &dcc {
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u43 */
-                               compatible = "si5341";
+                               compatible = "silabs,si5341";
                                reg = <0x36>;
+                               #clock-cells = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&ref48>;
+                               clock-names = "xtal";
+                               clock-output-names = "si5341";
+
+                               si5341_2: out@2 {
+                                       /* refclk2 for PS-GT, used for USB3 */
+                                       reg = <2>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_3: out@3 {
+                                       /* refclk3 for PS-GT, used for SATA */
+                                       reg = <3>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_5: out@5 {
+                                       /* refclk5 PL CLK100 */
+                                       reg = <5>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_6: out@6 {
+                                       /* refclk6 PL CLK125 */
+                                       reg = <6>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
+                               si5341_9: out@9 {
+                                       /* refclk9 used for PS_REF_CLK 33.3 MHz */
+                                       reg = <9>;
+                                       always-on; /* assigned-clocks does not enable, so do it here */
+                               };
                        };
-
                };
                i2c_si570_user_c0: i2c@2 {
                        #address-cells = <1>;
        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>;
+       phys = <&psgtr 3 PHY_TYPE_SATA 1 3>;
 };
 
 /* SD1 with level shifter */
        xlnx,mio-bank = <1>;
 };
 
-&serdes {
-       status = "okay";
-};
-
 &uart0 {
        status = "okay";
 };
        status = "okay";
        dr_mode = "host";
        snps,usb3_lpm_capable;
-       phy-names = "usb3-phy";
-       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
 };
index 2917a956eb3ddf0b007df96941c05bb0bec76451..84d9770225aa375f803c07a2d5cd96b343f4891e 100644 (file)
@@ -12,6 +12,7 @@
  * the License, or (at your option) any later version.
  */
 
+#include <dt-bindings/dma/xlnx-zynqmp-dpdma.h>
 #include <dt-bindings/power/xlnx-zynqmp-power.h>
 #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
 
                                mbox-names = "tx", "rx";
                        };
 
+                       nvmem_firmware {
+                               compatible = "xlnx,zynqmp-nvmem-fw";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               soc_revision: soc_revision@0 {
+                                       reg = <0x0 0x4>;
+                               };
+                       };
+
                        zynqmp_pcap: pcap {
                                compatible = "xlnx,zynqmp-pcap-fpga";
                                clock-names = "ref_clk";
                        };
 
+                       xlnx_aes: zynqmp-aes {
+                               compatible = "xlnx,zynqmp-aes";
+                       };
+
                        zynqmp_reset: reset-controller {
                                compatible = "xlnx,zynqmp-reset";
                                #reset-cells = <1>;
                ranges;
        };
 
-       nvmem_firmware {
-               compatible = "xlnx,zynqmp-nvmem-fw";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               soc_revision: soc_revision@0 {
-                       reg = <0x0 0x4>;
-               };
-       };
-
        amba: axi {
                compatible = "simple-bus";
                u-boot,dm-pre-reloc;
                        interrupts = <0 112 4>;
                };
 
-               nand0: nand@ff100000 {
-                       compatible = "arasan,nfc-v3p10";
+               nand0: nand-controller@ff100000 {
+                       compatible = "xlnx,zynqmp-nand-controller", "arasan,nfc-v3p10";
                        status = "disabled";
                        reg = <0x0 0xff100000 0x0 0x1000>;
                        clock-names = "controller", "bus";
                        power-domains = <&zynqmp_firmware PD_QSPI>;
                };
 
+               psgtr: phy@fd400000 {
+                       compatible = "xlnx,zynqmp-psgtr-v1.1";
+                       status = "disabled";
+                       reg = <0x0 0xfd400000 0x0 0x40000>,
+                             <0x0 0xfd3d0000 0x0 0x1000>;
+                       reg-names = "serdes", "siou";
+                       #phy-cells = <4>;
+               };
+
                rtc: rtc@ffa60000 {
                        compatible = "xlnx,zynqmp-rtc";
                        status = "disabled";
                        calibration = <0x8000>;
                };
 
-               serdes: zynqmp_phy@fd400000 {
-                       compatible = "xlnx,zynqmp-psgtr";
-                       status = "disabled";
-                       reg = <0x0 0xfd400000 0x0 0x40000>,
-                             <0x0 0xfd3d0000 0x0 0x1000>,
-                             <0x0 0xff5e0000 0x0 0x1000>;
-                       reg-names = "serdes", "siou", "lpd";
-                       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";
                        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";
                        #clock-cells = <1>;
                        clock-output-names = "clk_out_sd0", "clk_in_sd0";
+                       power-domains = <&zynqmp_firmware PD_SD_0>;
                };
 
                sdhci1: mmc@ff170000 {
                        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";
                        #clock-cells = <1>;
                        clock-output-names = "clk_out_sd1", "clk_in_sd1";
+                       power-domains = <&zynqmp_firmware PD_SD_1>;
                };
 
                smmu: iommu@fd800000 {
                        };
                };
 
-               xlnx_dpdma: dma@fd4c0000 {
-                       compatible = "xlnx,dpdma";
+               zynqmp_dpdma: dma-controller@fd4c0000 {
+                       compatible = "xlnx,zynqmp-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 {
+               zynqmp_dpsub: display@fd4a0000 {
                        compatible = "xlnx,zynqmp-dpsub-1.7";
                        status = "disabled";
                        reg = <0x0 0xfd4a0000 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>;
-                       };
+                       resets = <&zynqmp_reset ZYNQMP_RESET_DP>;
+                       dma-names = "vid0", "vid1", "vid2", "gfx0";
+                       dmas = <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO0>,
+                              <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO1>,
+                              <&zynqmp_dpdma ZYNQMP_DPDMA_VIDEO2>,
+                              <&zynqmp_dpdma ZYNQMP_DPDMA_GRAPHICS>;
                };
        };
 };
diff --git a/include/dt-bindings/dma/xlnx-zynqmp-dpdma.h b/include/dt-bindings/dma/xlnx-zynqmp-dpdma.h
new file mode 100644 (file)
index 0000000..3719cda
--- /dev/null
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ * Copyright 2019 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+ */
+
+#ifndef __DT_BINDINGS_DMA_XLNX_ZYNQMP_DPDMA_H__
+#define __DT_BINDINGS_DMA_XLNX_ZYNQMP_DPDMA_H__
+
+#define ZYNQMP_DPDMA_VIDEO0            0
+#define ZYNQMP_DPDMA_VIDEO1            1
+#define ZYNQMP_DPDMA_VIDEO2            2
+#define ZYNQMP_DPDMA_GRAPHICS          3
+#define ZYNQMP_DPDMA_AUDIO0            4
+#define ZYNQMP_DPDMA_AUDIO1            5
+
+#endif /* __DT_BINDINGS_DMA_XLNX_ZYNQMP_DPDMA_H__ */