ROCKCHIP USB2.0 PHY WITH INNO IP BLOCK
|
|
Required properties (phy (parent) node):
|
- compatible : should be one of the listed compatibles:
|
* "rockchip,px30-usb2phy"
|
* "rockchip,rk3128-usb2phy"
|
* "rockchip,rk3228-usb2phy"
|
* "rockchip,rk3308-usb2phy"
|
* "rockchip,rk3328-usb2phy"
|
* "rockchip,rk3366-usb2phy"
|
* "rockchip,rk3368-usb2phy"
|
* "rockchip,rk3399-usb2phy"
|
* "rockchip,rk3528-usb2phy"
|
* "rockchip,rk3568-usb2phy"
|
* "rockchip,rv1108-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,usbgrf : phandle to the syscon managing the "usb general
|
register files". When set driver will request its
|
phandle as one companion-grf for some special SoCs
|
(e.g RV1108).
|
- rockchip,u2phy-tuning: when set, tuning u2phy to improve usb2 SI.
|
- vbus-supply: regulator phandle for vbus power source.
|
- wakeup-source: enable USB irq wakeup when suspend.
|
only work when suspend wakeup-config is not work.
|
|
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 should be one of the following cases:
|
Regular case:
|
* "otg-id" : for the otg id interrupt.
|
* "otg-bvalid" : for the otg vbus interrupt.
|
* "linestate" : for the host/otg linestate interrupt.
|
Some SoCs use one interrupt with the above muxed together, so for these
|
* "otg-mux" : otg-port interrupt, which mux otg-id/otg-bvalid/linestate
|
to one.
|
|
Optional properties:
|
- phy-supply : phandle to a regulator that provides power to VBUS.
|
See ./phy-bindings.txt for details.
|
- rockchip,bypass-uart: when set, indicates that support usb to
|
bypass uart feature.
|
note: this property can only be added in debug stage.
|
- 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.
|
- rockchip,low-power-mode: when set, the port will enter low power
|
state when suspend.
|
- rockchip,dis-u2-susphy: when set, disable otg suspend phy.
|
|
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 = <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";
|
};
|
|
u2phy_host: host-port {
|
#phy-cells = <0>;
|
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
interrupt-names = "linestate";
|
};
|
};
|
};
|
|
Required properties (usb2phy grf node):
|
- compatible : should be one of the listed compatibles:
|
"rockchip,px30-usb2phy-grf", "syscon", "simple-mfd";
|
"rockchip,rk1808-usb2phy-grf", "syscon", "simple-mfd";
|
"rockchip,rk3308-usb2phy-grf", "syscon", "simple-mfd";
|
"rockchip,rk3328-usb2phy-grf", "syscon", "simple-mfd";
|
"rockchip,rk3528-grf", "syscon", "simple-mfd";
|
"rockchip,rk3568-usb2phy-grf", "syscon";
|
- 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";
|
};
|
};
|
};
|