xref: /freebsd/sys/contrib/device-tree/Bindings/firmware/intel,ixp4xx-network-processing-engine.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot# Copyright 2019 Linaro Ltd.
3c66ec88fSEmmanuel Vadot%YAML 1.2
4c66ec88fSEmmanuel Vadot---
5*aa1a8ff2SEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/intel,ixp4xx-network-processing-engine.yaml#
6*aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: Intel IXP4xx Network Processing Engine
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadotmaintainers:
11c66ec88fSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotdescription: |
14c66ec88fSEmmanuel Vadot  On the IXP4xx SoCs, the Network Processing Engine (NPE) is a small
15c66ec88fSEmmanuel Vadot  processor that can load a firmware to perform offloading of networking
16c66ec88fSEmmanuel Vadot  and crypto tasks. It also manages the MDIO bus to the ethernet PHYs
17c66ec88fSEmmanuel Vadot  on the IXP4xx platform. All IXP4xx platforms have three NPEs at
18c66ec88fSEmmanuel Vadot  consecutive memory locations. They are all included in the same
19c66ec88fSEmmanuel Vadot  device node since they are not independent of each other.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadotproperties:
22c66ec88fSEmmanuel Vadot  compatible:
23c66ec88fSEmmanuel Vadot    oneOf:
24c66ec88fSEmmanuel Vadot      - items:
25c66ec88fSEmmanuel Vadot          - const: intel,ixp4xx-network-processing-engine
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  reg:
28c66ec88fSEmmanuel Vadot    items:
295956d97fSEmmanuel Vadot      - description: NPE0 (NPE-A) register range
305956d97fSEmmanuel Vadot      - description: NPE1 (NPE-B) register range
315956d97fSEmmanuel Vadot      - description: NPE2 (NPE-C) register range
325956d97fSEmmanuel Vadot
335956d97fSEmmanuel Vadot  crypto:
345956d97fSEmmanuel Vadot    $ref: /schemas/crypto/intel,ixp4xx-crypto.yaml#
355956d97fSEmmanuel Vadot    type: object
365956d97fSEmmanuel Vadot    description: Optional node for the embedded crypto engine, the node
375956d97fSEmmanuel Vadot      should be named with the instance number of the NPE engine used for
385956d97fSEmmanuel Vadot      the crypto engine.
39c66ec88fSEmmanuel Vadot
40e67e8565SEmmanuel Vadot  "#address-cells":
41e67e8565SEmmanuel Vadot    const: 1
42e67e8565SEmmanuel Vadot
43e67e8565SEmmanuel Vadot  "#size-cells":
44e67e8565SEmmanuel Vadot    const: 0
45e67e8565SEmmanuel Vadot
46e67e8565SEmmanuel VadotpatternProperties:
47e67e8565SEmmanuel Vadot  hss@[0-9]+$:
48e67e8565SEmmanuel Vadot    $ref: /schemas/net/intel,ixp4xx-hss.yaml#
49e67e8565SEmmanuel Vadot    type: object
50e67e8565SEmmanuel Vadot    description: Optional node for the High Speed Serial link (HSS), the
51e67e8565SEmmanuel Vadot      node should be named with the instance number of the NPE engine
52e67e8565SEmmanuel Vadot      used for the HSS.
53e67e8565SEmmanuel Vadot
54c66ec88fSEmmanuel Vadotrequired:
55c66ec88fSEmmanuel Vadot  - compatible
56c66ec88fSEmmanuel Vadot  - reg
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel VadotadditionalProperties: false
59c66ec88fSEmmanuel Vadot
60c66ec88fSEmmanuel Vadotexamples:
61c66ec88fSEmmanuel Vadot  - |
62e67e8565SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
63e67e8565SEmmanuel Vadot
645956d97fSEmmanuel Vadot    npe: npe@c8006000 {
65c66ec88fSEmmanuel Vadot         compatible = "intel,ixp4xx-network-processing-engine";
66c66ec88fSEmmanuel Vadot         reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
67e67e8565SEmmanuel Vadot         #address-cells = <1>;
68e67e8565SEmmanuel Vadot         #size-cells = <0>;
69e67e8565SEmmanuel Vadot
70e67e8565SEmmanuel Vadot         hss@0 {
71e67e8565SEmmanuel Vadot             compatible = "intel,ixp4xx-hss";
72e67e8565SEmmanuel Vadot             reg = <0>;
73e67e8565SEmmanuel Vadot             intel,npe-handle = <&npe 0>;
74e67e8565SEmmanuel Vadot             intel,queue-chl-rxtrig = <&qmgr 12>;
75e67e8565SEmmanuel Vadot             intel,queue-chl-txready = <&qmgr 34>;
76e67e8565SEmmanuel Vadot             intel,queue-pkt-rx = <&qmgr 13>;
77e67e8565SEmmanuel Vadot             intel,queue-pkt-tx = <&qmgr 14>, <&qmgr 15>, <&qmgr 16>, <&qmgr 17>;
78e67e8565SEmmanuel Vadot             intel,queue-pkt-rxfree = <&qmgr 18>, <&qmgr 19>, <&qmgr 20>, <&qmgr 21>;
79e67e8565SEmmanuel Vadot             intel,queue-pkt-txdone = <&qmgr 22>;
80e67e8565SEmmanuel Vadot             cts-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
81e67e8565SEmmanuel Vadot             rts-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
82e67e8565SEmmanuel Vadot             dcd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
83e67e8565SEmmanuel Vadot             dtr-gpios = <&gpio_74 2 GPIO_ACTIVE_LOW>;
84e67e8565SEmmanuel Vadot             clk-internal-gpios = <&gpio_74 0 GPIO_ACTIVE_HIGH>;
85e67e8565SEmmanuel Vadot         };
865956d97fSEmmanuel Vadot
875956d97fSEmmanuel Vadot         crypto {
885956d97fSEmmanuel Vadot             compatible = "intel,ixp4xx-crypto";
895956d97fSEmmanuel Vadot             intel,npe-handle = <&npe 2>;
905956d97fSEmmanuel Vadot             queue-rx = <&qmgr 30>;
915956d97fSEmmanuel Vadot             queue-txready = <&qmgr 29>;
925956d97fSEmmanuel Vadot         };
93c66ec88fSEmmanuel Vadot    };
94c66ec88fSEmmanuel Vadot...
95