ipq40xx: add support for Linksys WHW03 V1
[openwrt/staging/nbd.git] / target / linux / ipq40xx / files-6.6 / arch / arm / boot / dts / qcom / qcom-ipq4019-whw03.dts
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 #include <dt-bindings/leds/common.h>
8
9 / {
10 model = "Linksys WHW03 (Velop)";
11 compatible = "linksys,whw03", "qcom,ipq4019";
12
13 aliases {
14 led-boot = &led_blue;
15 led-failsafe = &led_red;
16 led-running = &led_blue;
17 led-upgrade = &led_red;
18 };
19
20 // Default bootargs include rootfstype=ext4 and need to be overriden.
21 chosen {
22 bootargs-append = " rootfstype=squashfs";
23 };
24
25 soc {
26 ess-tcsr@1953000 {
27 compatible = "qcom,tcsr";
28 reg = <0x1953000 0x1000>;
29 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
30 };
31
32
33 tcsr@1949000 {
34 compatible = "qcom,tcsr";
35 reg = <0x1949000 0x100>;
36 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
37 };
38
39 tcsr@194b000 {
40 compatible = "qcom,tcsr";
41 reg = <0x194b000 0x100>;
42 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
43 };
44
45 tcsr@1957000 {
46 compatible = "qcom,tcsr";
47 reg = <0x1957000 0x100>;
48 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
49 };
50 };
51
52
53 keys {
54 compatible = "gpio-keys";
55
56 reset {
57 label = "reset";
58 gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
59 linux,code = <KEY_RESTART>;
60 };
61 };
62 };
63
64
65 &tlmm {
66 mdio_pins: mdio-pinmux {
67 mux-1 {
68 pins = "gpio6";
69 function = "mdio";
70 bias-pull-up;
71 };
72
73 mux-2 {
74 pins = "gpio7";
75 function = "mdc";
76 bias-pull-up;
77 };
78 };
79
80 sd_pins: sd-pinmux {
81 pins = "gpio23", "gpio24", "gpio25", "gpio26",
82 "gpio27", "gpio28", "gpio29", "gpio30",
83 "gpio31", "gpio32";
84 function = "sdio";
85 };
86
87 i2c_0_pins: i2c-0-pinmux {
88 pins = "gpio58", "gpio59";
89 function = "blsp_i2c0";
90 bias-disable;
91 };
92
93 serial_0_pins: serial0-pinmux {
94 pins = "gpio16", "gpio17";
95 function = "blsp_uart0";
96 bias-disable;
97 };
98
99 serial_1_pins: serial1-pinmux {
100 pins = "gpio8", "gpio9", "gpio10", "gpio11";
101 function = "blsp_uart1";
102 bias-disable;
103 };
104
105 spi_0_pins: spi-0-pinmux {
106 pins = "gpio12", "gpio13", "gpio14", "gpio15";
107 function = "blsp_spi0";
108 bias-disable;
109 };
110
111 spi_1_pins: spi-1-pinmux {
112 mux-1 {
113 pins = "gpio44", "gpio46", "gpio47";
114 function = "blsp_spi1";
115 bias-disable;
116 };
117
118 mux-2 {
119 pins = "gpio45", "gpio49";
120 function = "gpio";
121 bias-pull-up;
122 output-high;
123 };
124
125 host-interrupt {
126 pins = "gpio42";
127 function = "gpio";
128 input;
129 };
130 };
131
132 wifi_0_pins: wifi0-pinmux {
133 pins = "gpio52";
134 function = "gpio";
135 drive-strength = <6>;
136 bias-pull-up;
137 output-high;
138 };
139
140 zigbee-0 {
141 gpio-hog;
142 gpios = <29 GPIO_ACTIVE_HIGH>;
143 bias-disable;
144 output-low;
145 };
146
147 zigbee-1 {
148 gpio-hog;
149 gpios = <50 GPIO_ACTIVE_HIGH>;
150 bias-disable;
151 input;
152 };
153
154 bluetooth-enable {
155 gpio-hog;
156 gpios = <32 GPIO_ACTIVE_HIGH>;
157 output-high;
158 };
159 };
160
161 &mdio {
162 status = "okay";
163 pinctrl-0 = <&mdio_pins>;
164 pinctrl-names = "default";
165 reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>;
166 };
167
168 &ethphy0 {
169 status = "disabled";
170 };
171
172 &ethphy1 {
173 status = "disabled";
174 };
175
176 &ethphy2 {
177 status = "disabled";
178 };
179
180 &watchdog {
181 status = "okay";
182 };
183
184 &prng {
185 status = "okay";
186 };
187
188 &blsp_dma {
189 status = "okay";
190 };
191
192 &cryptobam {
193 num-channels = <4>;
194 qcom,num-ees = <2>;
195
196 status = "okay";
197 };
198
199 &crypto {
200 status = "okay";
201 };
202
203 &vqmmc {
204 status = "okay";
205 };
206
207 &blsp1_uart1 {
208 status = "okay";
209 pinctrl-0 = <&serial_0_pins>;
210 pinctrl-names = "default";
211 };
212
213 &blsp1_uart2 {
214 status = "okay";
215 pinctrl-0 = <&serial_1_pins>;
216 pinctrl-names = "default";
217
218 bluetooth {
219 compatible = "csr,8811";
220
221 enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
222 };
223 };
224
225 &blsp1_spi2 {
226 pinctrl-0 = <&spi_1_pins>;
227 pinctrl-names = "default";
228 status = "okay";
229
230 cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
231
232 zigbee@0 {
233 #address-cells = <1>;
234 #size-cells = <0>;
235
236 compatible = "silabs,em3581";
237 reg = <0>;
238 spi-max-frequency = <12000000>;
239 };
240 };
241
242 &blsp1_i2c3 {
243 pinctrl-0 = <&i2c_0_pins>;
244 pinctrl-names = "default";
245
246 status = "okay";
247
248 // RGB LEDs
249 pca9633: led-controller@62 {
250 compatible = "nxp,pca9633";
251 nxp,hw-blink;
252 reg = <0x62>;
253 #address-cells = <1>;
254 #size-cells = <0>;
255
256 led_red: red@0 {
257 color = <LED_COLOR_ID_RED>;
258 function = LED_FUNCTION_INDICATOR;
259 reg = <0>;
260 };
261
262 led_green: green@1 {
263 color = <LED_COLOR_ID_GREEN>;
264 function = LED_FUNCTION_INDICATOR;
265 reg = <1>;
266 };
267
268 led_blue: blue@2 {
269 color = <LED_COLOR_ID_BLUE>;
270 function = LED_FUNCTION_INDICATOR;
271 reg = <2>;
272 };
273 };
274 };
275
276 &sdhci {
277 vqmmc-supply = <&vqmmc>;
278 pinctrl-0 = <&sd_pins>;
279 pinctrl-names = "default";
280 cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
281 sd-ldo-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
282 status = "okay";
283 };
284
285 &pcie0 {
286 status = "okay";
287
288 perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
289 wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>;
290 clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
291
292 bridge@0,0 {
293 reg = <0x00000000 0 0 0 0>;
294 #address-cells = <3>;
295 #size-cells = <2>;
296 ranges;
297
298 wifi2: wifi@1,0 {
299 compatible = "qcom,ath10k";
300 reg = <0x00000000 0 0 0 0>;
301 };
302 };
303 };
304
305 &qpic_bam {
306 status = "okay";
307 };
308
309 &gmac {
310 status = "okay";
311 };
312
313 &switch {
314 status = "okay";
315 };
316
317 &swport4 {
318 status = "okay";
319 label = "lan";
320 };
321
322 &swport5 {
323 status = "okay";
324 label = "wan";
325 };
326
327 &wifi0 {
328 pinctrl-0 = <&wifi_0_pins>;
329 pinctrl-names = "default";
330
331 status = "okay";
332
333 qcom,coexist-support = <1>;
334 qcom,coexist-gpio-pin = <52>;
335
336 qcom,ath10k-calibration-variant = "linksys-whw03";
337 };
338
339 &wifi1 {
340 status = "okay";
341
342 ieee80211-freq-limit = <5170000 5330000>;
343 qcom,ath10k-calibration-variant = "linksys-whw03";
344 };
345
346 &wifi2 {
347 status = "okay";
348
349 ieee80211-freq-limit = <5490000 5835000>;
350 qcom,ath10k-calibration-variant = "linksys-whw03";
351 };