phy: rockchip-inno-usb2: add support for rk3368 SoC
[firefly-linux-kernel-4.4.55.git] / Documentation / devicetree / bindings / phy / phy-rockchip-inno-usb2.txt
index 4e537b258f658161989f5c827ae151318343808e..6e3147d866de466247d04e5cc61172d0c00a9f77 100644 (file)
@@ -1,21 +1,48 @@
 ROCKCHIP USB2.0 PHY WITH INNO IP BLOCK
 
 Required properties (phy (parent) node):
- - compatible: should contain:
+ - compatible : should be one of the listed compatibles:
+       * "rockchip,rk3328-usb2phy"
        * "rockchip,rk3366-usb2phy"
- - #clock-cells: should be 0.
- - clock-names: specify the 480m output clk name.
+       * "rockchip,rk3368-usb2phy"
+       * "rockchip,rk3399-usb2phy"
+ - reg : the address offset of grf for usb-phy configuration.
+ - #clock-cells : should be 0.
+ - clock-output-names : specify the 480m output clock name.
 
 Optional properties:
- - vbus_host-gpio: pull gpio high/low to control the host vbus power.
+ - clocks : phandle + phy specifier pair, for the input clock of phy.
+ - clock-names : input clock name of phy, must be "phyclk".
+ - assigned-clocks : phandle of usb 480m clock.
+ - assigned-clock-parents : parent of usb 480m clock, select between
+                usb-phy output 480m and xin24m.
+                Refer to clk/clock-bindings.txt for generic clock
+                consumer properties.
+ - rockchip,u2phy-tuning; when set, tuning u2phy to improve usb2 SI.
+ - otg-vbus-gpios : assign the gpio to control vbus of otg port.
 
-Required nodes: a sub-node is required for each port the phy provides.
-               The sub-node name is used to identify host or otg port.
+Required nodes : a sub-node is required for each port the phy provides.
+                The sub-node name is used to identify host or otg port,
+                and shall be the following entries:
+       * "otg-port" : the name of otg port.
+       * "host-port" : the name of host port.
 
 Required properties (port (child) node):
- - #phy-cells: must be 0. See ./phy-bindings.txt for details.
- - interrupts: irq number for host/otg port.
- - interrupt-names: interrupt name, in line with irq number.
+ - #phy-cells : must be 0. See ./phy-bindings.txt for details.
+ - interrupts : specify an interrupt for each entry in interrupt-names.
+ - interrupt-names : a list which shall be the following entries:
+       * "otg-id" : for the otg id interrupt.
+       * "otg-bvalid" : for the otg vbus interrupt.
+       * "linestate" : for the host/otg linestate interrupt.
+
+Optional properties:
+ - phy-supply : phandle to a regulator that provides power to VBUS.
+               See ./phy-bindings.txt for details.
+ - rockchip,utmi-avalid : when set, the usb2 phy will use avalid
+               status bit to get vbus status. If not, it will use
+               bvalid status bit to get vbus status by default.
+ - rockchip,vbus-always-on: when set, indicates that the otg vbus
+               is always powered on.
 
 Example:
 
@@ -26,15 +53,18 @@ grf: syscon@ff770000 {
 
 ...
 
-       u2phy: usb2-phy {
+       u2phy: usb2-phy@700 {
                compatible = "rockchip,rk3366-usb2phy";
+               reg = <0x700 0x2c>;
                #clock-cells = <0>;
                clock-output-names = "sclk_otgphy0_480m";
 
                u2phy_otg: otg-port {
                        #phy-cells = <0>;
-                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "linestate";
+                       interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "otg-id", "otg-bvalid", "linestate";
                        status = "okay";
                };
 
@@ -46,3 +76,44 @@ grf: syscon@ff770000 {
                };
        };
 };
+
+Required properties (usb2phy grf node):
+ - compatible : should be one of the listed compatibles:
+               "rockchip,rk3328-usb2phy-grf", "syscon", "simple-mfd";
+ - reg : the address offset of grf for usb-phy configuration.
+ - #address-cells : should be 1.
+ - #size-cells : should be 1.
+
+Required nodes : a sub-node is required for the phy provides.
+                The sub-node name is used to identify each phy,
+                and shall be the following entries:
+
+Example:
+
+usb2phy_grf: syscon@ff450000 {
+       compatible = "rockchip,rk3328-usb2phy-grf", "syscon",
+                    "simple-mfd";
+       reg = <0x0 0xff450000 0x0 0x10000>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       u2phy: usb2-phy@100 {
+               compatible = "rockchip,rk3328-usb2phy";
+               reg = <0x100 0x10>;
+               clocks = <&xin24m>;
+               clock-names = "phyclk";
+               #clock-cells = <0>;
+               assigned-clocks = <&cru USB480M>;
+               assigned-clock-parents = <&u2phy>;
+               clock-output-names = "usb480m_phy";
+               status = "disabled";
+
+               u2phy_host: host-port {
+                       #phy-cells = <0>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "linestate";
+                       status = "disabled";
+               };
+       };
+};
+