xref: /linux/Documentation/devicetree/bindings/phy/phy-bindings.txt (revision 4949009eb8d40a441dcddcd96e101e77d31cf1b2)
1This document explains only the device tree data binding. For general
2information about PHY subsystem refer to Documentation/phy.txt
3
4PHY device node
5===============
6
7Required Properties:
8#phy-cells:	Number of cells in a PHY specifier;  The meaning of all those
9		cells is defined by the binding for the phy node. The PHY
10		provider can use the values in cells to find the appropriate
11		PHY.
12
13Optional Properties:
14phy-supply:	Phandle to a regulator that provides power to the PHY. This
15		regulator will be managed during the PHY power on/off sequence.
16
17For example:
18
19phys: phy {
20    compatible = "xxx";
21    reg = <...>;
22    .
23    .
24    #phy-cells = <1>;
25    .
26    .
27};
28
29That node describes an IP block (PHY provider) that implements 2 different PHYs.
30In order to differentiate between these 2 PHYs, an additional specifier should be
31given while trying to get a reference to it.
32
33PHY user node
34=============
35
36Required Properties:
37phys : the phandle for the PHY device (used by the PHY subsystem)
38phy-names : the names of the PHY corresponding to the PHYs present in the
39	    *phys* phandle
40
41Example 1:
42usb1: usb_otg_ss@xxx {
43    compatible = "xxx";
44    reg = <xxx>;
45    .
46    .
47    phys = <&usb2_phy>, <&usb3_phy>;
48    phy-names = "usb2phy", "usb3phy";
49    .
50    .
51};
52
53This node represents a controller that uses two PHYs, one for usb2 and one for
54usb3.
55
56Example 2:
57usb2: usb_otg_ss@xxx {
58    compatible = "xxx";
59    reg = <xxx>;
60    .
61    .
62    phys = <&phys 1>;
63    phy-names = "usbphy";
64    .
65    .
66};
67
68This node represents a controller that uses one of the PHYs of the PHY provider
69device defined previously. Note that the phy handle has an additional specifier
70"1" to differentiate between the two PHYs.
71