xref: /linux/Documentation/devicetree/bindings/phy/phy-bindings.txt (revision ff764963479a1b18721ab96e531404c50fefe8b1)
1*ff764963SKishon Vijay Abraham IThis document explains only the device tree data binding. For general
2*ff764963SKishon Vijay Abraham Iinformation about PHY subsystem refer to Documentation/phy.txt
3*ff764963SKishon Vijay Abraham I
4*ff764963SKishon Vijay Abraham IPHY device node
5*ff764963SKishon Vijay Abraham I===============
6*ff764963SKishon Vijay Abraham I
7*ff764963SKishon Vijay Abraham IRequired Properties:
8*ff764963SKishon Vijay Abraham I#phy-cells:	Number of cells in a PHY specifier;  The meaning of all those
9*ff764963SKishon Vijay Abraham I		cells is defined by the binding for the phy node. The PHY
10*ff764963SKishon Vijay Abraham I		provider can use the values in cells to find the appropriate
11*ff764963SKishon Vijay Abraham I		PHY.
12*ff764963SKishon Vijay Abraham I
13*ff764963SKishon Vijay Abraham IFor example:
14*ff764963SKishon Vijay Abraham I
15*ff764963SKishon Vijay Abraham Iphys: phy {
16*ff764963SKishon Vijay Abraham I    compatible = "xxx";
17*ff764963SKishon Vijay Abraham I    reg = <...>;
18*ff764963SKishon Vijay Abraham I    .
19*ff764963SKishon Vijay Abraham I    .
20*ff764963SKishon Vijay Abraham I    #phy-cells = <1>;
21*ff764963SKishon Vijay Abraham I    .
22*ff764963SKishon Vijay Abraham I    .
23*ff764963SKishon Vijay Abraham I};
24*ff764963SKishon Vijay Abraham I
25*ff764963SKishon Vijay Abraham IThat node describes an IP block (PHY provider) that implements 2 different PHYs.
26*ff764963SKishon Vijay Abraham IIn order to differentiate between these 2 PHYs, an additonal specifier should be
27*ff764963SKishon Vijay Abraham Igiven while trying to get a reference to it.
28*ff764963SKishon Vijay Abraham I
29*ff764963SKishon Vijay Abraham IPHY user node
30*ff764963SKishon Vijay Abraham I=============
31*ff764963SKishon Vijay Abraham I
32*ff764963SKishon Vijay Abraham IRequired Properties:
33*ff764963SKishon Vijay Abraham Iphys : the phandle for the PHY device (used by the PHY subsystem)
34*ff764963SKishon Vijay Abraham Iphy-names : the names of the PHY corresponding to the PHYs present in the
35*ff764963SKishon Vijay Abraham I	    *phys* phandle
36*ff764963SKishon Vijay Abraham I
37*ff764963SKishon Vijay Abraham IExample 1:
38*ff764963SKishon Vijay Abraham Iusb1: usb_otg_ss@xxx {
39*ff764963SKishon Vijay Abraham I    compatible = "xxx";
40*ff764963SKishon Vijay Abraham I    reg = <xxx>;
41*ff764963SKishon Vijay Abraham I    .
42*ff764963SKishon Vijay Abraham I    .
43*ff764963SKishon Vijay Abraham I    phys = <&usb2_phy>, <&usb3_phy>;
44*ff764963SKishon Vijay Abraham I    phy-names = "usb2phy", "usb3phy";
45*ff764963SKishon Vijay Abraham I    .
46*ff764963SKishon Vijay Abraham I    .
47*ff764963SKishon Vijay Abraham I};
48*ff764963SKishon Vijay Abraham I
49*ff764963SKishon Vijay Abraham IThis node represents a controller that uses two PHYs, one for usb2 and one for
50*ff764963SKishon Vijay Abraham Iusb3.
51*ff764963SKishon Vijay Abraham I
52*ff764963SKishon Vijay Abraham IExample 2:
53*ff764963SKishon Vijay Abraham Iusb2: usb_otg_ss@xxx {
54*ff764963SKishon Vijay Abraham I    compatible = "xxx";
55*ff764963SKishon Vijay Abraham I    reg = <xxx>;
56*ff764963SKishon Vijay Abraham I    .
57*ff764963SKishon Vijay Abraham I    .
58*ff764963SKishon Vijay Abraham I    phys = <&phys 1>;
59*ff764963SKishon Vijay Abraham I    phy-names = "usbphy";
60*ff764963SKishon Vijay Abraham I    .
61*ff764963SKishon Vijay Abraham I    .
62*ff764963SKishon Vijay Abraham I};
63*ff764963SKishon Vijay Abraham I
64*ff764963SKishon Vijay Abraham IThis node represents a controller that uses one of the PHYs of the PHY provider
65*ff764963SKishon Vijay Abraham Idevice defined previously. Note that the phy handle has an additional specifier
66*ff764963SKishon Vijay Abraham I"1" to differentiate between the two PHYs.
67