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---
548ac0b58SLinus Walleij$id: "http://devicetree.org/schemas/net/intel,ixp4xx-ethernet.yaml#"
648ac0b58SLinus Walleij$schema: "http://devicetree.org/meta-schemas/core.yaml#"
748ac0b58SLinus Walleij
848ac0b58SLinus Walleijtitle: Intel IXP4xx ethernet
948ac0b58SLinus Walleij
1048ac0b58SLinus WalleijallOf:
1148ac0b58SLinus Walleij  - $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:
3148ac0b58SLinus Walleij    $ref: '/schemas/types.yaml#/definitions/phandle-array'
3248ac0b58SLinus Walleij    maxItems: 1
3348ac0b58SLinus Walleij    description: phandle to the RX queue on the NPE
3448ac0b58SLinus Walleij
3548ac0b58SLinus Walleij  queue-txready:
3648ac0b58SLinus Walleij    $ref: '/schemas/types.yaml#/definitions/phandle-array'
3748ac0b58SLinus Walleij    maxItems: 1
3848ac0b58SLinus Walleij    description: phandle to the TX READY queue on the NPE
3948ac0b58SLinus Walleij
4048ac0b58SLinus Walleij  phy-mode: true
4148ac0b58SLinus Walleij
4248ac0b58SLinus Walleij  phy-handle: true
4348ac0b58SLinus Walleij
4448ac0b58SLinus Walleij  intel,npe-handle:
4548ac0b58SLinus Walleij    $ref: '/schemas/types.yaml#/definitions/phandle-array'
4648ac0b58SLinus Walleij    maxItems: 1
4748ac0b58SLinus Walleij    description: phandle to the NPE this ethernet instance is using
4848ac0b58SLinus Walleij      and the instance to use in the second cell
4948ac0b58SLinus Walleij
5048ac0b58SLinus Walleij  mdio:
51*b2d28642SRob Herring    $ref: mdio.yaml#
52*b2d28642SRob Herring    unevaluatedProperties: false
5348ac0b58SLinus Walleij    description: optional node for embedded MDIO controller
5448ac0b58SLinus Walleij
5548ac0b58SLinus Walleijrequired:
5648ac0b58SLinus Walleij  - compatible
5748ac0b58SLinus Walleij  - reg
5848ac0b58SLinus Walleij  - queue-rx
5948ac0b58SLinus Walleij  - queue-txready
6048ac0b58SLinus Walleij  - intel,npe-handle
6148ac0b58SLinus Walleij
6248ac0b58SLinus WalleijadditionalProperties: false
6348ac0b58SLinus Walleij
6448ac0b58SLinus Walleijexamples:
6548ac0b58SLinus Walleij  - |
6648ac0b58SLinus Walleij    npe: npe@c8006000 {
6748ac0b58SLinus Walleij      compatible = "intel,ixp4xx-network-processing-engine";
6848ac0b58SLinus Walleij      reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
6948ac0b58SLinus Walleij    };
7048ac0b58SLinus Walleij
7148ac0b58SLinus Walleij    ethernet@c8009000 {
7248ac0b58SLinus Walleij      compatible = "intel,ixp4xx-ethernet";
7348ac0b58SLinus Walleij      reg = <0xc8009000 0x1000>;
7448ac0b58SLinus Walleij      queue-rx = <&qmgr 4>;
7548ac0b58SLinus Walleij      queue-txready = <&qmgr 21>;
7648ac0b58SLinus Walleij      intel,npe-handle = <&npe 1>;
7748ac0b58SLinus Walleij      phy-mode = "rgmii";
7848ac0b58SLinus Walleij      phy-handle = <&phy1>;
7948ac0b58SLinus Walleij    };
8048ac0b58SLinus Walleij
8148ac0b58SLinus Walleij    ethernet@c800c000 {
8248ac0b58SLinus Walleij      compatible = "intel,ixp4xx-ethernet";
8348ac0b58SLinus Walleij      reg = <0xc800c000 0x1000>;
8448ac0b58SLinus Walleij      queue-rx = <&qmgr 3>;
8548ac0b58SLinus Walleij      queue-txready = <&qmgr 20>;
8648ac0b58SLinus Walleij      intel,npe-handle = <&npe 2>;
8748ac0b58SLinus Walleij      phy-mode = "rgmii";
8848ac0b58SLinus Walleij      phy-handle = <&phy2>;
8948ac0b58SLinus Walleij
9048ac0b58SLinus Walleij      mdio {
9148ac0b58SLinus Walleij        #address-cells = <1>;
9248ac0b58SLinus Walleij        #size-cells = <0>;
9348ac0b58SLinus Walleij        phy1: ethernet-phy@1 {
9448ac0b58SLinus Walleij          reg = <1>;
9548ac0b58SLinus Walleij        };
9648ac0b58SLinus Walleij        phy2: ethernet-phy@2 {
9748ac0b58SLinus Walleij          reg = <2>;
9848ac0b58SLinus Walleij        };
9948ac0b58SLinus Walleij      };
10048ac0b58SLinus Walleij    };
101