xref: /linux/Documentation/devicetree/bindings/net/fsl,gianfar-mdio.yaml (revision 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/fsl,gianfar-mdio.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale Gianfar (TSEC) MDIO Device
8
9description:
10  This binding describes the MDIO is a bus to which the PHY devices are
11  connected. For each device that exists on this bus, a child node should be
12  created.
13
14  Some TSECs are associated with an internal Ten-Bit Interface (TBI) PHY. This
15  PHY is accessed through the local MDIO bus. These buses are defined similarly
16  to the mdio buses, except they are compatible with "fsl,gianfar-tbi". The TBI
17  PHYs underneath them are similar to normal PHYs, but the reg property is
18  considered instructive, rather than descriptive. The reg property should be
19  chosen so it doesn't interfere with other PHYs on the bus.
20
21maintainers:
22  - J. Neuschäfer <j.ne@posteo.net>
23
24# This is needed to distinguish gianfar.yaml and gianfar-mdio.yaml, because
25# both use compatible = "gianfar" (with different device_type values)
26select:
27  oneOf:
28    - properties:
29        compatible:
30          contains:
31            const: gianfar
32        device_type:
33          const: mdio
34      required:
35        - device_type
36
37    - properties:
38        compatible:
39          contains:
40            enum:
41              - fsl,gianfar-tbi
42              - fsl,gianfar-mdio
43              - fsl,etsec2-tbi
44              - fsl,etsec2-mdio
45              - fsl,ucc-mdio
46              - ucc_geth_phy
47
48  required:
49    - compatible
50
51properties:
52  compatible:
53    enum:
54      - fsl,gianfar-tbi
55      - fsl,gianfar-mdio
56      - fsl,etsec2-tbi
57      - fsl,etsec2-mdio
58      - fsl,ucc-mdio
59      - gianfar
60      - ucc_geth_phy
61
62  reg:
63    minItems: 1
64    items:
65      - description:
66          Offset and length of the register set for the device
67
68      - description:
69          Optionally, the offset and length of the TBIPA register (TBI PHY
70          address register). If TBIPA register is not specified, the driver
71          will attempt to infer it from the register set specified (your
72          mileage may vary).
73
74  device_type:
75    const: mdio
76
77required:
78  - reg
79  - "#address-cells"
80  - "#size-cells"
81
82allOf:
83  - $ref: mdio.yaml#
84
85  - if:
86      properties:
87        compatible:
88          contains:
89            const: ucc_geth_phy
90    then:
91      required:
92        - device_type
93
94unevaluatedProperties: false
95
96examples:
97  - |
98    soc {
99        #address-cells = <1>;
100        #size-cells = <1>;
101
102        mdio@24520 {
103            reg = <0x24520 0x20>;
104            compatible = "fsl,gianfar-mdio";
105            #address-cells = <1>;
106            #size-cells = <0>;
107
108            ethernet-phy@0 {
109                reg = <0>;
110            };
111        };
112    };
113