| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| # Copyright 2019 Linaro Ltd. |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/firmware/intel,ixp4xx-network-processing-engine.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Intel IXP4xx Network Processing Engine |
| |
| maintainers: |
| - Linus Walleij <linus.walleij@linaro.org> |
| |
| description: | |
| On the IXP4xx SoCs, the Network Processing Engine (NPE) is a small |
| processor that can load a firmware to perform offloading of networking |
| and crypto tasks. It also manages the MDIO bus to the ethernet PHYs |
| on the IXP4xx platform. All IXP4xx platforms have three NPEs at |
| consecutive memory locations. They are all included in the same |
| device node since they are not independent of each other. |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - const: intel,ixp4xx-network-processing-engine |
| |
| reg: |
| items: |
| - description: NPE0 (NPE-A) register range |
| - description: NPE1 (NPE-B) register range |
| - description: NPE2 (NPE-C) register range |
| |
| crypto: |
| $ref: /schemas/crypto/intel,ixp4xx-crypto.yaml# |
| type: object |
| description: Optional node for the embedded crypto engine, the node |
| should be named with the instance number of the NPE engine used for |
| the crypto engine. |
| |
| "#address-cells": |
| const: 1 |
| |
| "#size-cells": |
| const: 0 |
| |
| patternProperties: |
| hss@[0-9]+$: |
| $ref: /schemas/net/intel,ixp4xx-hss.yaml# |
| type: object |
| description: Optional node for the High Speed Serial link (HSS), the |
| node should be named with the instance number of the NPE engine |
| used for the HSS. |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| |
| npe: npe@c8006000 { |
| compatible = "intel,ixp4xx-network-processing-engine"; |
| reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| hss@0 { |
| compatible = "intel,ixp4xx-hss"; |
| reg = <0>; |
| intel,npe-handle = <&npe 0>; |
| intel,queue-chl-rxtrig = <&qmgr 12>; |
| intel,queue-chl-txready = <&qmgr 34>; |
| intel,queue-pkt-rx = <&qmgr 13>; |
| intel,queue-pkt-tx = <&qmgr 14>, <&qmgr 15>, <&qmgr 16>, <&qmgr 17>; |
| intel,queue-pkt-rxfree = <&qmgr 18>, <&qmgr 19>, <&qmgr 20>, <&qmgr 21>; |
| intel,queue-pkt-txdone = <&qmgr 22>; |
| cts-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; |
| rts-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; |
| dcd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; |
| dtr-gpios = <&gpio_74 2 GPIO_ACTIVE_LOW>; |
| clk-internal-gpios = <&gpio_74 0 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| crypto { |
| compatible = "intel,ixp4xx-crypto"; |
| intel,npe-handle = <&npe 2>; |
| queue-rx = <&qmgr 30>; |
| queue-txready = <&qmgr 29>; |
| }; |
| }; |
| ... |