2025-05-10 21:49:39 +08:00

146 lines
4.8 KiB
Plaintext

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";
};
};
};