| # 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. | |
| Some TSECs are 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>; | |
| }; | |
| }; | |
| }; |