162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2019 Linaro Ltd.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/firmware/intel,ixp4xx-network-processing-engine.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Intel IXP4xx Network Processing Engine
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Linus Walleij <linus.walleij@linaro.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  On the IXP4xx SoCs, the Network Processing Engine (NPE) is a small
1562306a36Sopenharmony_ci  processor that can load a firmware to perform offloading of networking
1662306a36Sopenharmony_ci  and crypto tasks. It also manages the MDIO bus to the ethernet PHYs
1762306a36Sopenharmony_ci  on the IXP4xx platform. All IXP4xx platforms have three NPEs at
1862306a36Sopenharmony_ci  consecutive memory locations. They are all included in the same
1962306a36Sopenharmony_ci  device node since they are not independent of each other.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciproperties:
2262306a36Sopenharmony_ci  compatible:
2362306a36Sopenharmony_ci    oneOf:
2462306a36Sopenharmony_ci      - items:
2562306a36Sopenharmony_ci          - const: intel,ixp4xx-network-processing-engine
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    items:
2962306a36Sopenharmony_ci      - description: NPE0 (NPE-A) register range
3062306a36Sopenharmony_ci      - description: NPE1 (NPE-B) register range
3162306a36Sopenharmony_ci      - description: NPE2 (NPE-C) register range
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  crypto:
3462306a36Sopenharmony_ci    $ref: /schemas/crypto/intel,ixp4xx-crypto.yaml#
3562306a36Sopenharmony_ci    type: object
3662306a36Sopenharmony_ci    description: Optional node for the embedded crypto engine, the node
3762306a36Sopenharmony_ci      should be named with the instance number of the NPE engine used for
3862306a36Sopenharmony_ci      the crypto engine.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  "#address-cells":
4162306a36Sopenharmony_ci    const: 1
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  "#size-cells":
4462306a36Sopenharmony_ci    const: 0
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cipatternProperties:
4762306a36Sopenharmony_ci  hss@[0-9]+$:
4862306a36Sopenharmony_ci    $ref: /schemas/net/intel,ixp4xx-hss.yaml#
4962306a36Sopenharmony_ci    type: object
5062306a36Sopenharmony_ci    description: Optional node for the High Speed Serial link (HSS), the
5162306a36Sopenharmony_ci      node should be named with the instance number of the NPE engine
5262306a36Sopenharmony_ci      used for the HSS.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cirequired:
5562306a36Sopenharmony_ci  - compatible
5662306a36Sopenharmony_ci  - reg
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciadditionalProperties: false
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciexamples:
6162306a36Sopenharmony_ci  - |
6262306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci    npe: npe@c8006000 {
6562306a36Sopenharmony_ci         compatible = "intel,ixp4xx-network-processing-engine";
6662306a36Sopenharmony_ci         reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
6762306a36Sopenharmony_ci         #address-cells = <1>;
6862306a36Sopenharmony_ci         #size-cells = <0>;
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci         hss@0 {
7162306a36Sopenharmony_ci             compatible = "intel,ixp4xx-hss";
7262306a36Sopenharmony_ci             reg = <0>;
7362306a36Sopenharmony_ci             intel,npe-handle = <&npe 0>;
7462306a36Sopenharmony_ci             intel,queue-chl-rxtrig = <&qmgr 12>;
7562306a36Sopenharmony_ci             intel,queue-chl-txready = <&qmgr 34>;
7662306a36Sopenharmony_ci             intel,queue-pkt-rx = <&qmgr 13>;
7762306a36Sopenharmony_ci             intel,queue-pkt-tx = <&qmgr 14>, <&qmgr 15>, <&qmgr 16>, <&qmgr 17>;
7862306a36Sopenharmony_ci             intel,queue-pkt-rxfree = <&qmgr 18>, <&qmgr 19>, <&qmgr 20>, <&qmgr 21>;
7962306a36Sopenharmony_ci             intel,queue-pkt-txdone = <&qmgr 22>;
8062306a36Sopenharmony_ci             cts-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
8162306a36Sopenharmony_ci             rts-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
8262306a36Sopenharmony_ci             dcd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
8362306a36Sopenharmony_ci             dtr-gpios = <&gpio_74 2 GPIO_ACTIVE_LOW>;
8462306a36Sopenharmony_ci             clk-internal-gpios = <&gpio_74 0 GPIO_ACTIVE_HIGH>;
8562306a36Sopenharmony_ci         };
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci         crypto {
8862306a36Sopenharmony_ci             compatible = "intel,ixp4xx-crypto";
8962306a36Sopenharmony_ci             intel,npe-handle = <&npe 2>;
9062306a36Sopenharmony_ci             queue-rx = <&qmgr 30>;
9162306a36Sopenharmony_ci             queue-txready = <&qmgr 29>;
9262306a36Sopenharmony_ci         };
9362306a36Sopenharmony_ci    };
9462306a36Sopenharmony_ci...
95