Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: zynqmp: Enable xlnx,zynqmp-dwc3 driver for xilinx boards

The commit 84770f028fab ("usb: dwc3: Add driver for Xilinx platforms")
finally add proper support for Xilinx dwc3 driver. This patch is adding DT
description for it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michael Tretter <m.tretter@pengutronix.de>
Link: https://lore.kernel.org/r/640a3bc0dc3e32560d3e84c2f78b5ae561396eb0.1628244703.git.michal.simek@xilinx.com

+122 -21
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
··· 27 27 rtc0 = &rtc; 28 28 serial0 = &uart0; 29 29 spi0 = &qspi; 30 + usb0 = &usb0; 30 31 }; 31 32 32 33 chosen { ··· 405 404 status = "okay"; 406 405 pinctrl-names = "default"; 407 406 pinctrl-0 = <&pinctrl_usb0_default>; 408 - dr_mode = "host"; 409 407 phy-names = "usb3-phy"; 410 408 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 409 + }; 410 + 411 + &dwc3_0 { 412 + status = "okay"; 413 + dr_mode = "host"; 414 + snps,usb3_lpm_capable; 411 415 maximum-speed = "super-speed"; 412 416 }; 413 417
+7
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
··· 26 26 serial1 = &uart1; 27 27 spi0 = &spi0; 28 28 spi1 = &spi1; 29 + usb0 = &usb1; 29 30 }; 30 31 31 32 chosen { ··· 480 479 status = "okay"; 481 480 pinctrl-names = "default"; 482 481 pinctrl-0 = <&pinctrl_usb1_default>; 482 + }; 483 + 484 + &dwc3_1 { 485 + status = "okay"; 483 486 dr_mode = "host"; 487 + snps,usb3_lpm_capable; 488 + maximum-speed = "super-speed"; 484 489 }; 485 490 486 491 &uart0 {
+14
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm017-dc3.dts
··· 24 24 rtc0 = &rtc; 25 25 serial0 = &uart0; 26 26 serial1 = &uart1; 27 + usb0 = &usb0; 28 + usb1 = &usb1; 27 29 }; 28 30 29 31 chosen { ··· 149 147 150 148 &usb0 { 151 149 status = "okay"; 150 + }; 151 + 152 + &dwc3_0 { 153 + status = "okay"; 152 154 dr_mode = "host"; 155 + snps,usb3_lpm_capable; 156 + maximum-speed = "super-speed"; 153 157 }; 154 158 155 159 /* ULPI SMSC USB3320 */ 156 160 &usb1 { 157 161 status = "okay"; 162 + }; 163 + 164 + &dwc3_1 { 165 + status = "okay"; 158 166 dr_mode = "host"; 167 + snps,usb3_lpm_capable; 168 + maximum-speed = "super-speed"; 159 169 };
+12 -2
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
··· 30 30 serial2 = &dcc; 31 31 spi0 = &spi0; 32 32 spi1 = &spi1; 33 + usb0 = &usb0; 34 + usb1 = &usb1; 33 35 mmc0 = &sdhci0; 34 36 mmc1 = &sdhci1; 35 37 }; ··· 539 537 status = "okay"; 540 538 pinctrl-names = "default"; 541 539 pinctrl-0 = <&pinctrl_usb0_default>; 542 - dr_mode = "peripheral"; 543 540 phy-names = "usb3-phy"; 544 541 phys = <&psgtr 2 PHY_TYPE_USB3 0 0>; 542 + }; 543 + 544 + &dwc3_0 { 545 + status = "okay"; 546 + dr_mode = "peripheral"; 545 547 maximum-speed = "super-speed"; 546 548 }; 547 549 ··· 554 548 status = "okay"; 555 549 pinctrl-names = "default"; 556 550 pinctrl-0 = <&pinctrl_usb1_default>; 557 - dr_mode = "host"; 558 551 phy-names = "usb3-phy"; 559 552 phys = <&psgtr 3 PHY_TYPE_USB3 1 0>; 553 + }; 554 + 555 + &dwc3_1 { 556 + status = "okay"; 557 + dr_mode = "host"; 560 558 maximum-speed = "super-speed"; 561 559 }; 562 560
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
··· 31 31 serial1 = &uart1; 32 32 serial2 = &dcc; 33 33 spi0 = &qspi; 34 + usb0 = &usb0; 34 35 }; 35 36 36 37 chosen { ··· 998 997 status = "okay"; 999 998 pinctrl-names = "default"; 1000 999 pinctrl-0 = <&pinctrl_usb0_default>; 1001 - dr_mode = "host"; 1002 1000 phy-names = "usb3-phy"; 1003 1001 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 1002 + }; 1003 + 1004 + &dwc3_0 { 1005 + status = "okay"; 1006 + dr_mode = "host"; 1007 + snps,usb3_lpm_capable; 1004 1008 maximum-speed = "super-speed"; 1005 1009 }; 1006 1010
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
··· 29 29 serial1 = &uart1; 30 30 serial2 = &dcc; 31 31 spi0 = &qspi; 32 + usb0 = &usb0; 32 33 }; 33 34 34 35 chosen { ··· 482 481 status = "okay"; 483 482 pinctrl-names = "default"; 484 483 pinctrl-0 = <&pinctrl_usb0_default>; 485 - dr_mode = "host"; 486 484 phy-names = "usb3-phy"; 487 485 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 486 + }; 487 + 488 + &dwc3_0 { 489 + status = "okay"; 490 + dr_mode = "host"; 491 + snps,usb3_lpm_capable; 488 492 maximum-speed = "super-speed"; 489 493 }; 490 494
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revC.dts
··· 29 29 serial1 = &uart1; 30 30 serial2 = &dcc; 31 31 spi0 = &qspi; 32 + usb0 = &usb0; 32 33 }; 33 34 34 35 chosen { ··· 494 493 status = "okay"; 495 494 pinctrl-names = "default"; 496 495 pinctrl-0 = <&pinctrl_usb0_default>; 497 - dr_mode = "host"; 498 496 phy-names = "usb3-phy"; 499 497 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 498 + }; 499 + 500 + &dwc3_0 { 501 + status = "okay"; 502 + dr_mode = "host"; 503 + snps,usb3_lpm_capable; 500 504 maximum-speed = "super-speed"; 501 505 }; 502 506
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
··· 31 31 serial1 = &uart1; 32 32 serial2 = &dcc; 33 33 spi0 = &qspi; 34 + usb0 = &usb0; 34 35 }; 35 36 36 37 chosen { ··· 991 990 status = "okay"; 992 991 pinctrl-names = "default"; 993 992 pinctrl-0 = <&pinctrl_usb0_default>; 994 - dr_mode = "host"; 995 993 phy-names = "usb3-phy"; 996 994 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 995 + }; 996 + 997 + &dwc3_0 { 998 + status = "okay"; 999 + dr_mode = "host"; 1000 + snps,usb3_lpm_capable; 997 1001 maximum-speed = "super-speed"; 998 1002 }; 999 1003
+7 -1
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
··· 30 30 serial0 = &uart0; 31 31 serial1 = &dcc; 32 32 spi0 = &qspi; 33 + usb0 = &usb0; 33 34 }; 34 35 35 36 chosen { ··· 828 827 status = "okay"; 829 828 pinctrl-names = "default"; 830 829 pinctrl-0 = <&pinctrl_usb0_default>; 831 - dr_mode = "host"; 832 830 phy-names = "usb3-phy"; 833 831 phys = <&psgtr 2 PHY_TYPE_USB3 0 2>; 832 + }; 833 + 834 + &dwc3_0 { 835 + status = "okay"; 836 + dr_mode = "host"; 837 + snps,usb3_lpm_capable; 834 838 maximum-speed = "super-speed"; 835 839 }; 836 840
+47 -13
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 2 2 /* 3 3 * dts file for Xilinx ZynqMP 4 4 * 5 - * (C) Copyright 2014 - 2019, Xilinx, Inc. 5 + * (C) Copyright 2014 - 2021, Xilinx, Inc. 6 6 * 7 7 * Michal Simek <michal.simek@xilinx.com> 8 8 * ··· 805 805 power-domains = <&zynqmp_firmware PD_UART_1>; 806 806 }; 807 807 808 - usb0: usb@fe200000 { 809 - compatible = "snps,dwc3"; 808 + usb0: usb@ff9d0000 { 809 + #address-cells = <2>; 810 + #size-cells = <2>; 810 811 status = "disabled"; 811 - interrupt-parent = <&gic>; 812 - interrupts = <0 65 4>; 813 - reg = <0x0 0xfe200000 0x0 0x40000>; 814 - clock-names = "clk_xin", "clk_ahb"; 812 + compatible = "xlnx,zynqmp-dwc3"; 813 + reg = <0x0 0xff9d0000 0x0 0x100>; 814 + clock-names = "bus_clk", "ref_clk"; 815 815 power-domains = <&zynqmp_firmware PD_USB_0>; 816 + resets = <&zynqmp_reset ZYNQMP_RESET_USB0_CORERESET>, 817 + <&zynqmp_reset ZYNQMP_RESET_USB0_HIBERRESET>, 818 + <&zynqmp_reset ZYNQMP_RESET_USB0_APB>; 819 + reset-names = "usb_crst", "usb_hibrst", "usb_apbrst"; 820 + ranges; 821 + 822 + dwc3_0: usb@fe200000 { 823 + compatible = "snps,dwc3"; 824 + reg = <0x0 0xfe200000 0x0 0x40000>; 825 + interrupt-parent = <&gic>; 826 + interrupt-names = "dwc_usb3", "otg"; 827 + interrupts = <0 65 4>, <0 69 4>; 828 + #stream-id-cells = <1>; 829 + iommus = <&smmu 0x860>; 830 + snps,quirk-frame-length-adjustment = <0x20>; 831 + /* dma-coherent; */ 832 + }; 816 833 }; 817 834 818 - usb1: usb@fe300000 { 819 - compatible = "snps,dwc3"; 835 + usb1: usb@ff9e0000 { 836 + #address-cells = <2>; 837 + #size-cells = <2>; 820 838 status = "disabled"; 821 - interrupt-parent = <&gic>; 822 - interrupts = <0 70 4>; 823 - reg = <0x0 0xfe300000 0x0 0x40000>; 824 - clock-names = "clk_xin", "clk_ahb"; 839 + compatible = "xlnx,zynqmp-dwc3"; 840 + reg = <0x0 0xff9e0000 0x0 0x100>; 841 + clock-names = "bus_clk", "ref_clk"; 825 842 power-domains = <&zynqmp_firmware PD_USB_1>; 843 + resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>, 844 + <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>, 845 + <&zynqmp_reset ZYNQMP_RESET_USB1_APB>; 846 + reset-names = "usb_crst", "usb_hibrst", "usb_apbrst"; 847 + ranges; 848 + 849 + dwc3_1: usb@fe300000 { 850 + compatible = "snps,dwc3"; 851 + reg = <0x0 0xfe300000 0x0 0x40000>; 852 + interrupt-parent = <&gic>; 853 + interrupt-names = "dwc_usb3", "otg"; 854 + interrupts = <0 70 4>, <0 74 4>; 855 + #stream-id-cells = <1>; 856 + iommus = <&smmu 0x861>; 857 + snps,quirk-frame-length-adjustment = <0x20>; 858 + /* dma-coherent; */ 859 + }; 826 860 }; 827 861 828 862 watchdog0: watchdog@fd4d0000 {