155c1c4e9SLorenzo Bianconi# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
255c1c4e9SLorenzo Bianconi%YAML 1.2
355c1c4e9SLorenzo Bianconi---
455c1c4e9SLorenzo Bianconi$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#
555c1c4e9SLorenzo Bianconi$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
23*cf88231dSDaniel Golle          - mediatek,mt7981-wed
2422ecfce1SLorenzo Bianconi          - mediatek,mt7986-wed
2555c1c4e9SLorenzo Bianconi      - const: syscon
2655c1c4e9SLorenzo Bianconi
2755c1c4e9SLorenzo Bianconi  reg:
2855c1c4e9SLorenzo Bianconi    maxItems: 1
2955c1c4e9SLorenzo Bianconi
3055c1c4e9SLorenzo Bianconi  interrupts:
3155c1c4e9SLorenzo Bianconi    maxItems: 1
3255c1c4e9SLorenzo Bianconi
33ceb82ac2SLorenzo Bianconi  memory-region:
34ceb82ac2SLorenzo Bianconi    items:
35ceb82ac2SLorenzo Bianconi      - description: firmware EMI region
36ceb82ac2SLorenzo Bianconi      - description: firmware ILM region
37ceb82ac2SLorenzo Bianconi      - description: firmware DLM region
38ceb82ac2SLorenzo Bianconi      - description: firmware CPU DATA region
39ceb82ac2SLorenzo Bianconi      - description: firmware BOOT region
40ceb82ac2SLorenzo Bianconi
41ceb82ac2SLorenzo Bianconi  memory-region-names:
42ceb82ac2SLorenzo Bianconi    items:
43ceb82ac2SLorenzo Bianconi      - const: wo-emi
44ceb82ac2SLorenzo Bianconi      - const: wo-ilm
45ceb82ac2SLorenzo Bianconi      - const: wo-dlm
46ceb82ac2SLorenzo Bianconi      - const: wo-data
47ceb82ac2SLorenzo Bianconi      - const: wo-boot
48ceb82ac2SLorenzo Bianconi
49ceb82ac2SLorenzo Bianconi  mediatek,wo-ccif:
50ceb82ac2SLorenzo Bianconi    $ref: /schemas/types.yaml#/definitions/phandle
51ceb82ac2SLorenzo Bianconi    description: mediatek wed-wo controller interface.
52ceb82ac2SLorenzo Bianconi
53ceb82ac2SLorenzo BianconiallOf:
54ceb82ac2SLorenzo Bianconi  - if:
55ceb82ac2SLorenzo Bianconi      properties:
56ceb82ac2SLorenzo Bianconi        compatible:
57ceb82ac2SLorenzo Bianconi          contains:
58ceb82ac2SLorenzo Bianconi            const: mediatek,mt7622-wed
59ceb82ac2SLorenzo Bianconi    then:
60ceb82ac2SLorenzo Bianconi      properties:
61ceb82ac2SLorenzo Bianconi        memory-region-names: false
62ceb82ac2SLorenzo Bianconi        memory-region: false
63ceb82ac2SLorenzo Bianconi        mediatek,wo-ccif: false
64ceb82ac2SLorenzo Bianconi
6555c1c4e9SLorenzo Bianconirequired:
6655c1c4e9SLorenzo Bianconi  - compatible
6755c1c4e9SLorenzo Bianconi  - reg
6855c1c4e9SLorenzo Bianconi  - interrupts
6955c1c4e9SLorenzo Bianconi
7055c1c4e9SLorenzo BianconiadditionalProperties: false
7155c1c4e9SLorenzo Bianconi
7255c1c4e9SLorenzo Bianconiexamples:
7355c1c4e9SLorenzo Bianconi  - |
7455c1c4e9SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/arm-gic.h>
7555c1c4e9SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/irq.h>
7655c1c4e9SLorenzo Bianconi    soc {
7755c1c4e9SLorenzo Bianconi      #address-cells = <2>;
7855c1c4e9SLorenzo Bianconi      #size-cells = <2>;
7955c1c4e9SLorenzo Bianconi      wed0: wed@1020a000 {
8055c1c4e9SLorenzo Bianconi        compatible = "mediatek,mt7622-wed","syscon";
8155c1c4e9SLorenzo Bianconi        reg = <0 0x1020a000 0 0x1000>;
8255c1c4e9SLorenzo Bianconi        interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
8355c1c4e9SLorenzo Bianconi      };
8455c1c4e9SLorenzo Bianconi    };
85ceb82ac2SLorenzo Bianconi
86ceb82ac2SLorenzo Bianconi  - |
87ceb82ac2SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/arm-gic.h>
88ceb82ac2SLorenzo Bianconi    #include <dt-bindings/interrupt-controller/irq.h>
89ceb82ac2SLorenzo Bianconi    soc {
90ceb82ac2SLorenzo Bianconi      #address-cells = <2>;
91ceb82ac2SLorenzo Bianconi      #size-cells = <2>;
92ceb82ac2SLorenzo Bianconi
93ceb82ac2SLorenzo Bianconi      wed@15010000 {
94ceb82ac2SLorenzo Bianconi        compatible = "mediatek,mt7986-wed", "syscon";
95ceb82ac2SLorenzo Bianconi        reg = <0 0x15010000 0 0x1000>;
96ceb82ac2SLorenzo Bianconi        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
97ceb82ac2SLorenzo Bianconi
98ceb82ac2SLorenzo Bianconi        memory-region = <&wo_emi>, <&wo_ilm>, <&wo_dlm>,
99ceb82ac2SLorenzo Bianconi                        <&wo_data>, <&wo_boot>;
100ceb82ac2SLorenzo Bianconi        memory-region-names = "wo-emi", "wo-ilm", "wo-dlm",
101ceb82ac2SLorenzo Bianconi                              "wo-data", "wo-boot";
102ceb82ac2SLorenzo Bianconi        mediatek,wo-ccif = <&wo_ccif0>;
103ceb82ac2SLorenzo Bianconi      };
104ceb82ac2SLorenzo Bianconi    };
105