Commit e4c45223 authored by J. Neuschäfer's avatar J. Neuschäfer Committed by Jakub Kicinski
Browse files

dt-bindings: net: Convert fsl,gianfar-{mdio,tbi} to YAML



Move the information related to the Freescale Gianfar (TSEC) MDIO bus
and the Ten-Bit Interface (TBI) from fsl-tsec-phy.txt to a new binding
file in YAML format, fsl,gianfar-mdio.yaml.

Signed-off-by: default avatarJ. Neuschäfer <j.ne@posteo.net>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250228-gianfar-yaml-v2-1-6beeefbd4818@posteo.net


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 24412be8
Loading
Loading
Loading
Loading
+113 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/fsl,gianfar-mdio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale Gianfar (TSEC) MDIO Device

description:
  This binding describes the MDIO is a bus to which the PHY devices are
  connected. For each device that exists on this bus, a child node should be
  created.

  As of this writing, every TSEC is associated with an internal Ten-Bit
  Interface (TBI) PHY. This PHY is accessed through the local MDIO bus. These
  buses are defined similarly to the mdio buses, except they are compatible
  with "fsl,gianfar-tbi". 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.

maintainers:
  - J. Neuschäfer <j.ne@posteo.net>

# This is needed to distinguish gianfar.yaml and gianfar-mdio.yaml, because
# both use compatible = "gianfar" (with different device_type values)
select:
  oneOf:
    - properties:
        compatible:
          contains:
            const: gianfar
        device_type:
          const: mdio
      required:
        - device_type

    - properties:
        compatible:
          contains:
            enum:
              - fsl,gianfar-tbi
              - fsl,gianfar-mdio
              - fsl,etsec2-tbi
              - fsl,etsec2-mdio
              - fsl,ucc-mdio
              - ucc_geth_phy

  required:
    - compatible

properties:
  compatible:
    enum:
      - fsl,gianfar-tbi
      - fsl,gianfar-mdio
      - fsl,etsec2-tbi
      - fsl,etsec2-mdio
      - fsl,ucc-mdio
      - gianfar
      - ucc_geth_phy

  reg:
    minItems: 1
    items:
      - description:
          Offset and length of the register set for the device

      - description:
          Optionally, the offset and length of the TBIPA register (TBI PHY
          address register). If TBIPA register is not specified, the driver
          will attempt to infer it from the register set specified (your
          mileage may vary).

  device_type:
    const: mdio

required:
  - reg
  - "#address-cells"
  - "#size-cells"

allOf:
  - $ref: mdio.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: ucc_geth_phy
    then:
      required:
        - device_type

unevaluatedProperties: false

examples:
  - |
    soc {
        #address-cells = <1>;
        #size-cells = <1>;

        mdio@24520 {
            reg = <0x24520 0x20>;
            compatible = "fsl,gianfar-mdio";
            #address-cells = <1>;
            #size-cells = <0>;

            ethernet-phy@0 {
                reg = <0>;
            };
        };
    };
+2 −39
Original line number Diff line number Diff line
* MDIO IO device

The MDIO is a bus to which the PHY devices are connected.  For each
device that exists on this bus, a child node should be created.  See
the definition of the PHY node in booting-without-of.txt for an example
of how to define a PHY.

Required properties:
  - reg : Offset and length of the register set for the device, and optionally
          the offset and length of the TBIPA register (TBI PHY address
	  register).  If TBIPA register is not specified, the driver will
	  attempt to infer it from the register set specified (your mileage may
	  vary).
  - compatible : Should define the compatible device type for the
    mdio. Currently supported strings/devices are:
	- "fsl,gianfar-tbi"
	- "fsl,gianfar-mdio"
	- "fsl,etsec2-tbi"
	- "fsl,etsec2-mdio"
	- "fsl,ucc-mdio"
	- "fsl,fman-mdio"
    When device_type is "mdio", the following strings are also considered:
	- "gianfar"
	- "ucc_geth_phy"

Example:

	mdio@24520 {
		reg = <24520 20>;
		compatible = "fsl,gianfar-mdio";

		ethernet-phy@0 {
			......
		};
	};
Refer to Documentation/devicetree/bindings/net/fsl,gianfar-mdio.yaml

* 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, except they are compatible with "fsl,gianfar-tbi".
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.
Refer to Documentation/devicetree/bindings/net/fsl,gianfar-mdio.yaml

* Gianfar-compatible ethernet nodes