Documentation/devicetree/bindings/phy/phy-bindings.txt

Source file repositories/reference/linux-study-clean/Documentation/devicetree/bindings/phy/phy-bindings.txt

File Facts

System
Linux kernel
Corpus path
Documentation/devicetree/bindings/phy/phy-bindings.txt
Extension
.txt
Size
1884 bytes
Lines
73
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

This document explains only the device tree data binding. For general
information about PHY subsystem refer to Documentation/driver-api/phy/phy.rst

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.

Optional Properties:
phy-supply:	Phandle to a regulator that provides power to the PHY. This
		regulator will be managed during the PHY power on/off sequence.

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 additional 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; not to be
       confused with the Ethernet specific 'phy' and 'phy-handle' properties,
       see Documentation/devicetree/bindings/net/ethernet.txt for these)
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

Annotation

Implementation Notes