148ac0b58SLinus Walleij# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
248ac0b58SLinus Walleij# Copyright 2018 Linaro Ltd.
348ac0b58SLinus Walleij%YAML 1.2
448ac0b58SLinus Walleij---
5*3079bfdbSRob Herring$id: http://devicetree.org/schemas/net/intel,ixp4xx-ethernet.yaml#
6*3079bfdbSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
748ac0b58SLinus Walleij
848ac0b58SLinus Walleijtitle: Intel IXP4xx ethernet
948ac0b58SLinus Walleij
1048ac0b58SLinus WalleijallOf:
11*3079bfdbSRob Herring  - $ref: ethernet-controller.yaml#
1248ac0b58SLinus Walleij
1348ac0b58SLinus Walleijmaintainers:
1448ac0b58SLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
1548ac0b58SLinus Walleij
1648ac0b58SLinus Walleijdescription: |
1748ac0b58SLinus Walleij  The Intel IXP4xx ethernet makes use of the IXP4xx NPE (Network
1848ac0b58SLinus Walleij  Processing Engine) and the IXP4xx Queue Manager to process
1948ac0b58SLinus Walleij  the ethernet frames. It can optionally contain an MDIO bus to
2048ac0b58SLinus Walleij  talk to PHYs.
2148ac0b58SLinus Walleij
2248ac0b58SLinus Walleijproperties:
2348ac0b58SLinus Walleij  compatible:
2448ac0b58SLinus Walleij    const: intel,ixp4xx-ethernet
2548ac0b58SLinus Walleij
2648ac0b58SLinus Walleij  reg:
2748ac0b58SLinus Walleij    maxItems: 1
2848ac0b58SLinus Walleij    description: Ethernet MMIO address range
2948ac0b58SLinus Walleij
3048ac0b58SLinus Walleij  queue-rx:
31*3079bfdbSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
3239bd2b6aSRob Herring    items:
3339bd2b6aSRob Herring      - items:
3439bd2b6aSRob Herring          - description: phandle to the RX queue node
3539bd2b6aSRob Herring          - description: RX queue instance to use
3648ac0b58SLinus Walleij    description: phandle to the RX queue on the NPE
3748ac0b58SLinus Walleij
3848ac0b58SLinus Walleij  queue-txready:
39*3079bfdbSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
4039bd2b6aSRob Herring    items:
4139bd2b6aSRob Herring      - items:
4239bd2b6aSRob Herring          - description: phandle to the TX READY queue node
4339bd2b6aSRob Herring          - description: TX READY queue instance to use
4448ac0b58SLinus Walleij    description: phandle to the TX READY queue on the NPE
4548ac0b58SLinus Walleij
4648ac0b58SLinus Walleij  phy-mode: true
4748ac0b58SLinus Walleij
4848ac0b58SLinus Walleij  phy-handle: true
4948ac0b58SLinus Walleij
5048ac0b58SLinus Walleij  intel,npe-handle:
51*3079bfdbSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
5239bd2b6aSRob Herring    items:
5339bd2b6aSRob Herring      - items:
5439bd2b6aSRob Herring          - description: phandle to the NPE this ethernet instance is using
5539bd2b6aSRob Herring          - description: the NPE instance to use
5648ac0b58SLinus Walleij    description: phandle to the NPE this ethernet instance is using
5748ac0b58SLinus Walleij      and the instance to use in the second cell
5848ac0b58SLinus Walleij
5948ac0b58SLinus Walleij  mdio:
60b2d28642SRob Herring    $ref: mdio.yaml#
61b2d28642SRob Herring    unevaluatedProperties: false
6248ac0b58SLinus Walleij    description: optional node for embedded MDIO controller
6348ac0b58SLinus Walleij
6448ac0b58SLinus Walleijrequired:
6548ac0b58SLinus Walleij  - compatible
6648ac0b58SLinus Walleij  - reg
6748ac0b58SLinus Walleij  - queue-rx
6848ac0b58SLinus Walleij  - queue-txready
6948ac0b58SLinus Walleij  - intel,npe-handle
7048ac0b58SLinus Walleij
7148ac0b58SLinus WalleijadditionalProperties: false
7248ac0b58SLinus Walleij
7348ac0b58SLinus Walleijexamples:
7448ac0b58SLinus Walleij  - |
7548ac0b58SLinus Walleij    npe: npe@c8006000 {
7648ac0b58SLinus Walleij      compatible = "intel,ixp4xx-network-processing-engine";
7748ac0b58SLinus Walleij      reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
7848ac0b58SLinus Walleij    };
7948ac0b58SLinus Walleij
8048ac0b58SLinus Walleij    ethernet@c8009000 {
8148ac0b58SLinus Walleij      compatible = "intel,ixp4xx-ethernet";
8248ac0b58SLinus Walleij      reg = <0xc8009000 0x1000>;
8348ac0b58SLinus Walleij      queue-rx = <&qmgr 4>;
8448ac0b58SLinus Walleij      queue-txready = <&qmgr 21>;
8548ac0b58SLinus Walleij      intel,npe-handle = <&npe 1>;
8648ac0b58SLinus Walleij      phy-mode = "rgmii";
8748ac0b58SLinus Walleij      phy-handle = <&phy1>;
8848ac0b58SLinus Walleij    };
8948ac0b58SLinus Walleij
9048ac0b58SLinus Walleij    ethernet@c800c000 {
9148ac0b58SLinus Walleij      compatible = "intel,ixp4xx-ethernet";
9248ac0b58SLinus Walleij      reg = <0xc800c000 0x1000>;
9348ac0b58SLinus Walleij      queue-rx = <&qmgr 3>;
9448ac0b58SLinus Walleij      queue-txready = <&qmgr 20>;
9548ac0b58SLinus Walleij      intel,npe-handle = <&npe 2>;
9648ac0b58SLinus Walleij      phy-mode = "rgmii";
9748ac0b58SLinus Walleij      phy-handle = <&phy2>;
9848ac0b58SLinus Walleij
9948ac0b58SLinus Walleij      mdio {
10048ac0b58SLinus Walleij        #address-cells = <1>;
10148ac0b58SLinus Walleij        #size-cells = <0>;
10248ac0b58SLinus Walleij        phy1: ethernet-phy@1 {
10348ac0b58SLinus Walleij          reg = <1>;
10448ac0b58SLinus Walleij        };
10548ac0b58SLinus Walleij        phy2: ethernet-phy@2 {
10648ac0b58SLinus Walleij          reg = <2>;
10748ac0b58SLinus Walleij        };
10848ac0b58SLinus Walleij      };
10948ac0b58SLinus Walleij    };
110