]> Git Repo - u-boot.git/blob - Bindings/net/wireless/mediatek,mt76.yaml
Squashed 'dts/upstream/' changes from b35b9bd1d4ee..7e08733c96c8
[u-boot.git] / Bindings / net / wireless / mediatek,mt76.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/net/wireless/mediatek,mt76.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: MediaTek mt76 wireless devices
9
10 maintainers:
11   - Felix Fietkau <[email protected]>
12   - Lorenzo Bianconi <[email protected]>
13   - Ryder Lee <[email protected]>
14
15 description: |
16   This node provides properties for configuring the MediaTek mt76xx
17   wireless device. The node is expected to be specified as a child
18   node of the PCI controller to which the wireless chip is connected.
19   Alternatively, it can specify the wireless part of the MT7628/MT7688
20   or MT7622/MT7986 SoC.
21
22 properties:
23   compatible:
24     enum:
25       - mediatek,mt76
26       - mediatek,mt7628-wmac
27       - mediatek,mt7622-wmac
28       - mediatek,mt7981-wmac
29       - mediatek,mt7986-wmac
30
31   reg:
32     minItems: 1
33     maxItems: 3
34     description:
35       MT7986 should contain 3 regions consys, dcm, and sku, in this order.
36
37   interrupts:
38     minItems: 1
39     items:
40       - description: major interrupt for rings
41       - description: additional interrupt for ring 19
42       - description: additional interrupt for ring 4
43       - description: additional interrupt for ring 5
44
45   power-domains:
46     maxItems: 1
47
48   memory-region:
49     maxItems: 1
50
51   resets:
52     maxItems: 1
53     description:
54       Specify the consys reset for mt7986.
55
56   reset-names:
57     const: consys
58
59   clocks:
60     maxItems: 2
61     description:
62       Specify the consys clocks for mt7986.
63
64   clock-names:
65     items:
66       - const: mcu
67       - const: ap2conn
68
69   mediatek,infracfg:
70     $ref: /schemas/types.yaml#/definitions/phandle
71     description:
72       Phandle to the infrastructure bus fabric syscon node.
73       This property is MT7622 specific
74
75   ieee80211-freq-limit: true
76
77   nvmem-cells:
78     items:
79       - description: NVMEM cell with EEPROM
80
81   nvmem-cell-names:
82     items:
83       - const: eeprom
84
85   mediatek,eeprom-data:
86     $ref: /schemas/types.yaml#/definitions/uint32-array
87     description:
88       EEPROM data embedded as array.
89
90   mediatek,mtd-eeprom:
91     $ref: /schemas/types.yaml#/definitions/phandle-array
92     items:
93       - items:
94           - description: phandle to MTD partition
95           - description: offset containing EEPROM data
96     description:
97       Phandle to a MTD partition + offset containing EEPROM data
98     deprecated: true
99
100   big-endian:
101     $ref: /schemas/types.yaml#/definitions/flag
102     description:
103       Specify if the radio eeprom partition is written in big-endian
104
105   mediatek,eeprom-merge-otp:
106     type: boolean
107     description:
108       Merge EEPROM data with OTP data. Can be used on boards where the flash
109       calibration data is generic and specific calibration data should be
110       pulled from the OTP ROM
111
112   mediatek,disable-radar-background:
113     type: boolean
114     description:
115       Disable/enable radar/CAC detection running on a dedicated offchannel
116       chain available on some hw.
117       Background radar/CAC detection allows to avoid the CAC downtime
118       switching on a different channel during CAC detection on the selected
119       radar channel.
120
121   led:
122     type: object
123     $ref: /schemas/leds/common.yaml#
124     additionalProperties: false
125     properties:
126       led-active-low:
127         description:
128           LED is enabled with ground signal.
129         type: boolean
130
131       led-sources:
132         maxItems: 1
133
134   power-limits:
135     type: object
136     additionalProperties: false
137     patternProperties:
138       "^r[0-9]+":
139         type: object
140         additionalProperties: false
141         properties:
142           regdomain:
143             $ref: /schemas/types.yaml#/definitions/string
144             description:
145               Regdomain refers to a legal regulatory region. Different
146               countries define different levels of allowable transmitter
147               power, time that a channel can be occupied, and different
148               available channels
149             enum:
150               - FCC
151               - ETSI
152               - JP
153
154         patternProperties:
155           "^txpower-[256]g$":
156             type: object
157             additionalProperties: false
158             patternProperties:
159               "^b[0-9]+$":
160                 type: object
161                 additionalProperties: false
162                 properties:
163                   channels:
164                     $ref: /schemas/types.yaml#/definitions/uint32-array
165                     minItems: 2
166                     maxItems: 2
167                     description:
168                       Pairs of first and last channel number of the selected
169                       band
170
171                   rates-cck:
172                     $ref: /schemas/types.yaml#/definitions/uint8-array
173                     minItems: 4
174                     maxItems: 4
175                     description:
176                       4 half-dBm per-rate power limit values
177
178                   rates-ofdm:
179                     $ref: /schemas/types.yaml#/definitions/uint8-array
180                     minItems: 8
181                     maxItems: 8
182                     description:
183                       8 half-dBm per-rate power limit values
184
185                   rates-mcs:
186                     $ref: /schemas/types.yaml#/definitions/uint8-matrix
187                     description:
188                       Sets of per-rate power limit values for 802.11n/802.11ac
189                       rates for multiple channel bandwidth settings.
190                       Each set starts with the number of channel bandwidth
191                       settings for which the rate set applies, followed by
192                       either 8 or 10 power limit values. The order of the
193                       channel bandwidth settings is 20, 40, 80 and 160 MHz.
194                     maxItems: 4
195                     items:
196                       minItems: 9
197                       maxItems: 11
198
199                   rates-ru:
200                     $ref: /schemas/types.yaml#/definitions/uint8-matrix
201                     description:
202                       Sets of per-rate power limit values for 802.11ax rates
203                       for multiple channel bandwidth or resource unit settings.
204                       Each set starts with the number of channel bandwidth or
205                       resource unit settings for which the rate set applies,
206                       followed by 12 power limit values. The order of the
207                       channel resource unit settings is RU26, RU52, RU106,
208                       RU242/SU20, RU484/SU40, RU996/SU80 and RU2x996/SU160.
209                     items:
210                       minItems: 13
211                       maxItems: 13
212
213                   txs-delta:
214                     $ref: /schemas/types.yaml#/definitions/uint32-array
215                     description:
216                       Half-dBm power delta for different numbers of antennas
217
218 required:
219   - compatible
220   - reg
221
222 allOf:
223   - $ref: ieee80211.yaml#
224   - if:
225       properties:
226         compatible:
227           contains:
228             enum:
229               - mediatek,mt7981-wmac
230               - mediatek,mt7986-wmac
231     then:
232       properties:
233         interrupts:
234           minItems: 4
235     else:
236       properties:
237         interrupts:
238           maxItems: 1
239
240 unevaluatedProperties: false
241
242 examples:
243   - |
244     pcie0 {
245       #address-cells = <3>;
246       #size-cells = <2>;
247       wifi@0,0 {
248         compatible = "mediatek,mt76";
249         reg = <0x0000 0 0 0 0>;
250         ieee80211-freq-limit = <5000000 6000000>;
251         mediatek,mtd-eeprom = <&factory 0x8000>;
252         big-endian;
253
254         led {
255           led-sources = <2>;
256         };
257
258         power-limits {
259           r0 {
260             regdomain = "FCC";
261             txpower-5g {
262                b0 {
263                    channels = <36 48>;
264                    rates-ofdm = /bits/ 8 <23 23 23 23 23 23 23 23>;
265                    rates-mcs = /bits/ 8 <1 23 23 23 23 23 23 23 23 23 23>,
266                                /bits/ 8 <3 22 22 22 22 22 22 22 22 22 22>;
267                    rates-ru = /bits/ 8 <3 22 22 22 22 22 22 22 22 22 22 22 22>,
268                               /bits/ 8 <4 20 20 20 20 20 20 20 20 20 20 20 20>;
269                };
270                b1 {
271                    channels = <100 181>;
272                    rates-ofdm = /bits/ 8 <14 14 14 14 14 14 14 14>;
273                    rates-mcs = /bits/ 8  <4 14 14 14 14 14 14 14 14 14 14>;
274                    txs-delta = <12 9 6>;
275                    rates-ru = /bits/ 8  <7 14 14 14 14 14 14 14 14 14 14 14 14>;
276                };
277              };
278           };
279         };
280       };
281     };
282
283   - |
284     wifi@10300000 {
285       compatible = "mediatek,mt7628-wmac";
286       reg = <0x10300000 0x100000>;
287
288       interrupt-parent = <&cpuintc>;
289       interrupts = <6>;
290
291       nvmem-cells = <&eeprom>;
292       nvmem-cell-names = "eeprom";
293     };
294
295   - |
296     #include <dt-bindings/interrupt-controller/arm-gic.h>
297     #include <dt-bindings/interrupt-controller/irq.h>
298     wifi@18000000 {
299       compatible = "mediatek,mt7622-wmac";
300       reg = <0x10300000 0x100000>;
301       interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;
302
303       mediatek,infracfg = <&infracfg>;
304
305       power-domains = <&scpsys 3>;
306     };
307
308   - |
309     wifi@18000000 {
310         compatible = "mediatek,mt7986-wmac";
311         resets = <&watchdog 23>;
312         reset-names = "consys";
313         reg = <0x18000000 0x1000000>,
314               <0x10003000 0x1000>,
315               <0x11d10000 0x1000>;
316         interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
317                      <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
318                      <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
319                      <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
320         clocks = <&topckgen 50>,
321                  <&topckgen 62>;
322         clock-names = "mcu", "ap2conn";
323         memory-region = <&wmcpu_emi>;
324     };
This page took 0.058825 seconds and 4 git commands to generate.