1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (c) 2018 MediaTek Inc.
4 * Author: Ben Ho <ben.ho@mediatek.com>
5 *	   Erin Lo <erin.lo@mediatek.com>
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include "mt8183.dtsi"
11#include "mt6358.dtsi"
12
13/ {
14	aliases {
15		serial0 = &uart0;
16		mmc0 = &mmc0;
17		mmc1 = &mmc1;
18	};
19
20	chosen {
21		stdout-path = "serial0:115200n8";
22	};
23
24	backlight_lcd0: backlight_lcd0 {
25		compatible = "pwm-backlight";
26		pwms = <&pwm0 0 500000>;
27		power-supply = <&bl_pp5000>;
28		enable-gpios = <&pio 176 0>;
29		brightness-levels = <0 1023>;
30		num-interpolated-steps = <1023>;
31		default-brightness-level = <576>;
32		status = "okay";
33	};
34
35	memory@40000000 {
36		device_type = "memory";
37		reg = <0 0x40000000 0 0x80000000>;
38	};
39
40	clk32k: oscillator1 {
41		compatible = "fixed-clock";
42		#clock-cells = <0>;
43		clock-frequency = <32768>;
44		clock-output-names = "clk32k";
45	};
46
47	it6505_pp18_reg: regulator0 {
48		compatible = "regulator-fixed";
49		regulator-name = "it6505_pp18";
50		regulator-min-microvolt = <1800000>;
51		regulator-max-microvolt = <1800000>;
52		gpio = <&pio 178 0>;
53		enable-active-high;
54	};
55
56	lcd_pp3300: regulator1 {
57		compatible = "regulator-fixed";
58		regulator-name = "lcd_pp3300";
59		regulator-min-microvolt = <3300000>;
60		regulator-max-microvolt = <3300000>;
61		regulator-always-on;
62		regulator-boot-on;
63	};
64
65	bl_pp5000: regulator2 {
66		compatible = "regulator-fixed";
67		regulator-name = "bl_pp5000";
68		regulator-min-microvolt = <5000000>;
69		regulator-max-microvolt = <5000000>;
70		regulator-always-on;
71		regulator-boot-on;
72	};
73
74	mmc1_fixed_power: regulator3 {
75		compatible = "regulator-fixed";
76		regulator-name = "mmc1_power";
77		regulator-min-microvolt = <3300000>;
78		regulator-max-microvolt = <3300000>;
79	};
80
81	mmc1_fixed_io: regulator4 {
82		compatible = "regulator-fixed";
83		regulator-name = "mmc1_io";
84		regulator-min-microvolt = <1800000>;
85		regulator-max-microvolt = <1800000>;
86	};
87
88	pp1800_alw: regulator5 {
89		compatible = "regulator-fixed";
90		regulator-name = "pp1800_alw";
91		regulator-always-on;
92		regulator-boot-on;
93		regulator-min-microvolt = <1800000>;
94		regulator-max-microvolt = <1800000>;
95	};
96
97	pp3300_alw: regulator6 {
98		compatible = "regulator-fixed";
99		regulator-name = "pp3300_alw";
100		regulator-always-on;
101		regulator-boot-on;
102		regulator-min-microvolt = <3300000>;
103		regulator-max-microvolt = <3300000>;
104	};
105
106	reserved_memory: reserved-memory {
107		#address-cells = <2>;
108		#size-cells = <2>;
109		ranges;
110
111		scp_mem_reserved: scp_mem_region {
112			compatible = "shared-dma-pool";
113			reg = <0 0x50000000 0 0x2900000>;
114			no-map;
115		};
116	};
117
118	sound: mt8183-sound {
119		mediatek,platform = <&afe>;
120		pinctrl-names = "default",
121				"aud_tdm_out_on",
122				"aud_tdm_out_off";
123		pinctrl-0 = <&aud_pins_default>;
124		pinctrl-1 = <&aud_pins_tdm_out_on>;
125		pinctrl-2 = <&aud_pins_tdm_out_off>;
126		status = "okay";
127	};
128
129	btsco: bt-sco {
130		compatible = "linux,bt-sco";
131	};
132
133	wifi_pwrseq: wifi-pwrseq {
134		compatible = "mmc-pwrseq-simple";
135		pinctrl-names = "default";
136		pinctrl-0 = <&wifi_pins_pwrseq>;
137
138		/* Toggle WIFI_ENABLE to reset the chip. */
139		reset-gpios = <&pio 119 1>;
140	};
141
142	wifi_wakeup: wifi-wakeup {
143		compatible = "gpio-keys";
144		pinctrl-names = "default";
145		pinctrl-0 = <&wifi_pins_wakeup>;
146
147		button-wowlan {
148			label = "Wake on WiFi";
149			gpios = <&pio 113 GPIO_ACTIVE_HIGH>;
150			linux,code = <KEY_WAKEUP>;
151			wakeup-source;
152		};
153	};
154
155	tboard_thermistor1: thermal-sensor1 {
156		compatible = "generic-adc-thermal";
157		#thermal-sensor-cells = <0>;
158		io-channels = <&auxadc 0>;
159		io-channel-names = "sensor-channel";
160		temperature-lookup-table = <    (-5000) 1553
161						0 1488
162						5000 1412
163						10000 1326
164						15000 1232
165						20000 1132
166						25000 1029
167						30000 925
168						35000 823
169						40000 726
170						45000 635
171						50000 552
172						55000 478
173						60000 411
174						65000 353
175						70000 303
176						75000 260
177						80000 222
178						85000 190
179						90000 163
180						95000 140
181						100000 121
182						105000 104
183						110000 90
184						115000 78
185						120000 67
186						125000 59>;
187	};
188
189	tboard_thermistor2: thermal-sensor2 {
190		compatible = "generic-adc-thermal";
191		#thermal-sensor-cells = <0>;
192		io-channels = <&auxadc 1>;
193		io-channel-names = "sensor-channel";
194		temperature-lookup-table = <    (-5000) 1553
195						0 1488
196						5000 1412
197						10000 1326
198						15000 1232
199						20000 1132
200						25000 1029
201						30000 925
202						35000 823
203						40000 726
204						45000 635
205						50000 552
206						55000 478
207						60000 411
208						65000 353
209						70000 303
210						75000 260
211						80000 222
212						85000 190
213						90000 163
214						95000 140
215						100000 121
216						105000 104
217						110000 90
218						115000 78
219						120000 67
220						125000 59>;
221	};
222};
223
224&auxadc {
225	status = "okay";
226};
227
228&cci {
229	proc-supply = <&mt6358_vproc12_reg>;
230};
231
232&cpu0 {
233	proc-supply = <&mt6358_vproc12_reg>;
234};
235
236&cpu1 {
237	proc-supply = <&mt6358_vproc12_reg>;
238};
239
240&cpu2 {
241	proc-supply = <&mt6358_vproc12_reg>;
242};
243
244&cpu3 {
245	proc-supply = <&mt6358_vproc12_reg>;
246};
247
248&cpu4 {
249	proc-supply = <&mt6358_vproc11_reg>;
250};
251
252&cpu5 {
253	proc-supply = <&mt6358_vproc11_reg>;
254};
255
256&cpu6 {
257	proc-supply = <&mt6358_vproc11_reg>;
258};
259
260&cpu7 {
261	proc-supply = <&mt6358_vproc11_reg>;
262};
263
264&dsi0 {
265	status = "okay";
266	#address-cells = <1>;
267	#size-cells = <0>;
268	panel: panel@0 {
269		/* compatible will be set in board dts */
270		reg = <0>;
271		enable-gpios = <&pio 45 0>;
272		pinctrl-names = "default";
273		pinctrl-0 = <&panel_pins_default>;
274		avdd-supply = <&ppvarn_lcd>;
275		avee-supply = <&ppvarp_lcd>;
276		pp1800-supply = <&pp1800_lcd>;
277		backlight = <&backlight_lcd0>;
278		rotation = <270>;
279		port {
280			panel_in: endpoint {
281				remote-endpoint = <&dsi_out>;
282			};
283		};
284	};
285
286	ports {
287		port {
288			dsi_out: endpoint {
289				remote-endpoint = <&panel_in>;
290			};
291		};
292	};
293};
294
295&gic {
296	mediatek,broken-save-restore-fw;
297};
298
299&gpu {
300	mali-supply = <&mt6358_vgpu_reg>;
301};
302
303&i2c0 {
304	pinctrl-names = "default";
305	pinctrl-0 = <&i2c0_pins>;
306	status = "okay";
307	clock-frequency = <400000>;
308	#address-cells = <1>;
309	#size-cells = <0>;
310};
311
312&i2c1 {
313	pinctrl-names = "default";
314	pinctrl-0 = <&i2c1_pins>;
315	status = "okay";
316	clock-frequency = <100000>;
317};
318
319&i2c3 {
320	pinctrl-names = "default";
321	pinctrl-0 = <&i2c3_pins>;
322	status = "okay";
323	clock-frequency = <100000>;
324	#address-cells = <1>;
325	#size-cells = <0>;
326};
327
328&i2c5 {
329	pinctrl-names = "default";
330	pinctrl-0 = <&i2c5_pins>;
331	status = "okay";
332	clock-frequency = <100000>;
333	#address-cells = <1>;
334	#size-cells = <0>;
335};
336
337&i2c6 {
338	pinctrl-names = "default";
339	pinctrl-0 = <&i2c6_pins>;
340	status = "okay";
341	clock-frequency = <100000>;
342};
343
344&mipi_tx0 {
345	status = "okay";
346};
347
348&mmc0 {
349	status = "okay";
350	pinctrl-names = "default", "state_uhs";
351	pinctrl-0 = <&mmc0_pins_default>;
352	pinctrl-1 = <&mmc0_pins_uhs>;
353	bus-width = <8>;
354	max-frequency = <200000000>;
355	cap-mmc-highspeed;
356	mmc-hs200-1_8v;
357	mmc-hs400-1_8v;
358	cap-mmc-hw-reset;
359	no-sdio;
360	no-sd;
361	hs400-ds-delay = <0x12814>;
362	vmmc-supply = <&mt6358_vemc_reg>;
363	vqmmc-supply = <&mt6358_vio18_reg>;
364	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>;
365	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_CK>;
366	non-removable;
367};
368
369&mmc1 {
370	status = "okay";
371	pinctrl-names = "default", "state_uhs";
372	pinctrl-0 = <&mmc1_pins_default>;
373	pinctrl-1 = <&mmc1_pins_uhs>;
374	vmmc-supply = <&mmc1_fixed_power>;
375	vqmmc-supply = <&mmc1_fixed_io>;
376	mmc-pwrseq = <&wifi_pwrseq>;
377	bus-width = <4>;
378	max-frequency = <200000000>;
379	cap-sd-highspeed;
380	sd-uhs-sdr50;
381	sd-uhs-sdr104;
382	keep-power-in-suspend;
383	wakeup-source;
384	cap-sdio-irq;
385	non-removable;
386	no-mmc;
387	no-sd;
388	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>;
389	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
390	#address-cells = <1>;
391	#size-cells = <0>;
392
393	qca_wifi: qca-wifi@1 {
394		compatible = "qcom,ath10k";
395		reg = <1>;
396	};
397};
398
399&mt6358_vdram2_reg {
400	regulator-always-on;
401};
402
403&mt6358codec {
404	Avdd-supply = <&mt6358_vaud28_reg>;
405};
406
407&mt6358_vgpu_reg {
408	regulator-min-microvolt = <625000>;
409	regulator-max-microvolt = <900000>;
410
411	regulator-coupled-with = <&mt6358_vsram_gpu_reg>;
412	regulator-coupled-max-spread = <100000>;
413};
414
415&mt6358_vsim1_reg {
416	regulator-min-microvolt = <2700000>;
417	regulator-max-microvolt = <2700000>;
418};
419
420&mt6358_vsim2_reg {
421	regulator-min-microvolt = <2700000>;
422	regulator-max-microvolt = <2700000>;
423};
424
425&mt6358_vsram_gpu_reg {
426	regulator-min-microvolt = <850000>;
427	regulator-max-microvolt = <1000000>;
428
429	regulator-coupled-with = <&mt6358_vgpu_reg>;
430	regulator-coupled-max-spread = <100000>;
431};
432
433&pio {
434	aud_pins_default: audiopins {
435		pins_bus {
436			pinmux = <PINMUX_GPIO97__FUNC_I2S2_MCK>,
437				<PINMUX_GPIO98__FUNC_I2S2_BCK>,
438				<PINMUX_GPIO101__FUNC_I2S2_LRCK>,
439				<PINMUX_GPIO102__FUNC_I2S2_DI>,
440				<PINMUX_GPIO3__FUNC_I2S3_DO>, /*i2s to da7219/max98357*/
441				<PINMUX_GPIO89__FUNC_I2S5_BCK>,
442				<PINMUX_GPIO90__FUNC_I2S5_LRCK>,
443				<PINMUX_GPIO91__FUNC_I2S5_DO>,
444				<PINMUX_GPIO174__FUNC_I2S0_DI>, /*i2s to wifi/bt*/
445				<PINMUX_GPIO136__FUNC_AUD_CLK_MOSI>,
446				<PINMUX_GPIO137__FUNC_AUD_SYNC_MOSI>,
447				<PINMUX_GPIO138__FUNC_AUD_DAT_MOSI0>,
448				<PINMUX_GPIO139__FUNC_AUD_DAT_MOSI1>,
449				<PINMUX_GPIO140__FUNC_AUD_CLK_MISO>,
450				<PINMUX_GPIO141__FUNC_AUD_SYNC_MISO>,
451				<PINMUX_GPIO142__FUNC_AUD_DAT_MISO0>,
452				<PINMUX_GPIO143__FUNC_AUD_DAT_MISO1>; /*mtkaif3.0*/
453		};
454	};
455
456	aud_pins_tdm_out_on: audiotdmouton {
457		pins_bus {
458			pinmux = <PINMUX_GPIO169__FUNC_TDM_BCK_2ND>,
459				<PINMUX_GPIO170__FUNC_TDM_LRCK_2ND>,
460				<PINMUX_GPIO171__FUNC_TDM_DATA0_2ND>,
461				<PINMUX_GPIO172__FUNC_TDM_DATA1_2ND>,
462				<PINMUX_GPIO173__FUNC_TDM_DATA2_2ND>,
463				<PINMUX_GPIO10__FUNC_TDM_DATA3>; /*8ch-i2s to it6505*/
464			drive-strength = <MTK_DRIVE_6mA>;
465		};
466	};
467
468	aud_pins_tdm_out_off: audiotdmoutoff {
469		pins_bus {
470			pinmux = <PINMUX_GPIO169__FUNC_GPIO169>,
471				<PINMUX_GPIO170__FUNC_GPIO170>,
472				<PINMUX_GPIO171__FUNC_GPIO171>,
473				<PINMUX_GPIO172__FUNC_GPIO172>,
474				<PINMUX_GPIO173__FUNC_GPIO173>,
475				<PINMUX_GPIO10__FUNC_GPIO10>;
476			input-enable;
477			bias-pull-down;
478			drive-strength = <MTK_DRIVE_2mA>;
479		};
480	};
481
482	bt_pins: bt-pins {
483		pins_bt_en {
484			pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
485			output-low;
486		};
487	};
488
489	ec_ap_int_odl: ec_ap_int_odl {
490		pins1 {
491			pinmux = <PINMUX_GPIO151__FUNC_GPIO151>;
492			input-enable;
493			bias-pull-up;
494		};
495	};
496
497	h1_int_od_l: h1_int_od_l {
498		pins1 {
499			pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;
500			input-enable;
501		};
502	};
503
504	i2c0_pins: i2c0 {
505		pins_bus {
506			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
507				 <PINMUX_GPIO83__FUNC_SCL0>;
508			mediatek,pull-up-adv = <3>;
509			mediatek,drive-strength-adv = <00>;
510		};
511	};
512
513	i2c1_pins: i2c1 {
514		pins_bus {
515			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
516				 <PINMUX_GPIO84__FUNC_SCL1>;
517			mediatek,pull-up-adv = <3>;
518			mediatek,drive-strength-adv = <00>;
519		};
520	};
521
522	i2c2_pins: i2c2 {
523		pins_bus {
524			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
525				 <PINMUX_GPIO104__FUNC_SDA2>;
526			bias-disable;
527			mediatek,drive-strength-adv = <00>;
528		};
529	};
530
531	i2c3_pins: i2c3 {
532		pins_bus {
533			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
534				 <PINMUX_GPIO51__FUNC_SDA3>;
535			mediatek,pull-up-adv = <3>;
536			mediatek,drive-strength-adv = <00>;
537		};
538	};
539
540	i2c4_pins: i2c4 {
541		pins_bus {
542			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
543				 <PINMUX_GPIO106__FUNC_SDA4>;
544			bias-disable;
545			mediatek,drive-strength-adv = <00>;
546		};
547	};
548
549	i2c5_pins: i2c5 {
550		pins_bus {
551			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
552				 <PINMUX_GPIO49__FUNC_SDA5>;
553			mediatek,pull-up-adv = <3>;
554			mediatek,drive-strength-adv = <00>;
555		};
556	};
557
558	i2c6_pins: i2c6 {
559		pins_bus {
560			pinmux = <PINMUX_GPIO11__FUNC_SCL6>,
561				 <PINMUX_GPIO12__FUNC_SDA6>;
562			bias-disable;
563		};
564	};
565
566	mmc0_pins_default: mmc0-pins-default {
567		pins_cmd_dat {
568			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
569				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
570				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
571				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
572				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
573				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
574				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
575				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
576				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
577			input-enable;
578			drive-strength = <MTK_DRIVE_14mA>;
579			mediatek,pull-up-adv = <01>;
580		};
581
582		pins_clk {
583			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
584			drive-strength = <MTK_DRIVE_14mA>;
585			mediatek,pull-down-adv = <10>;
586		};
587
588		pins_rst {
589			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
590			drive-strength = <MTK_DRIVE_14mA>;
591			mediatek,pull-down-adv = <01>;
592		};
593	};
594
595	mmc0_pins_uhs: mmc0-pins-uhs {
596		pins_cmd_dat {
597			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
598				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
599				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
600				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
601				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
602				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
603				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
604				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
605				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
606			input-enable;
607			drive-strength = <MTK_DRIVE_14mA>;
608			mediatek,pull-up-adv = <01>;
609		};
610
611		pins_clk {
612			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
613			drive-strength = <MTK_DRIVE_14mA>;
614			mediatek,pull-down-adv = <10>;
615		};
616
617		pins_ds {
618			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
619			drive-strength = <MTK_DRIVE_14mA>;
620			mediatek,pull-down-adv = <10>;
621		};
622
623		pins_rst {
624			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
625			drive-strength = <MTK_DRIVE_14mA>;
626			mediatek,pull-up-adv = <01>;
627		};
628	};
629
630	mmc1_pins_default: mmc1-pins-default {
631		pins_cmd_dat {
632			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
633				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
634				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
635				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
636				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
637			input-enable;
638			mediatek,pull-up-adv = <10>;
639		};
640
641		pins_clk {
642			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
643			input-enable;
644			mediatek,pull-down-adv = <10>;
645		};
646	};
647
648	mmc1_pins_uhs: mmc1-pins-uhs {
649		pins_cmd_dat {
650			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
651				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
652				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
653				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
654				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
655			drive-strength = <MTK_DRIVE_6mA>;
656			input-enable;
657			mediatek,pull-up-adv = <10>;
658		};
659
660		pins_clk {
661			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
662			drive-strength = <MTK_DRIVE_8mA>;
663			mediatek,pull-down-adv = <10>;
664			input-enable;
665		};
666	};
667
668	panel_pins_default: panel_pins_default {
669		panel_reset {
670			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>;
671			output-low;
672			bias-pull-up;
673		};
674	};
675
676	pwm0_pin_default: pwm0_pin_default {
677		pins1 {
678			pinmux = <PINMUX_GPIO176__FUNC_GPIO176>;
679			output-high;
680			bias-pull-up;
681		};
682		pins2 {
683			pinmux = <PINMUX_GPIO43__FUNC_DISP_PWM>;
684		};
685	};
686
687	scp_pins: scp {
688		pins_scp_uart {
689			pinmux = <PINMUX_GPIO110__FUNC_TP_URXD1_AO>,
690				 <PINMUX_GPIO112__FUNC_TP_UTXD1_AO>;
691		};
692	};
693
694	spi0_pins: spi0 {
695		pins_spi{
696			pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
697				 <PINMUX_GPIO86__FUNC_GPIO86>,
698				 <PINMUX_GPIO87__FUNC_SPI0_MO>,
699				 <PINMUX_GPIO88__FUNC_SPI0_CLK>;
700			bias-disable;
701		};
702	};
703
704	spi1_pins: spi1 {
705		pins_spi{
706			pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
707				 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
708				 <PINMUX_GPIO163__FUNC_SPI1_A_MO>,
709				 <PINMUX_GPIO164__FUNC_SPI1_A_CLK>;
710			bias-disable;
711		};
712	};
713
714	spi2_pins: spi2 {
715		pins_spi{
716			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
717				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
718				 <PINMUX_GPIO2__FUNC_SPI2_CLK>;
719			bias-disable;
720		};
721		pins_spi_mi {
722			pinmux = <PINMUX_GPIO94__FUNC_SPI2_MI>;
723			mediatek,pull-down-adv = <00>;
724		};
725	};
726
727	spi3_pins: spi3 {
728		pins_spi{
729			pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
730				 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
731				 <PINMUX_GPIO23__FUNC_SPI3_MO>,
732				 <PINMUX_GPIO24__FUNC_SPI3_CLK>;
733			bias-disable;
734		};
735	};
736
737	spi4_pins: spi4 {
738		pins_spi{
739			pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
740				 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
741				 <PINMUX_GPIO19__FUNC_SPI4_MO>,
742				 <PINMUX_GPIO20__FUNC_SPI4_CLK>;
743			bias-disable;
744		};
745	};
746
747	spi5_pins: spi5 {
748		pins_spi{
749			pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
750				 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
751				 <PINMUX_GPIO15__FUNC_SPI5_MO>,
752				 <PINMUX_GPIO16__FUNC_SPI5_CLK>;
753			bias-disable;
754		};
755	};
756
757	uart0_pins_default: uart0-pins-default {
758		pins_rx {
759			pinmux = <PINMUX_GPIO95__FUNC_URXD0>;
760			input-enable;
761			bias-pull-up;
762		};
763		pins_tx {
764			pinmux = <PINMUX_GPIO96__FUNC_UTXD0>;
765		};
766	};
767
768	uart1_pins_default: uart1-pins-default {
769		pins_rx {
770			pinmux = <PINMUX_GPIO121__FUNC_URXD1>;
771			input-enable;
772			bias-pull-up;
773		};
774		pins_tx {
775			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
776		};
777		pins_rts {
778			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
779			output-enable;
780		};
781		pins_cts {
782			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
783			input-enable;
784		};
785	};
786
787	uart1_pins_sleep: uart1-pins-sleep {
788		pins_rx {
789			pinmux = <PINMUX_GPIO121__FUNC_GPIO121>;
790			input-enable;
791			bias-pull-up;
792		};
793		pins_tx {
794			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
795		};
796		pins_rts {
797			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
798			output-enable;
799		};
800		pins_cts {
801			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
802			input-enable;
803		};
804	};
805
806	wifi_pins_pwrseq: wifi-pins-pwrseq {
807		pins_wifi_enable {
808			pinmux = <PINMUX_GPIO119__FUNC_GPIO119>;
809			output-low;
810		};
811	};
812
813	wifi_pins_wakeup: wifi-pins-wakeup {
814		pins_wifi_wakeup {
815			pinmux = <PINMUX_GPIO113__FUNC_GPIO113>;
816			input-enable;
817		};
818	};
819};
820
821&pwm0 {
822	status = "okay";
823	pinctrl-names = "default";
824	pinctrl-0 = <&pwm0_pin_default>;
825};
826
827&scp {
828	status = "okay";
829	pinctrl-names = "default";
830	pinctrl-0 = <&scp_pins>;
831
832	cros_ec {
833		compatible = "google,cros-ec-rpmsg";
834		mediatek,rpmsg-name = "cros-ec-rpmsg";
835	};
836};
837
838&mfg_async {
839	domain-supply = <&mt6358_vsram_gpu_reg>;
840};
841
842&mfg {
843	domain-supply = <&mt6358_vgpu_reg>;
844};
845
846&soc_data {
847	status = "okay";
848};
849
850&spi0 {
851	pinctrl-names = "default";
852	pinctrl-0 = <&spi0_pins>;
853	mediatek,pad-select = <0>;
854	status = "okay";
855	cs-gpios = <&pio 86 GPIO_ACTIVE_LOW>;
856
857	cr50@0 {
858		compatible = "google,cr50";
859		reg = <0>;
860		spi-max-frequency = <1000000>;
861		pinctrl-names = "default";
862		pinctrl-0 = <&h1_int_od_l>;
863		interrupt-parent = <&pio>;
864		interrupts = <153 IRQ_TYPE_EDGE_RISING>;
865	};
866};
867
868&spi1 {
869	pinctrl-names = "default";
870	pinctrl-0 = <&spi1_pins>;
871	mediatek,pad-select = <0>;
872	status = "okay";
873
874	w25q64dw: flash@0 {
875		compatible = "winbond,w25q64dw", "jedec,spi-nor";
876		reg = <0>;
877		spi-max-frequency = <25000000>;
878	};
879};
880
881&spi2 {
882	pinctrl-names = "default";
883	pinctrl-0 = <&spi2_pins>;
884	mediatek,pad-select = <0>;
885	status = "okay";
886
887	cros_ec: cros-ec@0 {
888		compatible = "google,cros-ec-spi";
889		reg = <0>;
890		spi-max-frequency = <3000000>;
891		interrupt-parent = <&pio>;
892		interrupts = <151 IRQ_TYPE_LEVEL_LOW>;
893		pinctrl-names = "default";
894		pinctrl-0 = <&ec_ap_int_odl>;
895
896		i2c_tunnel: i2c-tunnel {
897			compatible = "google,cros-ec-i2c-tunnel";
898			google,remote-bus = <1>;
899			#address-cells = <1>;
900			#size-cells = <0>;
901		};
902
903		usbc_extcon: extcon0 {
904			compatible = "google,extcon-usbc-cros-ec";
905			google,usb-port-id = <0>;
906		};
907
908		cbas {
909			compatible = "google,cros-cbas";
910		};
911
912		typec {
913			compatible = "google,cros-ec-typec";
914			#address-cells = <1>;
915			#size-cells = <0>;
916
917			usb_c0: connector@0 {
918				compatible = "usb-c-connector";
919				reg = <0>;
920				power-role = "dual";
921				data-role = "host";
922				try-power-role = "sink";
923			};
924		};
925	};
926};
927
928&spi3 {
929	pinctrl-names = "default";
930	pinctrl-0 = <&spi3_pins>;
931	mediatek,pad-select = <0>;
932	status = "disabled";
933};
934
935&spi4 {
936	pinctrl-names = "default";
937	pinctrl-0 = <&spi4_pins>;
938	mediatek,pad-select = <0>;
939	status = "disabled";
940};
941
942&spi5 {
943	pinctrl-names = "default";
944	pinctrl-0 = <&spi5_pins>;
945	mediatek,pad-select = <0>;
946	status = "disabled";
947};
948
949&ssusb {
950	dr_mode = "host";
951	wakeup-source;
952	vusb33-supply = <&mt6358_vusb_reg>;
953	status = "okay";
954};
955
956&thermal_zones {
957	tboard1 {
958		polling-delay = <1000>; /* milliseconds */
959		polling-delay-passive = <0>; /* milliseconds */
960		thermal-sensors = <&tboard_thermistor1>;
961	};
962
963	tboard2 {
964		polling-delay = <1000>; /* milliseconds */
965		polling-delay-passive = <0>; /* milliseconds */
966		thermal-sensors = <&tboard_thermistor2>;
967	};
968};
969
970&u3phy {
971	status = "okay";
972};
973
974&uart0 {
975	pinctrl-names = "default";
976	pinctrl-0 = <&uart0_pins_default>;
977	status = "okay";
978};
979
980&uart1 {
981	pinctrl-names = "default", "sleep";
982	pinctrl-0 = <&uart1_pins_default>;
983	pinctrl-1 = <&uart1_pins_sleep>;
984	status = "okay";
985	/delete-property/ interrupts;
986	interrupts-extended = <&sysirq GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
987			      <&pio 121 IRQ_TYPE_EDGE_FALLING>;
988
989	bluetooth: bluetooth {
990		pinctrl-names = "default";
991		pinctrl-0 = <&bt_pins>;
992		status = "okay";
993		compatible = "qcom,qca6174-bt";
994		enable-gpios = <&pio 120 0>;
995		clocks = <&clk32k>;
996		firmware-name = "nvm_00440302_i2s.bin";
997	};
998};
999
1000&usb_host {
1001	#address-cells = <1>;
1002	#size-cells = <0>;
1003	vusb33-supply = <&mt6358_vusb_reg>;
1004	status = "okay";
1005
1006	hub@1 {
1007		compatible = "usb5e3,610";
1008		reg = <1>;
1009	};
1010};
1011
1012#include <arm/cros-ec-sbs.dtsi>
1013