155c1c4e9SLorenzo Bianconi# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
255c1c4e9SLorenzo Bianconi%YAML 1.2
355c1c4e9SLorenzo Bianconi---
44b71ed9fSRob Herring$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#
54b71ed9fSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
655c1c4e9SLorenzo Bianconi
755c1c4e9SLorenzo Bianconititle: MediaTek Wireless Ethernet Dispatch Controller for MT7622
855c1c4e9SLorenzo Bianconi
955c1c4e9SLorenzo Bianconimaintainers:
1055c1c4e9SLorenzo Bianconi  - Lorenzo Bianconi <lorenzo@kernel.org>
1155c1c4e9SLorenzo Bianconi  - Felix Fietkau <nbd@nbd.name>
1255c1c4e9SLorenzo Bianconi
1355c1c4e9SLorenzo Bianconidescription:
1455c1c4e9SLorenzo Bianconi  The mediatek wireless ethernet dispatch controller can be configured to
1555c1c4e9SLorenzo Bianconi  intercept and handle access to the WLAN DMA queues and PCIe interrupts
1655c1c4e9SLorenzo Bianconi  and implement hardware flow offloading from ethernet to WLAN.
1755c1c4e9SLorenzo Bianconi
1855c1c4e9SLorenzo Bianconiproperties:
1955c1c4e9SLorenzo Bianconi  compatible:
2055c1c4e9SLorenzo Bianconi    items:
2155c1c4e9SLorenzo Bianconi      - enum:
2255c1c4e9SLorenzo Bianconi          - mediatek,mt7622-wed
23cf88231dSDaniel Golle          - mediatek,mt7981-wed
2422ecfce1SLorenzo Bianconi          - mediatek,mt7986-wed
25*f881f273SLorenzo Bianconi          - mediatek,mt7988-wed
2655c1c4e9SLorenzo Bianconi      - const: syscon
2755c1c4e9SLorenzo Bianconi
2855c1c4e9SLorenzo Bianconi  reg:
2955c1c4e9SLorenzo Bianconi    maxItems: 1
3055c1c4e9SLorenzo Bianconi
3155c1c4e9SLorenzo Bianconi  interrupts:
3255c1c4e9SLorenzo Bianconi    maxItems: 1
3355c1c4e9SLorenzo Bianconi
34ceb82ac2SLorenzo Bianconi  memory-region:
35ceb82ac2SLorenzo Bianconi    items:
36ceb82ac2SLorenzo Bianconi      - description: firmware EMI region
37ceb82ac2SLorenzo Bianconi      - description: firmware ILM region
38ceb82ac2SLorenzo Bianconi      - description: firmware DLM region
39ceb82ac2SLorenzo Bianconi      - description: firmware CPU DATA region
40ceb82ac2SLorenzo Bianconi      - description: firmware BOOT region
41ceb82ac2SLorenzo Bianconi
42ceb82ac2SLorenzo Bianconi  memory-region-names:
43ceb82ac2SLorenzo Bianconi    items:
44ceb82ac2SLorenzo Bianconi      - const: wo-emi
45ceb82ac2SLorenzo Bianconi      - const: wo-ilm
46ceb82ac2SLorenzo Bianconi      - const: wo-dlm
47ceb82ac2SLorenzo Bianconi      - const: wo-data
48ceb82ac2SLorenzo Bianconi      - const: wo-boot
49ceb82ac2SLorenzo Bianconi
50ceb82ac2SLorenzo Bianconi  mediatek,wo-ccif:
51ceb82ac2SLorenzo Bianconi    $ref: /schemas/types.yaml#/definitions/phandle
52ceb82ac2SLorenzo Bianconi    description: mediatek wed-wo controller interface.
53ceb82ac2SLorenzo Bianconi
54ceb82ac2SLorenzo BianconiallOf:
55ceb82ac2SLorenzo Bianconi  - if:
56ceb82ac2SLorenzo Bianconi      properties:
57ceb82ac2SLorenzo Bianconi        compatible:
58ceb82ac2SLorenzo Bianconi          contains:
59ceb82ac2SLorenzo Bianconi            const: mediatek,mt7622-wed
60ceb82ac2SLorenzo Bianconi    then:
61ceb82ac2SLorenzo Bianconi      properties:
62ceb82ac2SLorenzo Bianconi        memory-region-names: false
63ceb82ac2SLorenzo Bianconi        memory-region: false
64ceb82ac2SLorenzo Bianconi        mediatek,wo-ccif: false
65ceb82ac2SLorenzo Bianconi
6655c1c4e9SLorenzo Bianconirequired:
6755c1c4e9SLorenzo Bianconi  - compatible
6855c1c4e9SLorenzo Bianconi  - reg
6955c1c4e9SLorenzo Bianconi  - interrupts
7055c1c4e9SLorenzo Bianconi
7155c1c4e9SLorenzo BianconiadditionalProperties: false
7255c1c4e9SLorenzo Bianconi
7355c1c4e9SLorenzo Bianconiexamples:
7455c1c4e9SLorenzo Bianconi  - |
7555c1c4e9SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/arm-gic.h>
7655c1c4e9SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/irq.h>
7755c1c4e9SLorenzo Bianconi    soc {
7855c1c4e9SLorenzo Bianconi      #address-cells = <2>;
7955c1c4e9SLorenzo Bianconi      #size-cells = <2>;
8055c1c4e9SLorenzo Bianconi      wed0: wed@1020a000 {
8155c1c4e9SLorenzo Bianconi        compatible = "mediatek,mt7622-wed","syscon";
8255c1c4e9SLorenzo Bianconi        reg = <0 0x1020a000 0 0x1000>;
8355c1c4e9SLorenzo Bianconi        interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
8455c1c4e9SLorenzo Bianconi      };
8555c1c4e9SLorenzo Bianconi    };
86ceb82ac2SLorenzo Bianconi
87ceb82ac2SLorenzo Bianconi  - |
88ceb82ac2SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/arm-gic.h>
89ceb82ac2SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/irq.h>
90ceb82ac2SLorenzo Bianconi    soc {
91ceb82ac2SLorenzo Bianconi      #address-cells = <2>;
92ceb82ac2SLorenzo Bianconi      #size-cells = <2>;
93ceb82ac2SLorenzo Bianconi
94ceb82ac2SLorenzo Bianconi      wed@15010000 {
95ceb82ac2SLorenzo Bianconi        compatible = "mediatek,mt7986-wed", "syscon";
96ceb82ac2SLorenzo Bianconi        reg = <0 0x15010000 0 0x1000>;
97ceb82ac2SLorenzo Bianconi        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
98ceb82ac2SLorenzo Bianconi
99ceb82ac2SLorenzo Bianconi        memory-region = <&wo_emi>, <&wo_ilm>, <&wo_dlm>,
100ceb82ac2SLorenzo Bianconi                        <&wo_data>, <&wo_boot>;
101ceb82ac2SLorenzo Bianconi        memory-region-names = "wo-emi", "wo-ilm", "wo-dlm",
102ceb82ac2SLorenzo Bianconi                              "wo-data", "wo-boot";
103ceb82ac2SLorenzo Bianconi        mediatek,wo-ccif = <&wo_ccif0>;
104ceb82ac2SLorenzo Bianconi      };
105ceb82ac2SLorenzo Bianconi    };
106