blob: 3e2c2e43175e5ab1333e5a7df787b9cb34703a1c [file] [log] [blame]
Lorenzo Bianconi1735e442021-03-28 19:37:48 +02001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
3
4%YAML 1.2
5---
6$id: http://devicetree.org/schemas/net/wireless/mediatek,mt76.yaml#
7$schema: http://devicetree.org/meta-schemas/core.yaml#
8
9title: MediaTek mt76 wireless devices Generic Binding
10
11maintainers:
12 - Felix Fietkau <nbd@nbd.name>
13 - Lorenzo Bianconi <lorenzo@kernel.org>
14 - Ryder Lee <ryder.lee@mediatek.com>
15
16description: |
17 This node provides properties for configuring the MediaTek mt76xx
18 wireless device. The node is expected to be specified as a child
19 node of the PCI controller to which the wireless chip is connected.
20 Alternatively, it can specify the wireless part of the MT7628/MT7688
21 or MT7622 SoC.
22
23allOf:
24 - $ref: ieee80211.yaml#
25
26properties:
27 compatible:
28 enum:
29 - mediatek,mt76
30 - mediatek,mt7628-wmac
31 - mediatek,mt7622-wmac
32
33 reg:
34 maxItems: 1
35
36 interrupts:
37 maxItems: 1
38
39 power-domains:
40 maxItems: 1
41
42 mediatek,infracfg:
43 $ref: /schemas/types.yaml#/definitions/phandle
44 description:
45 Phandle to the infrastructure bus fabric syscon node.
46 This property is MT7622 specific
47
48 ieee80211-freq-limit: true
49
50 mediatek,mtd-eeprom:
51 $ref: /schemas/types.yaml#/definitions/phandle-array
52 description:
53 Phandle to a MTD partition + offset containing EEPROM data
54
55 big-endian:
56 $ref: /schemas/types.yaml#/definitions/flag
57 description:
58 Specify if the radio eeprom partition is written in big-endian
59
60 mediatek,eeprom-merge-otp:
61 type: boolean
62 description:
63 Merge EEPROM data with OTP data. Can be used on boards where the flash
64 calibration data is generic and specific calibration data should be
65 pulled from the OTP ROM
66
67 led:
68 type: object
69 $ref: /schemas/leds/common.yaml#
70 additionalProperties: false
71 properties:
72 led-sources:
73 maxItems: 1
74
Lorenzo Bianconi2de6cce2021-04-13 11:08:35 +020075 power-limits:
76 type: object
77 additionalProperties: false
78 patternProperties:
79 "^r[0-9]+":
80 type: object
81 additionalProperties: false
82 properties:
83 regdomain:
84 $ref: /schemas/types.yaml#/definitions/string
85 description:
86 Regdomain refers to a legal regulatory region. Different
87 countries define different levels of allowable transmitter
88 power, time that a channel can be occupied, and different
89 available channels
90 enum:
91 - FCC
92 - ETSI
93 - JP
94
95 patternProperties:
96 "^txpower-[256]g$":
97 type: object
98 additionalProperties: false
99 patternProperties:
100 "^b[0-9]+$":
101 type: object
102 additionalProperties: false
103 properties:
104 channels:
105 $ref: /schemas/types.yaml#/definitions/uint32-array
106 minItems: 2
107 maxItems: 2
108 description:
109 Pairs of first and last channel number of the selected
110 band
111
112 rates-cck:
113 $ref: /schemas/types.yaml#/definitions/uint8-array
114 minItems: 4
115 maxItems: 4
116 description:
117 4 half-dBm per-rate power limit values
118
119 rates-ofdm:
120 $ref: /schemas/types.yaml#/definitions/uint8-array
121 minItems: 8
122 maxItems: 8
123 description:
124 8 half-dBm per-rate power limit values
125
126 rates-mcs:
127 $ref: /schemas/types.yaml#/definitions/uint8-matrix
128 description:
129 Sets of per-rate power limit values for 802.11n/802.11ac
130 rates for multiple channel bandwidth settings.
131 Each set starts with the number of channel bandwidth
132 settings for which the rate set applies, followed by
133 either 8 or 10 power limit values. The order of the
134 channel bandwidth settings is 20, 40, 80 and 160 MHz.
135 maxItems: 4
136 items:
137 minItems: 9
138 maxItems: 11
139
140 rates-ru:
141 $ref: /schemas/types.yaml#/definitions/uint8-matrix
142 description:
143 Sets of per-rate power limit values for 802.11ax rates
144 for multiple channel bandwidth or resource unit settings.
145 Each set starts with the number of channel bandwidth or
146 resource unit settings for which the rate set applies,
147 followed by 12 power limit values. The order of the
148 channel resource unit settings is RU26, RU52, RU106,
149 RU242/SU20, RU484/SU40, RU996/SU80 and RU2x996/SU160.
150 items:
151 minItems: 13
152 maxItems: 13
153
154 txs-delta:
155 $ref: /schemas/types.yaml#/definitions/uint32-array
156 description:
157 Half-dBm power delta for different numbers of antennas
158
Lorenzo Bianconi1735e442021-03-28 19:37:48 +0200159required:
160 - compatible
161 - reg
162
163additionalProperties: false
164
165examples:
166 - |
167 pcie0 {
168 #address-cells = <3>;
169 #size-cells = <2>;
170 wifi@0,0 {
171 compatible = "mediatek,mt76";
172 reg = <0x0000 0 0 0 0>;
173 ieee80211-freq-limit = <5000000 6000000>;
174 mediatek,mtd-eeprom = <&factory 0x8000>;
175 big-endian;
176
177 led {
178 led-sources = <2>;
179 };
Lorenzo Bianconi2de6cce2021-04-13 11:08:35 +0200180
181 power-limits {
182 r0 {
183 regdomain = "FCC";
184 txpower-5g {
185 b0 {
186 channels = <36 48>;
187 rates-ofdm = /bits/ 8 <23 23 23 23 23 23 23 23>;
188 rates-mcs = /bits/ 8 <1 23 23 23 23 23 23 23 23 23 23>,
189 <3 22 22 22 22 22 22 22 22 22 22>;
190 rates-ru = /bits/ 8 <3 22 22 22 22 22 22 22 22 22 22 22 22>,
191 <4 20 20 20 20 20 20 20 20 20 20 20 20>;
192 };
193 b1 {
194 channels = <100 181>;
195 rates-ofdm = /bits/ 8 <14 14 14 14 14 14 14 14>;
196 rates-mcs = /bits/ 8 <4 14 14 14 14 14 14 14 14 14 14>;
197 txs-delta = <12 9 6>;
198 rates-ru = /bits/ 8 <7 14 14 14 14 14 14 14 14 14 14 14 14>;
199 };
200 };
201 };
202 };
Lorenzo Bianconi1735e442021-03-28 19:37:48 +0200203 };
204 };
205
206 - |
207 wifi@10300000 {
208 compatible = "mediatek,mt7628-wmac";
209 reg = <0x10300000 0x100000>;
210
211 interrupt-parent = <&cpuintc>;
212 interrupts = <6>;
213
214 mediatek,mtd-eeprom = <&factory 0x0>;
215 };
216
217 - |
218 #include <dt-bindings/interrupt-controller/arm-gic.h>
219 #include <dt-bindings/interrupt-controller/irq.h>
220 wifi@18000000 {
221 compatible = "mediatek,mt7622-wmac";
222 reg = <0x10300000 0x100000>;
223 interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_LOW>;
224
225 mediatek,infracfg = <&infracfg>;
226
227 power-domains = <&scpsys 3>;
228 };