Qualcomm Atheros SuperSpeed DWC3 USB SoC controller


QCA BALDUR Highspeed USB PHY
========================
Required properities:
- compatible:	should contain "qca,baldur-usb3-hsphy" or "qca,baldur-usb2-hsphy"
- reg:			offset and length of the register set in the memory map
- clocks:		A list of phandle + clock-specifier pairs for the
				clocks listed in clock-names
- clock-names:	Should contain the following:


QCA UNI Superspeed USB PHY
=========================
Required properities:
- compatible:	should contain "qca,uni-ssphy";
- reg:			offset and length of the register set in the memory map
- clocks:		A list of phandle + clock-specifier pairs for the
				clocks listed in clock-names
- clock-names:	Should contain the following:

QCA DUMMY Superspeed USB PHY
=========================
Required properities:
- compatible:   should contain "qca,dummy-ssphy";


QCA DWC3 controller wrapper
===========================
Required properties:
- compatible:	should contain "qca,dwc3"
- clocks:		A list of phandle + clock-specifier pairs for the
				clocks listed in clock-names
- clock-names:	Should contain the following:
  "core"		Master/Core clock, have to be >= 125 MHz for SS
				operation and >= 60MHz for HS operation

Optional clocks:
  "iface"		System bus AXI clock.  Not present on all platforms
  "sleep"		Sleep clock, used when USB3 core goes into low
				power mode (U3).

Required child node:
A child node must exist to represent the core DWC3 IP block. The name of
the node is not important. The content of the node is defined in dwc3.txt.

Example device nodes:
                usb3_ss_phy: ssphy@90000 {
                        compatible = "qca,uni-ssphy";
                        reg = <0x00090000 0x800>;
                        reg-names = "phy_base";
                        resets = <&gcc USB3_UNIPHY_PHY_ARES>;
                        reset-names = "por_rst";
                        qca,host = <1>;
                        qca,emulation = <1>;
                };

                dummy_ss_phy: ssphy@0 {
                        compatible = "qca,dummy-ssphy";
                };

                usb3_hs_phy: hsphy@a6000 {
                        compatible = "qca,baldur-usb3-hsphy";
                        reg = <0xa6000 0x1c0>;
                        reg-names = "phy_base";
                        resets = <&gcc USB3_HSPHY_POR_ARES>, <&gcc USB3_HSPHY_S_ARES>;
                        reset-names = "por_rst", "srif_rst";
                        qca,host = <1>;
                        qca,emulation = <1>;
                };

                usb2_hs_phy: hsphy@a8000 {
                        compatible = "qca,baldur-usb2-hsphy";
                        reg = <0xa8000 0x1c0>;
                        reg-names = "phy_base";
                        resets = <&gcc USB2_HSPHY_POR_ARES>, <&gcc USB2_HSPHY_S_ARES>;
                        reset-names = "por_rst", "srif_rst";
                        qca,host = <1>;
                        qca,emulation = <1>;
                };

                usb3: usb3@8a00000 {
                        compatible = "qca,dwc3";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                        reg = <0x8af8800 0x100>;
                        reg-names = "qscratch_base";
                        clocks = <&gcc 0>,
                                <&gcc 0>,
                                <&gcc 0>,
                                <&gcc 0>,
                                <&gcc 0>;
                        clock-names = "master",
                                "sleep",
                                "mock_utmi",
                                "srif_ahb",
                                "srif_25m";
                        qca,host = <1>;

                        dwc3@8a00000 {
                                compatible = "snps,dwc3";
                                reg = <0x8a00000 0xf8000>;
                                interrupts = <0 132 0>;
                                usb-phy = <&usb3_hs_phy>, <&usb3_ss_phy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                tx-fifo-resize;
                                dr_mode = "host";
                        };
                };

