kernel: update 3.14 to 3.14.18
[openwrt/staging/stintel.git] / target / linux / ipq806x / patches / 0158-usb-dwc3-qcom-Add-device-tree-binding.patch
1 From c7045330c5976eb31bd79bc57c5db684588d595e Mon Sep 17 00:00:00 2001
2 From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
3 Date: Mon, 7 Oct 2013 10:44:55 +0300
4 Subject: [PATCH 158/182] usb: dwc3: qcom: Add device tree binding
5
6 QCOM USB3.0 core wrapper consist of USB3.0 IP from Synopsys
7 (SNPS) and HS, SS PHY's control and configuration registers.
8
9 It could operate in device mode (SS, HS, FS) and host
10 mode (SS, HS, FS, LS).
11
12 Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
13 Acked-by: Stephen Warren <swarren@nvidia.com>
14 ---
15 .../devicetree/bindings/usb/qcom,dwc3.txt | 104 ++++++++++++++++++++
16 1 file changed, 104 insertions(+)
17 create mode 100644 Documentation/devicetree/bindings/usb/qcom,dwc3.txt
18
19 --- /dev/null
20 +++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.txt
21 @@ -0,0 +1,104 @@
22 +Qualcomm SuperSpeed DWC3 USB SoC controller
23 +
24 +
25 +QCOM DWC3 Highspeed USB PHY
26 +========================
27 +Required properities:
28 +- compatible: should contain "qcom,dwc3-hsphy";
29 +- reg: offset and length of the register set in the memory map
30 +- clocks: A list of phandle + clock-specifier pairs for the
31 + clocks listed in clock-names
32 +- clock-names: Should contain the following:
33 + "utmi" UTMI clock
34 +- v1p8-supply: phandle to the regulator for the 1.8v supply to HSPHY.
35 +- v3p3-supply: phandle to the regulator for the 3.3v supply to HSPHY.
36 +- vbus-supply: phandle to the regulator for the vbus supply for host
37 + mode.
38 +- vddcx-supply: phandle to the regulator for the vdd supply for HSPHY
39 + digital circuit operation.
40 +
41 +Optional clocks:
42 + "xo" External reference clock
43 +
44 +
45 +QCOM DWC3 Superspeed USB PHY
46 +=========================
47 +Required properities:
48 +- compatible: should contain "qcom,dwc3-ssphy";
49 +- reg: offset and length of the register set in the memory map
50 +- clocks: A list of phandle + clock-specifier pairs for the
51 + clocks listed in clock-names
52 +- clock-names: Should contain the following:
53 + "ref" Reference clock used in host mode.
54 +- v1p8-supply: phandle to the regulator for the 1.8v supply to HSPHY.
55 +- vddcx-supply: phandle to the regulator for the vdd supply for HSPHY
56 + digital circuit operation.
57 +
58 +Optional clocks:
59 + "xo" External reference clock
60 +
61 +QCOM DWC3 controller wrapper
62 +===========================
63 +Required properties:
64 +- compatible: should contain "qcom,dwc3"
65 +- clocks: A list of phandle + clock-specifier pairs for the
66 + clocks listed in clock-names
67 +- clock-names: Should contain the following:
68 + "core" Master/Core clock, have to be >= 125 MHz for SS
69 + operation and >= 60MHz for HS operation
70 +
71 +Optional clocks:
72 + "iface" System bus AXI clock. Not present on all platforms
73 + "sleep" Sleep clock, used when USB3 core goes into low
74 + power mode (U3).
75 +
76 +Optional regulator:
77 +- gdsc-supply: phandle to the regulator from globally distributed
78 + switch controller
79 +
80 +Required child node:
81 +A child node must exist to represent the core DWC3 IP block. The name of
82 +the node is not important. The content of the node is defined in dwc3.txt.
83 +
84 +Example device nodes:
85 +
86 + hs_phy_0: phy@110f8800 {
87 + compatible = "qcom,dwc3-hsphy";
88 + reg = <0x110f8800 0x30>;
89 + clocks = <&gcc USB30_0_UTMI_CLK>;
90 + clock-names = "utmi";
91 +
92 + status = "disabled";
93 + };
94 +
95 + ss_phy_0: phy@110f8830 {
96 + compatible = "qcom,dwc3-ssphy";
97 + reg = <0x110f8830 0x30>;
98 +
99 + clocks = <&gcc USB30_0_MASTER_CLK>;
100 + clock-names = "ref";
101 +
102 + status = "disabled";
103 + };
104 +
105 + usb3_0: usb30@0 {
106 + compatible = "qcom,dwc3";
107 + #address-cells = <1>;
108 + #size-cells = <1>;
109 + clocks = <&gcc USB30_0_MASTER_CLK>;
110 + clock-names = "core";
111 +
112 + ranges;
113 +
114 + status = "disabled";
115 +
116 + dwc3@11000000 {
117 + compatible = "snps,dwc3";
118 + reg = <0x11000000 0xcd00>;
119 + interrupts = <0 110 0x4>;
120 + usb-phy = <&hs_phy_0>, <&ss_phy_0>;
121 + phy-names = "usb2-phy", "usb3-phy";
122 + tx-fifo-resize;
123 + dr_mode = "host";
124 + };
125 + };