mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 05:11:48 +00:00
ff76496347
The PHY framework provides a set of APIs for the PHY drivers to create/destroy a PHY and APIs for the PHY users to obtain a reference to the PHY with or without using phandle. For dt-boot, the PHY drivers should also register *PHY provider* with the framework. PHY drivers should create the PHY by passing id and ops like init, exit, power_on and power_off. This framework is also pm runtime enabled. The documentation for the generic PHY framework is added in Documentation/phy.txt and the documentation for dt binding can be found at Documentation/devicetree/bindings/phy/phy-bindings.txt Cc: Tomasz Figa <t.figa@samsung.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Acked-by: Felipe Balbi <balbi@ti.com> Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
67 lines
1.5 KiB
Plaintext
67 lines
1.5 KiB
Plaintext
This document explains only the device tree data binding. For general
|
|
information about PHY subsystem refer to Documentation/phy.txt
|
|
|
|
PHY device node
|
|
===============
|
|
|
|
Required Properties:
|
|
#phy-cells: Number of cells in a PHY specifier; The meaning of all those
|
|
cells is defined by the binding for the phy node. The PHY
|
|
provider can use the values in cells to find the appropriate
|
|
PHY.
|
|
|
|
For example:
|
|
|
|
phys: phy {
|
|
compatible = "xxx";
|
|
reg = <...>;
|
|
.
|
|
.
|
|
#phy-cells = <1>;
|
|
.
|
|
.
|
|
};
|
|
|
|
That node describes an IP block (PHY provider) that implements 2 different PHYs.
|
|
In order to differentiate between these 2 PHYs, an additonal specifier should be
|
|
given while trying to get a reference to it.
|
|
|
|
PHY user node
|
|
=============
|
|
|
|
Required Properties:
|
|
phys : the phandle for the PHY device (used by the PHY subsystem)
|
|
phy-names : the names of the PHY corresponding to the PHYs present in the
|
|
*phys* phandle
|
|
|
|
Example 1:
|
|
usb1: usb_otg_ss@xxx {
|
|
compatible = "xxx";
|
|
reg = <xxx>;
|
|
.
|
|
.
|
|
phys = <&usb2_phy>, <&usb3_phy>;
|
|
phy-names = "usb2phy", "usb3phy";
|
|
.
|
|
.
|
|
};
|
|
|
|
This node represents a controller that uses two PHYs, one for usb2 and one for
|
|
usb3.
|
|
|
|
Example 2:
|
|
usb2: usb_otg_ss@xxx {
|
|
compatible = "xxx";
|
|
reg = <xxx>;
|
|
.
|
|
.
|
|
phys = <&phys 1>;
|
|
phy-names = "usbphy";
|
|
.
|
|
.
|
|
};
|
|
|
|
This node represents a controller that uses one of the PHYs of the PHY provider
|
|
device defined previously. Note that the phy handle has an additional specifier
|
|
"1" to differentiate between the two PHYs.
|