xref: /freebsd/sys/contrib/device-tree/Bindings/arm/mediatek/mediatek,mt7622-wed.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#"
5d5b0e70fSEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: MediaTek Wireless Ethernet Dispatch Controller for MT7622
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Lorenzo Bianconi <lorenzo@kernel.org>
11d5b0e70fSEmmanuel Vadot  - Felix Fietkau <nbd@nbd.name>
12d5b0e70fSEmmanuel Vadot
13d5b0e70fSEmmanuel Vadotdescription:
14d5b0e70fSEmmanuel Vadot  The mediatek wireless ethernet dispatch controller can be configured to
15d5b0e70fSEmmanuel Vadot  intercept and handle access to the WLAN DMA queues and PCIe interrupts
16d5b0e70fSEmmanuel Vadot  and implement hardware flow offloading from ethernet to WLAN.
17d5b0e70fSEmmanuel Vadot
18d5b0e70fSEmmanuel Vadotproperties:
19d5b0e70fSEmmanuel Vadot  compatible:
20d5b0e70fSEmmanuel Vadot    items:
21d5b0e70fSEmmanuel Vadot      - enum:
22d5b0e70fSEmmanuel Vadot          - mediatek,mt7622-wed
237ef62cebSEmmanuel Vadot          - mediatek,mt7986-wed
24d5b0e70fSEmmanuel Vadot      - const: syscon
25d5b0e70fSEmmanuel Vadot
26d5b0e70fSEmmanuel Vadot  reg:
27d5b0e70fSEmmanuel Vadot    maxItems: 1
28d5b0e70fSEmmanuel Vadot
29d5b0e70fSEmmanuel Vadot  interrupts:
30d5b0e70fSEmmanuel Vadot    maxItems: 1
31d5b0e70fSEmmanuel Vadot
32*8bab661aSEmmanuel Vadot  memory-region:
33*8bab661aSEmmanuel Vadot    items:
34*8bab661aSEmmanuel Vadot      - description: firmware EMI region
35*8bab661aSEmmanuel Vadot      - description: firmware ILM region
36*8bab661aSEmmanuel Vadot      - description: firmware DLM region
37*8bab661aSEmmanuel Vadot      - description: firmware CPU DATA region
38*8bab661aSEmmanuel Vadot      - description: firmware BOOT region
39*8bab661aSEmmanuel Vadot
40*8bab661aSEmmanuel Vadot  memory-region-names:
41*8bab661aSEmmanuel Vadot    items:
42*8bab661aSEmmanuel Vadot      - const: wo-emi
43*8bab661aSEmmanuel Vadot      - const: wo-ilm
44*8bab661aSEmmanuel Vadot      - const: wo-dlm
45*8bab661aSEmmanuel Vadot      - const: wo-data
46*8bab661aSEmmanuel Vadot      - const: wo-boot
47*8bab661aSEmmanuel Vadot
48*8bab661aSEmmanuel Vadot  mediatek,wo-ccif:
49*8bab661aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
50*8bab661aSEmmanuel Vadot    description: mediatek wed-wo controller interface.
51*8bab661aSEmmanuel Vadot
52*8bab661aSEmmanuel VadotallOf:
53*8bab661aSEmmanuel Vadot  - if:
54*8bab661aSEmmanuel Vadot      properties:
55*8bab661aSEmmanuel Vadot        compatible:
56*8bab661aSEmmanuel Vadot          contains:
57*8bab661aSEmmanuel Vadot            const: mediatek,mt7622-wed
58*8bab661aSEmmanuel Vadot    then:
59*8bab661aSEmmanuel Vadot      properties:
60*8bab661aSEmmanuel Vadot        memory-region-names: false
61*8bab661aSEmmanuel Vadot        memory-region: false
62*8bab661aSEmmanuel Vadot        mediatek,wo-ccif: false
63*8bab661aSEmmanuel Vadot
64d5b0e70fSEmmanuel Vadotrequired:
65d5b0e70fSEmmanuel Vadot  - compatible
66d5b0e70fSEmmanuel Vadot  - reg
67d5b0e70fSEmmanuel Vadot  - interrupts
68d5b0e70fSEmmanuel Vadot
69d5b0e70fSEmmanuel VadotadditionalProperties: false
70d5b0e70fSEmmanuel Vadot
71d5b0e70fSEmmanuel Vadotexamples:
72d5b0e70fSEmmanuel Vadot  - |
73d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
74d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
75d5b0e70fSEmmanuel Vadot    soc {
76d5b0e70fSEmmanuel Vadot      #address-cells = <2>;
77d5b0e70fSEmmanuel Vadot      #size-cells = <2>;
78d5b0e70fSEmmanuel Vadot      wed0: wed@1020a000 {
79d5b0e70fSEmmanuel Vadot        compatible = "mediatek,mt7622-wed","syscon";
80d5b0e70fSEmmanuel Vadot        reg = <0 0x1020a000 0 0x1000>;
81d5b0e70fSEmmanuel Vadot        interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
82d5b0e70fSEmmanuel Vadot      };
83d5b0e70fSEmmanuel Vadot    };
84*8bab661aSEmmanuel Vadot
85*8bab661aSEmmanuel Vadot  - |
86*8bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
87*8bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
88*8bab661aSEmmanuel Vadot    soc {
89*8bab661aSEmmanuel Vadot      #address-cells = <2>;
90*8bab661aSEmmanuel Vadot      #size-cells = <2>;
91*8bab661aSEmmanuel Vadot
92*8bab661aSEmmanuel Vadot      wed@15010000 {
93*8bab661aSEmmanuel Vadot        compatible = "mediatek,mt7986-wed", "syscon";
94*8bab661aSEmmanuel Vadot        reg = <0 0x15010000 0 0x1000>;
95*8bab661aSEmmanuel Vadot        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
96*8bab661aSEmmanuel Vadot
97*8bab661aSEmmanuel Vadot        memory-region = <&wo_emi>, <&wo_ilm>, <&wo_dlm>,
98*8bab661aSEmmanuel Vadot                        <&wo_data>, <&wo_boot>;
99*8bab661aSEmmanuel Vadot        memory-region-names = "wo-emi", "wo-ilm", "wo-dlm",
100*8bab661aSEmmanuel Vadot                              "wo-data", "wo-boot";
101*8bab661aSEmmanuel Vadot        mediatek,wo-ccif = <&wo_ccif0>;
102*8bab661aSEmmanuel Vadot      };
103*8bab661aSEmmanuel Vadot    };
104