18c2ecf20Sopenharmony_ciThis document explains only the device tree data binding. For general 28c2ecf20Sopenharmony_ciinformation about PHY subsystem refer to Documentation/driver-api/phy/phy.rst 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciPHY device node 58c2ecf20Sopenharmony_ci=============== 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ciRequired Properties: 88c2ecf20Sopenharmony_ci#phy-cells: Number of cells in a PHY specifier; The meaning of all those 98c2ecf20Sopenharmony_ci cells is defined by the binding for the phy node. The PHY 108c2ecf20Sopenharmony_ci provider can use the values in cells to find the appropriate 118c2ecf20Sopenharmony_ci PHY. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciOptional Properties: 148c2ecf20Sopenharmony_ciphy-supply: Phandle to a regulator that provides power to the PHY. This 158c2ecf20Sopenharmony_ci regulator will be managed during the PHY power on/off sequence. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciFor example: 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciphys: phy { 208c2ecf20Sopenharmony_ci compatible = "xxx"; 218c2ecf20Sopenharmony_ci reg = <...>; 228c2ecf20Sopenharmony_ci . 238c2ecf20Sopenharmony_ci . 248c2ecf20Sopenharmony_ci #phy-cells = <1>; 258c2ecf20Sopenharmony_ci . 268c2ecf20Sopenharmony_ci . 278c2ecf20Sopenharmony_ci}; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciThat node describes an IP block (PHY provider) that implements 2 different PHYs. 308c2ecf20Sopenharmony_ciIn order to differentiate between these 2 PHYs, an additional specifier should be 318c2ecf20Sopenharmony_cigiven while trying to get a reference to it. 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciPHY user node 348c2ecf20Sopenharmony_ci============= 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciRequired Properties: 378c2ecf20Sopenharmony_ciphys : the phandle for the PHY device (used by the PHY subsystem; not to be 388c2ecf20Sopenharmony_ci confused with the Ethernet specific 'phy' and 'phy-handle' properties, 398c2ecf20Sopenharmony_ci see Documentation/devicetree/bindings/net/ethernet.txt for these) 408c2ecf20Sopenharmony_ciphy-names : the names of the PHY corresponding to the PHYs present in the 418c2ecf20Sopenharmony_ci *phys* phandle 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciExample 1: 448c2ecf20Sopenharmony_ciusb1: usb_otg_ss@xxx { 458c2ecf20Sopenharmony_ci compatible = "xxx"; 468c2ecf20Sopenharmony_ci reg = <xxx>; 478c2ecf20Sopenharmony_ci . 488c2ecf20Sopenharmony_ci . 498c2ecf20Sopenharmony_ci phys = <&usb2_phy>, <&usb3_phy>; 508c2ecf20Sopenharmony_ci phy-names = "usb2phy", "usb3phy"; 518c2ecf20Sopenharmony_ci . 528c2ecf20Sopenharmony_ci . 538c2ecf20Sopenharmony_ci}; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciThis node represents a controller that uses two PHYs, one for usb2 and one for 568c2ecf20Sopenharmony_ciusb3. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciExample 2: 598c2ecf20Sopenharmony_ciusb2: usb_otg_ss@xxx { 608c2ecf20Sopenharmony_ci compatible = "xxx"; 618c2ecf20Sopenharmony_ci reg = <xxx>; 628c2ecf20Sopenharmony_ci . 638c2ecf20Sopenharmony_ci . 648c2ecf20Sopenharmony_ci phys = <&phys 1>; 658c2ecf20Sopenharmony_ci phy-names = "usbphy"; 668c2ecf20Sopenharmony_ci . 678c2ecf20Sopenharmony_ci . 688c2ecf20Sopenharmony_ci}; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ciThis node represents a controller that uses one of the PHYs of the PHY provider 718c2ecf20Sopenharmony_cidevice defined previously. Note that the phy handle has an additional specifier 728c2ecf20Sopenharmony_ci"1" to differentiate between the two PHYs. 73