u-boot-brain/doc/device-tree-bindings/net/fsl-tsec-phy.txt
Bin Meng 05153702d3 dt-bindings: net: Update Freescale TSEC to support "queue-group"
At present the Freescale TSEC node DT bindings doc requires a <reg>
property in the TSEC node. But this might not always be the case.
In the upstream Linux kernel, there is no DT bindings doc for it
but the kernel driver tests a subnode of a name prefixed with
"queue-group", as we can see from gfar_of_init():

  for_each_available_child_of_node(np, child) {
      if (!of_node_name_eq(child, "queue-group"))
  ...

in drivers/net/ethernet/freescale/gianfar.c

Update our DT bindings to describe this alternate description.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
2021-04-15 14:22:17 +05:30

82 lines
2.4 KiB
Plaintext

* TSEC-compatible ethernet nodes
Properties:
- compatible : Should be "fsl,etsec2" or "gianfar"
- reg : Offset and length of the register set for the device. If this is
missing, a subnode with a name prefix "queue-group" must be provided to
provide the <reg> property.
- phy-handle : See ethernet.txt file in the same directory.
- phy-connection-type : See ethernet.txt file in the same directory. This
property is only really needed if the connection is of type "rgmii-id",
"rgmii-rxid" and "rgmii-txid" as all other connection types are detected
by hardware.
- ranges : an <empty> value if subnode "queue-group" is present, specifying
that no address translation is required between them TSEC parent node and
the child "queue-group" node.
Example:
ethernet@24000 {
compatible = "fsl,etsec2";
reg = <0x24000 0x1000>;
phy-handle = <&phy0>;
phy-connection-type = "sgmii";
};
An alternate description with "queue-group" subnode example:
ethernet@24000 {
compatible = "fsl,etsec2";
phy-handle = <&phy0>;
phy-connection-type = "sgmii";
ranges;
queue-group {
reg = <0x24000 0x1000>;
};
};
Child nodes of the TSEC controller are typically the individual PHY devices
connected via the MDIO bus (sometimes the MDIO bus controller is separate).
* MDIO IO device
The MDIO is a bus to which the PHY devices are connected. For each
device that exists on this bus, a PHY node should be created.
Required properties:
- compatible : Should define the compatible device type for the
mdio. Currently supported string/device is "fsl,etsec2-mdio".
- reg : Offset and length of the register set for the device
Example:
mdio@24520 {
compatible = "fsl,etsec2-mdio";
reg = <0x24520 0x20>;
ethernet-phy@0 {
reg = <0>;
};
};
* TBI Internal MDIO bus
As of this writing, every tsec is associated with an internal TBI PHY.
This PHY is accessed through the local MDIO bus. These buses are defined
similarly to the mdio buses. The TBI PHYs underneath them are similar to
normal PHYs, but the reg property is considered instructive, rather than
descriptive. The reg property should be chosen so it doesn't interfere
with other PHYs on the bus. The TBI PHYs are referred to by a "tbi-handle"
property under the tsec node, which has a similar meaning of "phy-handle".
Example:
ethernet@24000 {
phy-handle = <&tbi1>;
};
mdio@24520 {
tbi1: tbi-phy@1f {
reg = <0x1f>;
};
};