blob: c4eb38902533f1cc2cc2343aa6a6832ab8cdd9d3 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001This document explains only the device tree data binding. For general
2information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst
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; not to be
38 confused with the Ethernet specific 'phy' and 'phy-handle' properties,
39 see Documentation/devicetree/bindings/net/ethernet.txt for these)
40phy-names : the names of the PHY corresponding to the PHYs present in the
41 *phys* phandle
42
43Example 1:
44usb1: usb_otg_ss@xxx {
45 compatible = "xxx";
46 reg = <xxx>;
47 .
48 .
49 phys = <&usb2_phy>, <&usb3_phy>;
50 phy-names = "usb2phy", "usb3phy";
51 .
52 .
53};
54
55This node represents a controller that uses two PHYs, one for usb2 and one for
56usb3.
57
58Example 2:
59usb2: usb_otg_ss@xxx {
60 compatible = "xxx";
61 reg = <xxx>;
62 .
63 .
64 phys = <&phys 1>;
65 phy-names = "usbphy";
66 .
67 .
68};
69
70This node represents a controller that uses one of the PHYs of the PHY provider
71device defined previously. Note that the phy handle has an additional specifier
72"1" to differentiate between the two PHYs.