ROCKCHIP USB2.0 PHY WITH INNO IP BLOCK Required properties (phy (parent) node): - compatible : should be one of the listed compatibles: * "rockchip,rk3328-usb2phy" * "rockchip,rk3366-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: - 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, 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 : 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: grf: syscon@ff770000 { compatible = "rockchip,rk3366-grf", "syscon", "simple-mfd"; #address-cells = <1>; #size-cells = <1>; ... 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 = , , ; interrupt-names = "otg-id", "otg-bvalid", "linestate"; status = "okay"; }; u2phy_host: host-port { #phy-cells = <0>; interrupts = ; interrupt-names = "linestate"; status = "okay"; }; }; }; 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 = ; interrupt-names = "linestate"; status = "disabled"; }; }; };