xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/phy/phy-stm32-usbphyc.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSTMicroelectronics STM32 USB HS PHY controller
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThe STM32 USBPHYC block contains a dual port High Speed UTMI+ PHY and a UTMI
4*4882a593Smuzhiyunswitch. It controls PHY configuration and status, and the UTMI+ switch that
5*4882a593Smuzhiyunselects either OTG or HOST controller for the second PHY port. It also sets
6*4882a593SmuzhiyunPLL configuration.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunUSBPHYC
9*4882a593Smuzhiyun      |_ PLL
10*4882a593Smuzhiyun      |
11*4882a593Smuzhiyun      |_ PHY port#1 _________________ HOST controller
12*4882a593Smuzhiyun      |                    _                 |
13*4882a593Smuzhiyun      |                  / 1|________________|
14*4882a593Smuzhiyun      |_ PHY port#2 ----|   |________________
15*4882a593Smuzhiyun      |                  \_0|                |
16*4882a593Smuzhiyun      |_ UTMI switch_______|          OTG controller
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunPhy provider node
20*4882a593Smuzhiyun=================
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunRequired properties:
23*4882a593Smuzhiyun- compatible: must be "st,stm32mp1-usbphyc"
24*4882a593Smuzhiyun- reg: address and length of the usb phy control register set
25*4882a593Smuzhiyun- clocks: phandle + clock specifier for the PLL phy clock
26*4882a593Smuzhiyun- #address-cells: number of address cells for phys sub-nodes, must be <1>
27*4882a593Smuzhiyun- #size-cells: number of size cells for phys sub-nodes, must be <0>
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunOptional properties:
30*4882a593Smuzhiyun- assigned-clocks: phandle + clock specifier for the PLL phy clock
31*4882a593Smuzhiyun- assigned-clock-parents: the PLL phy clock parent
32*4882a593Smuzhiyun- resets: phandle + reset specifier
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunRequired nodes: one sub-node per port the controller provides.
35*4882a593Smuzhiyun
36*4882a593SmuzhiyunPhy sub-nodes
37*4882a593Smuzhiyun==============
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunRequired properties:
40*4882a593Smuzhiyun- reg: phy port index
41*4882a593Smuzhiyun- phy-supply: phandle to the regulator providing 3V3 power to the PHY,
42*4882a593Smuzhiyun	      see phy-bindings.txt in the same directory.
43*4882a593Smuzhiyun- vdda1v1-supply: phandle to the regulator providing 1V1 power to the PHY
44*4882a593Smuzhiyun- vdda1v8-supply: phandle to the regulator providing 1V8 power to the PHY
45*4882a593Smuzhiyun- #phy-cells: see phy-bindings.txt in the same directory, must be <0> for PHY
46*4882a593Smuzhiyun  port#1 and must be <1> for PHY port#2, to select USB controller
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunExample:
50*4882a593Smuzhiyun		usbphyc: usb-phy@5a006000 {
51*4882a593Smuzhiyun			compatible = "st,stm32mp1-usbphyc";
52*4882a593Smuzhiyun			reg = <0x5a006000 0x1000>;
53*4882a593Smuzhiyun			clocks = <&rcc_clk USBPHY_K>;
54*4882a593Smuzhiyun			resets = <&rcc_rst USBPHY_R>;
55*4882a593Smuzhiyun			#address-cells = <1>;
56*4882a593Smuzhiyun			#size-cells = <0>;
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun			usbphyc_port0: usb-phy@0 {
59*4882a593Smuzhiyun				reg = <0>;
60*4882a593Smuzhiyun				phy-supply = <&vdd_usb>;
61*4882a593Smuzhiyun				vdda1v1-supply = <&reg11>;
62*4882a593Smuzhiyun				vdda1v8-supply = <&reg18>
63*4882a593Smuzhiyun				#phy-cells = <0>;
64*4882a593Smuzhiyun			};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun			usbphyc_port1: usb-phy@1 {
67*4882a593Smuzhiyun				reg = <1>;
68*4882a593Smuzhiyun				phy-supply = <&vdd_usb>;
69*4882a593Smuzhiyun				vdda1v1-supply = <&reg11>;
70*4882a593Smuzhiyun				vdda1v8-supply = <&reg18>
71*4882a593Smuzhiyun				#phy-cells = <1>;
72*4882a593Smuzhiyun			};
73*4882a593Smuzhiyun		};
74