OSDN Git Service

arm64: dtsi: imx8mp: add usb nodes
authorLi Jun <jun.li@nxp.com>
Tue, 29 Dec 2020 11:37:45 +0000 (19:37 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Jan 2021 15:38:08 +0000 (16:38 +0100)
imx8mp integrates 2 identical dwc3 based USB3 controllers and
Synopsys phys, each instance has additional wakeup logic to
support low power mode, so the glue layer need a node with dwc3
core sub node.

Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Li Jun <jun.li@nxp.com>
Link: https://lore.kernel.org/r/1609241866-9508-4-git-send-email-jun.li@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/boot/dts/freescale/imx8mp.dtsi

index ecccfbb..22db53f 100644 (file)
                        reg = <0x3d800000 0x400000>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                };
+
+               usb3_phy0: usb-phy@381f0040 {
+                       compatible = "fsl,imx8mp-usb-phy";
+                       reg = <0x381f0040 0x40>;
+                       clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
+                       clock-names = "phy";
+                       assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
+                       assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb3_0: usb@32f10100 {
+                       compatible = "fsl,imx8mp-dwc3";
+                       reg = <0x32f10100 0x8>;
+                       clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+                                <&clk IMX8MP_CLK_USB_ROOT>;
+                       clock-names = "hsio", "suspend";
+                       interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       dma-ranges = <0x40000000 0x40000000 0xc0000000>;
+                       ranges;
+                       status = "disabled";
+
+                       usb_dwc3_0: dwc3@38100000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x38100000 0x10000>;
+                               clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
+                                        <&clk IMX8MP_CLK_USB_CORE_REF>,
+                                        <&clk IMX8MP_CLK_USB_ROOT>;
+                               clock-names = "bus_early", "ref", "suspend";
+                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+                               assigned-clock-rates = <500000000>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&usb3_phy0>, <&usb3_phy0>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               snps,dis-u2-freeclk-exists-quirk;
+                       };
+
+               };
+
+               usb3_phy1: usb-phy@382f0040 {
+                       compatible = "fsl,imx8mp-usb-phy";
+                       reg = <0x382f0040 0x40>;
+                       clocks = <&clk IMX8MP_CLK_USB_PHY_ROOT>;
+                       clock-names = "phy";
+                       assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
+                       assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                       #phy-cells = <0>;
+               };
+
+               usb3_1: usb@32f10108 {
+                       compatible = "fsl,imx8mp-dwc3";
+                       reg = <0x32f10108 0x8>;
+                       clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+                                <&clk IMX8MP_CLK_USB_ROOT>;
+                       clock-names = "hsio", "suspend";
+                       interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       dma-ranges = <0x40000000 0x40000000 0xc0000000>;
+                       ranges;
+                       status = "disabled";
+
+                       usb_dwc3_1: dwc3@38200000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x38200000 0x10000>;
+                               clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
+                                        <&clk IMX8MP_CLK_USB_CORE_REF>,
+                                        <&clk IMX8MP_CLK_USB_ROOT>;
+                               clock-names = "bus_early", "ref", "suspend";
+                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+                               assigned-clock-rates = <500000000>;
+                               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&usb3_phy1>, <&usb3_phy1>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               snps,dis-u2-freeclk-exists-quirk;
+                       };
+               };
        };
 };