1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/net/nxp,dwmac-imx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP i.MX8/9 DWMAC glue layer
8
9maintainers:
10  - Clark Wang <xiaoning.wang@nxp.com>
11  - Shawn Guo <shawnguo@kernel.org>
12  - NXP Linux Team <linux-imx@nxp.com>
13
14# We need a select here so we don't match all nodes with 'snps,dwmac'
15select:
16  properties:
17    compatible:
18      contains:
19        enum:
20          - nxp,imx8mp-dwmac-eqos
21          - nxp,imx8dxl-dwmac-eqos
22          - nxp,imx93-dwmac-eqos
23  required:
24    - compatible
25
26allOf:
27  - $ref: snps,dwmac.yaml#
28
29properties:
30  compatible:
31    oneOf:
32      - items:
33          - enum:
34              - nxp,imx8mp-dwmac-eqos
35              - nxp,imx8dxl-dwmac-eqos
36              - nxp,imx93-dwmac-eqos
37          - const: snps,dwmac-5.10a
38
39  clocks:
40    minItems: 3
41    items:
42      - description: MAC host clock
43      - description: MAC apb clock
44      - description: MAC timer clock
45      - description: MAC RGMII TX clock
46      - description: EQOS MEM clock
47
48  clock-names:
49    minItems: 3
50    maxItems: 5
51    contains:
52      enum:
53        - stmmaceth
54        - pclk
55        - ptp_ref
56        - tx
57        - mem
58
59  interrupts:
60    maxItems: 2
61
62  interrupt-names:
63    items:
64      - const: macirq
65      - const: eth_wake_irq
66
67  intf_mode:
68    $ref: /schemas/types.yaml#/definitions/phandle-array
69    items:
70      - items:
71          - description: phandle to the GPR syscon
72          - description: the offset of the GPR register
73    description:
74      Should be phandle/offset pair. The phandle to the syscon node which
75      encompases the GPR register, and the offset of the GPR register.
76
77  nvmem-cells: true
78
79  nvmem-cell-names: true
80
81  snps,rmii_refclk_ext:
82    $ref: /schemas/types.yaml#/definitions/flag
83    description:
84      To select RMII reference clock from external.
85
86required:
87  - compatible
88  - clocks
89  - clock-names
90
91unevaluatedProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/interrupt-controller/arm-gic.h>
96    #include <dt-bindings/interrupt-controller/irq.h>
97    #include <dt-bindings/clock/imx8mp-clock.h>
98
99    eqos: ethernet@30bf0000 {
100            compatible = "nxp,imx8mp-dwmac-eqos","snps,dwmac-5.10a";
101            reg = <0x30bf0000 0x10000>;
102            interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
103                         <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
104            interrupt-names = "macirq", "eth_wake_irq";
105            clocks = <&clk IMX8MP_CLK_ENET_QOS_ROOT>,
106                     <&clk IMX8MP_CLK_QOS_ENET_ROOT>,
107                     <&clk IMX8MP_CLK_ENET_QOS_TIMER>,
108                     <&clk IMX8MP_CLK_ENET_QOS>;
109            clock-names = "stmmaceth", "pclk", "ptp_ref", "tx";
110            phy-mode = "rgmii";
111    };
112