Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt

Source file repositories/reference/linux-study-clean/Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt

File Facts

System
Linux kernel
Corpus path
Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
Extension
.txt
Size
7107 bytes
Lines
169
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 binding is deprecated, but it continues to be supported, but new
features should be preferably added to the stmmac binding document.

This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service)
IP block. The IP supports multiple options for bus type, clocking and reset
structure, and feature list. Consequently, a number of properties and list
entries in properties are marked as optional, or only required in specific HW
configurations.

Required properties:
- compatible: One of:
  - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10"
    Represents the IP core when integrated into the Axis ARTPEC-6 SoC.
  - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10"
    Represents the IP core when integrated into the NVIDIA Tegra186 SoC.
  - "snps,dwc-qos-ethernet-4.10"
    This combination is deprecated. It should be treated as equivalent to
    "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be
    compatible with earlier revisions of this binding.
- reg: Address and length of the register set for the device
- clocks: Phandle and clock specifiers for each entry in clock-names, in the
  same order. See ../clock/clock-bindings.txt.
- clock-names: May contain any/all of the following depending on the IP
  configuration, in any order:
  - "tx"
    The EQOS transmit path clock. The HW signal name is clk_tx_i.
    In some configurations (e.g. GMII/RGMII), this clock also drives the PHY TX
    path. In other configurations, other clocks (such as tx_125, rmii) may
    drive the PHY TX path.
  - "rx"
    The EQOS receive path clock. The HW signal name is clk_rx_i.
    In some configurations (e.g. GMII/RGMII), this clock is derived from the
    PHY's RX clock output. In other configurations, other clocks (such as
    rx_125, rmii) may drive the EQOS RX path.
    In cases where the PHY clock is directly fed into the EQOS receive path
    without intervening logic, the DT need not represent this clock, since it
    is assumed to be fully under the control of the PHY device/driver. In
    cases where SoC integration adds additional logic to this path, such as a
    SW-controlled clock gate, this clock should be represented in DT.
  - "slave_bus"
    The CPU/slave-bus (CSR) interface clock. This applies to any bus type;
    APB, AHB, AXI, etc. The HW signal name is hclk_i (AHB) or clk_csr_i (other
    buses).
  - "master_bus"
    The master bus interface clock. Only required in configurations that use a
    separate clock for the master and slave bus interfaces. The HW signal name
    is hclk_i (AHB) or aclk_i (AXI).
  - "ptp_ref"
    The PTP reference clock. The HW signal name is clk_ptp_ref_i.
  - "phy_ref_clk"
    This clock is deprecated and should not be used by new compatible values.
    It is equivalent to "tx".
  - "apb_pclk"
    This clock is deprecated and should not be used by new compatible values.
    It is equivalent to "slave_bus".

  Note: Support for additional IP configurations may require adding the
  following clocks to this list in the future: clk_rx_125_i, clk_tx_125_i,
  clk_pmarx_0_i, clk_pmarx1_i, clk_rmii_i, clk_revmii_rx_i, clk_revmii_tx_i.
  Configurations exist where multiple similar clocks are used at once, e.g. all
  of clk_rx_125_i, clk_pmarx_0_i, clk_pmarx1_i. For this reason it is best to
  extend the binding with a separate clock-names entry for each of those RX
  clocks, rather than repurposing the existing "rx" clock-names entry as a
  generic/logical clock in a similar fashion to "master_bus" and "slave_bus".
  This will allow easy support for configurations that support multiple PHY
  interfaces using a mux, and hence need to have explicit control over
  specific RX clocks.

  The following compatible values require the following set of clocks:
  - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10":

Annotation

Implementation Notes