ipq40xx: convert to DSA and enable Netgear Orbi devices
[openwrt/staging/hauke.git] / target / linux / ipq40xx / files / arch / arm / boot / dts / qcom-ipq4019-orbi.dtsi
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "qcom-ipq4019.dtsi"
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/soc/qcom,tcsr.h>
7
8 / {
9 aliases {
10 led-boot = &led_status_white;
11 led-failsafe = &led_status_red;
12 led-running = &led_status_green;
13 led-upgrade = &led_status_blue;
14 label-mac-device = &gmac;
15 };
16
17 soc {
18 rng@22000 {
19 status = "okay";
20 };
21
22 mdio@90000 {
23 status = "okay";
24
25 pinctrl-0 = <&mdio_pins>;
26 pinctrl-names = "default";
27 };
28
29 counter@4a1000 {
30 compatible = "qcom,qca-gcnt";
31 reg = <0x4a1000 0x4>;
32 };
33
34 tcsr@1949000 {
35 compatible = "qcom,tcsr";
36 reg = <0x1949000 0x100>;
37 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
38 };
39
40 tcsr@194b000 {
41 status = "okay";
42
43 compatible = "qcom,tcsr";
44 reg = <0x194b000 0x100>;
45 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
46 };
47
48 ess_tcsr@1953000 {
49 compatible = "qcom,tcsr";
50 reg = <0x1953000 0x1000>;
51 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
52 };
53
54 tcsr@1957000 {
55 compatible = "qcom,tcsr";
56 reg = <0x1957000 0x100>;
57 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
58 };
59
60 crypto@8e3a000 {
61 status = "okay";
62 };
63
64 watchdog@b017000 {
65 status = "okay";
66 };
67 };
68
69 keys {
70 compatible = "gpio-keys";
71
72 reset {
73 label = "reset";
74 gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
75 linux,code = <KEY_RESTART>;
76 };
77
78 wps {
79 label = "wps";
80 gpios = <&tlmm 49 GPIO_ACTIVE_LOW>;
81 linux,code = <KEY_WPS_BUTTON>;
82 };
83 };
84
85 leds {
86 compatible = "gpio-leds";
87
88 led-0 {
89 label = "green:power";
90 gpios = <&tlmm 63 GPIO_ACTIVE_HIGH>;
91 default-state = "on";
92 };
93
94 led-1 {
95 label = "red:power";
96 gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
97 panic-indicator;
98 };
99
100 led_status_green: led-2 {
101 label = "green:status";
102 gpios = <&tlmm 53 GPIO_ACTIVE_HIGH>;
103 };
104
105 led_status_red: led-3 {
106 label = "red:status";
107 gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
108 };
109
110 led_status_blue: led-4 {
111 label = "blue:status";
112 gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>;
113 };
114
115 led_status_white: led-5 {
116 label = "white:status";
117 gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
118 };
119 };
120 };
121
122 &vqmmc {
123 status = "okay";
124 };
125
126 &sdhci {
127 status = "okay";
128
129 pinctrl-0 = <&sd_pins>;
130 pinctrl-names = "default";
131 cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
132 vqmmc-supply = <&vqmmc>;
133 };
134
135 &qpic_bam {
136 status = "okay";
137 };
138
139 &tlmm {
140 mdio_pins: mdio_pinmux {
141 mux_1 {
142 pins = "gpio6";
143 function = "mdio";
144 bias-pull-up;
145 };
146
147 mux_2 {
148 pins = "gpio7";
149 function = "mdc";
150 bias-pull-up;
151 };
152 };
153
154 serial_pins: serial_pinmux {
155 mux {
156 pins = "gpio16", "gpio17";
157 function = "blsp_uart0";
158 bias-disable;
159 };
160 };
161
162 i2c_0_pins: i2c_0_pinmux {
163 pinmux {
164 function = "blsp_i2c0";
165 pins = "gpio58", "gpio59";
166 bias-disable;
167 };
168 };
169
170 sd_pins: sd_pins {
171 pinmux {
172 function = "sdio";
173 pins = "gpio23", "gpio24", "gpio25", "gpio26",
174 "gpio28", "gpio29", "gpio30", "gpio31";
175 drive-strength = <10>;
176 };
177
178 pinmux_sd_clk {
179 function = "sdio";
180 pins = "gpio27";
181 drive-strength = <16>;
182 };
183
184 pinmux_sd7 {
185 function = "sdio";
186 pins = "gpio32";
187 drive-strength = <10>;
188 bias-disable;
189 };
190 };
191 };
192
193 &blsp_dma {
194 status = "okay";
195 };
196
197 &blsp1_i2c3 {
198 pinctrl-0 = <&i2c_0_pins>;
199 pinctrl-names = "default";
200
201 status = "okay";
202
203 led-controller@27 {
204 #address-cells = <1>;
205 #size-cells = <0>;
206 compatible = "ti,tlc59108"; /* really is tlc59208f */
207 reg = <0x27>;
208
209 led0@0 {
210 label = "rgb:led0";
211 reg = <0x0>;
212 linux,default-trigger = "default-on";
213 };
214
215 led1@1 {
216 label = "rgb:led1";
217 reg = <0x1>;
218 linux,default-trigger = "default-on";
219 };
220
221 led2@2 {
222 label = "rgb:led2";
223 reg = <0x2>;
224 linux,default-trigger = "default-on";
225 };
226
227 led3@3 {
228 label = "rgb:led3";
229 reg = <0x3>;
230 linux,default-trigger = "default-on";
231 };
232
233 led4@4 {
234 label = "rgb:led4";
235 reg = <0x4>;
236 linux,default-trigger = "default-on";
237 };
238
239 led5@5 {
240 label = "rgb:led5";
241 reg = <0x5>;
242 linux,default-trigger = "default-on";
243 };
244
245 led6@6 {
246 label = "rgb:led6";
247 reg = <0x6>;
248 linux,default-trigger = "default-on";
249 };
250
251 led7@7 {
252 label = "rgb:led7";
253 reg = <0x7>;
254 linux,default-trigger = "default-on";
255 };
256 };
257 };
258
259 &blsp1_uart1 {
260 status = "okay";
261
262 pinctrl-0 = <&serial_pins>;
263 pinctrl-names = "default";
264 };
265
266 &cryptobam {
267 status = "okay";
268 };
269
270 &gmac {
271 status = "okay";
272 };
273
274 &switch {
275 status = "okay";
276 };
277
278 &swport1 {
279 status = "okay";
280
281 label = "wan";
282 };
283
284 &swport2 {
285 status = "okay";
286
287 label = "lan1";
288 };
289
290 &swport3 {
291 status = "okay";
292
293 label = "lan2";
294 };
295
296 &swport4 {
297 status = "okay";
298
299 label = "lan3";
300 };
301
302 &ethphy4 {
303 status = "disabled";
304 };
305
306 &pcie0 {
307 status = "okay";
308
309 perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
310 wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
311
312 bridge@0,0 {
313 reg = <0x00000000 0 0 0 0>;
314 #address-cells = <3>;
315 #size-cells = <2>;
316 ranges;
317
318 wifi@1,0 {
319 compatible = "qcom,ath10k";
320 status = "okay";
321 reg = <0x00010000 0 0 0 0>;
322 ieee80211-freq-limit = <5470000 5875000>;
323 qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
324 };
325 };
326 };
327
328 &wifi0 {
329 status = "okay";
330
331 qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
332 };
333
334 &wifi1 {
335 status = "okay";
336
337 qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60";
338 };