95 lines
2.9 KiB
YAML
95 lines
2.9 KiB
YAML
|
# 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>;
|
||
|
};
|
||
|
};
|
||
|
...
|