1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2018 Linaro Ltd.
3%YAML 1.2
4---
5$id: "http://devicetree.org/schemas/net/intel,ixp4xx-ethernet.yaml#"
6$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7
8title: Intel IXP4xx ethernet
9
10allOf:
11  - $ref: "ethernet-controller.yaml#"
12
13maintainers:
14  - Linus Walleij <linus.walleij@linaro.org>
15
16description: |
17  The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
18  Processing Engine) and the IXP4xx Queue Manager to process
19  the ethernet frames. It can optionally contain an MDIO bus to
20  talk to PHYs.
21
22properties:
23  compatible:
24    const: intel,ixp4xx-ethernet
25
26  reg:
27    maxItems: 1
28    description: Ethernet MMIO address range
29
30  queue-rx:
31    $ref: '/schemas/types.yaml#/definitions/phandle-array'
32    items:
33      - items:
34          - description: phandle to the RX queue node
35          - description: RX queue instance to use
36    description: phandle to the RX queue on the NPE
37
38  queue-txready:
39    $ref: '/schemas/types.yaml#/definitions/phandle-array'
40    items:
41      - items:
42          - description: phandle to the TX READY queue node
43          - description: TX READY queue instance to use
44    description: phandle to the TX READY queue on the NPE
45
46  phy-mode: true
47
48  phy-handle: true
49
50  intel,npe-handle:
51    $ref: '/schemas/types.yaml#/definitions/phandle-array'
52    items:
53      - items:
54          - description: phandle to the NPE this ethernet instance is using
55          - description: the NPE instance to use
56    description: phandle to the NPE this ethernet instance is using
57      and the instance to use in the second cell
58
59  mdio:
60    $ref: mdio.yaml#
61    unevaluatedProperties: false
62    description: optional node for embedded MDIO controller
63
64required:
65  - compatible
66  - reg
67  - queue-rx
68  - queue-txready
69  - intel,npe-handle
70
71additionalProperties: false
72
73examples:
74  - |
75    npe: npe@c8006000 {
76      compatible = "intel,ixp4xx-network-processing-engine";
77      reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
78    };
79
80    ethernet@c8009000 {
81      compatible = "intel,ixp4xx-ethernet";
82      reg = <0xc8009000 0x1000>;
83      queue-rx = <&qmgr 4>;
84      queue-txready = <&qmgr 21>;
85      intel,npe-handle = <&npe 1>;
86      phy-mode = "rgmii";
87      phy-handle = <&phy1>;
88    };
89
90    ethernet@c800c000 {
91      compatible = "intel,ixp4xx-ethernet";
92      reg = <0xc800c000 0x1000>;
93      queue-rx = <&qmgr 3>;
94      queue-txready = <&qmgr 20>;
95      intel,npe-handle = <&npe 2>;
96      phy-mode = "rgmii";
97      phy-handle = <&phy2>;
98
99      mdio {
100        #address-cells = <1>;
101        #size-cells = <0>;
102        phy1: ethernet-phy@1 {
103          reg = <1>;
104        };
105        phy2: ethernet-phy@2 {
106          reg = <2>;
107        };
108      };
109    };
110