Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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.