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 = <®11>; 62*c66ec88fSEmmanuel Vadot vdda1v8-supply = <®18> 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 = <®11>; 70*c66ec88fSEmmanuel Vadot vdda1v8-supply = <®18> 71*c66ec88fSEmmanuel Vadot #phy-cells = <1>; 72*c66ec88fSEmmanuel Vadot }; 73*c66ec88fSEmmanuel Vadot }; 74