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