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