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: memory@50000000 {
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-max-microvolt = <900000>;
409
410	regulator-coupled-with = <&mt6358_vsram_gpu_reg>;
411	regulator-coupled-max-spread = <100000>;
412};
413
414&mt6358_vsim1_reg {
415	regulator-min-microvolt = <2700000>;
416	regulator-max-microvolt = <2700000>;
417};
418
419&mt6358_vsim2_reg {
420	regulator-min-microvolt = <2700000>;
421	regulator-max-microvolt = <2700000>;
422};
423
424&mt6358_vsram_gpu_reg {
425	regulator-min-microvolt = <850000>;
426	regulator-max-microvolt = <1000000>;
427
428	regulator-coupled-with = <&mt6358_vgpu_reg>;
429	regulator-coupled-max-spread = <100000>;
430};
431
432&pio {
433	aud_pins_default: audiopins {
434		pins-bus {
435			pinmux = <PINMUX_GPIO97__FUNC_I2S2_MCK>,
436				<PINMUX_GPIO98__FUNC_I2S2_BCK>,
437				<PINMUX_GPIO101__FUNC_I2S2_LRCK>,
438				<PINMUX_GPIO102__FUNC_I2S2_DI>,
439				<PINMUX_GPIO3__FUNC_I2S3_DO>, /*i2s to da7219/max98357*/
440				<PINMUX_GPIO89__FUNC_I2S5_BCK>,
441				<PINMUX_GPIO90__FUNC_I2S5_LRCK>,
442				<PINMUX_GPIO91__FUNC_I2S5_DO>,
443				<PINMUX_GPIO174__FUNC_I2S0_DI>, /*i2s to wifi/bt*/
444				<PINMUX_GPIO136__FUNC_AUD_CLK_MOSI>,
445				<PINMUX_GPIO137__FUNC_AUD_SYNC_MOSI>,
446				<PINMUX_GPIO138__FUNC_AUD_DAT_MOSI0>,
447				<PINMUX_GPIO139__FUNC_AUD_DAT_MOSI1>,
448				<PINMUX_GPIO140__FUNC_AUD_CLK_MISO>,
449				<PINMUX_GPIO141__FUNC_AUD_SYNC_MISO>,
450				<PINMUX_GPIO142__FUNC_AUD_DAT_MISO0>,
451				<PINMUX_GPIO143__FUNC_AUD_DAT_MISO1>; /*mtkaif3.0*/
452		};
453	};
454
455	aud_pins_tdm_out_on: audiotdmouton {
456		pins-bus {
457			pinmux = <PINMUX_GPIO169__FUNC_TDM_BCK_2ND>,
458				<PINMUX_GPIO170__FUNC_TDM_LRCK_2ND>,
459				<PINMUX_GPIO171__FUNC_TDM_DATA0_2ND>,
460				<PINMUX_GPIO172__FUNC_TDM_DATA1_2ND>,
461				<PINMUX_GPIO173__FUNC_TDM_DATA2_2ND>,
462				<PINMUX_GPIO10__FUNC_TDM_DATA3>; /*8ch-i2s to it6505*/
463			drive-strength = <MTK_DRIVE_6mA>;
464		};
465	};
466
467	aud_pins_tdm_out_off: audiotdmoutoff {
468		pins-bus {
469			pinmux = <PINMUX_GPIO169__FUNC_GPIO169>,
470				<PINMUX_GPIO170__FUNC_GPIO170>,
471				<PINMUX_GPIO171__FUNC_GPIO171>,
472				<PINMUX_GPIO172__FUNC_GPIO172>,
473				<PINMUX_GPIO173__FUNC_GPIO173>,
474				<PINMUX_GPIO10__FUNC_GPIO10>;
475			input-enable;
476			bias-pull-down;
477			drive-strength = <MTK_DRIVE_2mA>;
478		};
479	};
480
481	bt_pins: bt-pins {
482		pins-bt-en {
483			pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
484			output-low;
485		};
486	};
487
488	ec_ap_int_odl: ec-ap-int-odl {
489		pins1 {
490			pinmux = <PINMUX_GPIO151__FUNC_GPIO151>;
491			input-enable;
492			bias-pull-up;
493		};
494	};
495
496	h1_int_od_l: h1-int-od-l {
497		pins1 {
498			pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;
499			input-enable;
500		};
501	};
502
503	i2c0_pins: i2c0 {
504		pins-bus {
505			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
506				 <PINMUX_GPIO83__FUNC_SCL0>;
507			mediatek,pull-up-adv = <3>;
508			mediatek,drive-strength-adv = <00>;
509		};
510	};
511
512	i2c1_pins: i2c1 {
513		pins-bus {
514			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
515				 <PINMUX_GPIO84__FUNC_SCL1>;
516			mediatek,pull-up-adv = <3>;
517			mediatek,drive-strength-adv = <00>;
518		};
519	};
520
521	i2c2_pins: i2c2 {
522		pins-bus {
523			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
524				 <PINMUX_GPIO104__FUNC_SDA2>;
525			bias-disable;
526			mediatek,drive-strength-adv = <00>;
527		};
528	};
529
530	i2c3_pins: i2c3 {
531		pins-bus {
532			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
533				 <PINMUX_GPIO51__FUNC_SDA3>;
534			mediatek,pull-up-adv = <3>;
535			mediatek,drive-strength-adv = <00>;
536		};
537	};
538
539	i2c4_pins: i2c4 {
540		pins-bus {
541			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
542				 <PINMUX_GPIO106__FUNC_SDA4>;
543			bias-disable;
544			mediatek,drive-strength-adv = <00>;
545		};
546	};
547
548	i2c5_pins: i2c5 {
549		pins-bus {
550			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
551				 <PINMUX_GPIO49__FUNC_SDA5>;
552			mediatek,pull-up-adv = <3>;
553			mediatek,drive-strength-adv = <00>;
554		};
555	};
556
557	i2c6_pins: i2c6 {
558		pins-bus {
559			pinmux = <PINMUX_GPIO11__FUNC_SCL6>,
560				 <PINMUX_GPIO12__FUNC_SDA6>;
561			bias-disable;
562		};
563	};
564
565	mmc0_pins_default: mmc0-pins-default {
566		pins-cmd-dat {
567			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
568				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
569				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
570				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
571				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
572				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
573				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
574				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
575				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
576			input-enable;
577			drive-strength = <MTK_DRIVE_14mA>;
578			mediatek,pull-up-adv = <01>;
579		};
580
581		pins-clk {
582			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
583			drive-strength = <MTK_DRIVE_14mA>;
584			mediatek,pull-down-adv = <10>;
585		};
586
587		pins-rst {
588			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
589			drive-strength = <MTK_DRIVE_14mA>;
590			mediatek,pull-down-adv = <01>;
591		};
592	};
593
594	mmc0_pins_uhs: mmc0-pins-uhs {
595		pins-cmd-dat {
596			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
597				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
598				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
599				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
600				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
601				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
602				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
603				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
604				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
605			input-enable;
606			drive-strength = <MTK_DRIVE_14mA>;
607			mediatek,pull-up-adv = <01>;
608		};
609
610		pins-clk {
611			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
612			drive-strength = <MTK_DRIVE_14mA>;
613			mediatek,pull-down-adv = <10>;
614		};
615
616		pins-ds {
617			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
618			drive-strength = <MTK_DRIVE_14mA>;
619			mediatek,pull-down-adv = <10>;
620		};
621
622		pins-rst {
623			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
624			drive-strength = <MTK_DRIVE_14mA>;
625			mediatek,pull-up-adv = <01>;
626		};
627	};
628
629	mmc1_pins_default: mmc1-pins-default {
630		pins-cmd-dat {
631			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
632				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
633				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
634				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
635				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
636			input-enable;
637			mediatek,pull-up-adv = <10>;
638		};
639
640		pins-clk {
641			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
642			input-enable;
643			mediatek,pull-down-adv = <10>;
644		};
645	};
646
647	mmc1_pins_uhs: mmc1-pins-uhs {
648		pins-cmd-dat {
649			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
650				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
651				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
652				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
653				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
654			drive-strength = <MTK_DRIVE_6mA>;
655			input-enable;
656			mediatek,pull-up-adv = <10>;
657		};
658
659		pins-clk {
660			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
661			drive-strength = <MTK_DRIVE_8mA>;
662			mediatek,pull-down-adv = <10>;
663			input-enable;
664		};
665	};
666
667	panel_pins_default: panel-pins-default {
668		panel-reset {
669			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>;
670			output-low;
671			bias-pull-up;
672		};
673	};
674
675	pwm0_pin_default: pwm0-pin-default {
676		pins1 {
677			pinmux = <PINMUX_GPIO176__FUNC_GPIO176>;
678			output-high;
679			bias-pull-up;
680		};
681		pins2 {
682			pinmux = <PINMUX_GPIO43__FUNC_DISP_PWM>;
683		};
684	};
685
686	scp_pins: scp {
687		pins-scp-uart {
688			pinmux = <PINMUX_GPIO110__FUNC_TP_URXD1_AO>,
689				 <PINMUX_GPIO112__FUNC_TP_UTXD1_AO>;
690		};
691	};
692
693	spi0_pins: spi0 {
694		pins-spi {
695			pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
696				 <PINMUX_GPIO86__FUNC_GPIO86>,
697				 <PINMUX_GPIO87__FUNC_SPI0_MO>,
698				 <PINMUX_GPIO88__FUNC_SPI0_CLK>;
699			bias-disable;
700		};
701	};
702
703	spi1_pins: spi1 {
704		pins-spi {
705			pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
706				 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
707				 <PINMUX_GPIO163__FUNC_SPI1_A_MO>,
708				 <PINMUX_GPIO164__FUNC_SPI1_A_CLK>;
709			bias-disable;
710		};
711	};
712
713	spi2_pins: spi2 {
714		pins-spi {
715			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
716				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
717				 <PINMUX_GPIO2__FUNC_SPI2_CLK>;
718			bias-disable;
719		};
720		pins-spi-mi {
721			pinmux = <PINMUX_GPIO94__FUNC_SPI2_MI>;
722			mediatek,pull-down-adv = <00>;
723		};
724	};
725
726	spi3_pins: spi3 {
727		pins-spi {
728			pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
729				 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
730				 <PINMUX_GPIO23__FUNC_SPI3_MO>,
731				 <PINMUX_GPIO24__FUNC_SPI3_CLK>;
732			bias-disable;
733		};
734	};
735
736	spi4_pins: spi4 {
737		pins-spi {
738			pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
739				 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
740				 <PINMUX_GPIO19__FUNC_SPI4_MO>,
741				 <PINMUX_GPIO20__FUNC_SPI4_CLK>;
742			bias-disable;
743		};
744	};
745
746	spi5_pins: spi5 {
747		pins-spi {
748			pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
749				 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
750				 <PINMUX_GPIO15__FUNC_SPI5_MO>,
751				 <PINMUX_GPIO16__FUNC_SPI5_CLK>;
752			bias-disable;
753		};
754	};
755
756	uart0_pins_default: uart0-pins-default {
757		pins-rx {
758			pinmux = <PINMUX_GPIO95__FUNC_URXD0>;
759			input-enable;
760			bias-pull-up;
761		};
762		pins-tx {
763			pinmux = <PINMUX_GPIO96__FUNC_UTXD0>;
764		};
765	};
766
767	uart1_pins_default: uart1-pins-default {
768		pins-rx {
769			pinmux = <PINMUX_GPIO121__FUNC_URXD1>;
770			input-enable;
771			bias-pull-up;
772		};
773		pins-tx {
774			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
775		};
776		pins-rts {
777			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
778		};
779		pins-cts {
780			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
781			input-enable;
782		};
783	};
784
785	uart1_pins_sleep: uart1-pins-sleep {
786		pins-rx {
787			pinmux = <PINMUX_GPIO121__FUNC_GPIO121>;
788			input-enable;
789			bias-pull-up;
790		};
791		pins-tx {
792			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
793		};
794		pins-rts {
795			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
796		};
797		pins-cts {
798			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
799			input-enable;
800		};
801	};
802
803	wifi_pins_pwrseq: wifi-pins-pwrseq {
804		pins-wifi-enable {
805			pinmux = <PINMUX_GPIO119__FUNC_GPIO119>;
806			output-low;
807		};
808	};
809
810	wifi_pins_wakeup: wifi-pins-wakeup {
811		pins-wifi-wakeup {
812			pinmux = <PINMUX_GPIO113__FUNC_GPIO113>;
813			input-enable;
814		};
815	};
816};
817
818&pwm0 {
819	status = "okay";
820	pinctrl-names = "default";
821	pinctrl-0 = <&pwm0_pin_default>;
822};
823
824&scp {
825	status = "okay";
826
827	firmware-name = "mediatek/mt8183/scp.img";
828	pinctrl-names = "default";
829	pinctrl-0 = <&scp_pins>;
830
831	cros_ec {
832		compatible = "google,cros-ec-rpmsg";
833		mediatek,rpmsg-name = "cros-ec-rpmsg";
834	};
835};
836
837&mfg_async {
838	domain-supply = <&mt6358_vsram_gpu_reg>;
839};
840
841&mfg {
842	domain-supply = <&mt6358_vgpu_reg>;
843};
844
845&soc_data {
846	status = "okay";
847};
848
849&spi0 {
850	pinctrl-names = "default";
851	pinctrl-0 = <&spi0_pins>;
852	mediatek,pad-select = <0>;
853	status = "okay";
854	cs-gpios = <&pio 86 GPIO_ACTIVE_LOW>;
855
856	cr50@0 {
857		compatible = "google,cr50";
858		reg = <0>;
859		spi-max-frequency = <1000000>;
860		pinctrl-names = "default";
861		pinctrl-0 = <&h1_int_od_l>;
862		interrupt-parent = <&pio>;
863		interrupts = <153 IRQ_TYPE_EDGE_RISING>;
864	};
865};
866
867&spi1 {
868	pinctrl-names = "default";
869	pinctrl-0 = <&spi1_pins>;
870	mediatek,pad-select = <0>;
871	status = "okay";
872
873	w25q64dw: flash@0 {
874		compatible = "winbond,w25q64dw", "jedec,spi-nor";
875		reg = <0>;
876		spi-max-frequency = <25000000>;
877	};
878};
879
880&spi2 {
881	pinctrl-names = "default";
882	pinctrl-0 = <&spi2_pins>;
883	mediatek,pad-select = <0>;
884	status = "okay";
885
886	cros_ec: cros-ec@0 {
887		compatible = "google,cros-ec-spi";
888		reg = <0>;
889		spi-max-frequency = <3000000>;
890		interrupt-parent = <&pio>;
891		interrupts = <151 IRQ_TYPE_LEVEL_LOW>;
892		pinctrl-names = "default";
893		pinctrl-0 = <&ec_ap_int_odl>;
894
895		i2c_tunnel: i2c-tunnel {
896			compatible = "google,cros-ec-i2c-tunnel";
897			google,remote-bus = <1>;
898			#address-cells = <1>;
899			#size-cells = <0>;
900		};
901
902		usbc_extcon: extcon0 {
903			compatible = "google,extcon-usbc-cros-ec";
904			google,usb-port-id = <0>;
905		};
906
907		typec {
908			compatible = "google,cros-ec-typec";
909			#address-cells = <1>;
910			#size-cells = <0>;
911
912			usb_c0: connector@0 {
913				compatible = "usb-c-connector";
914				reg = <0>;
915				power-role = "dual";
916				data-role = "host";
917				try-power-role = "sink";
918			};
919		};
920	};
921};
922
923&spi3 {
924	pinctrl-names = "default";
925	pinctrl-0 = <&spi3_pins>;
926	mediatek,pad-select = <0>;
927	status = "disabled";
928};
929
930&spi4 {
931	pinctrl-names = "default";
932	pinctrl-0 = <&spi4_pins>;
933	mediatek,pad-select = <0>;
934	status = "disabled";
935};
936
937&spi5 {
938	pinctrl-names = "default";
939	pinctrl-0 = <&spi5_pins>;
940	mediatek,pad-select = <0>;
941	status = "disabled";
942};
943
944&ssusb {
945	dr_mode = "host";
946	wakeup-source;
947	vusb33-supply = <&mt6358_vusb_reg>;
948	status = "okay";
949};
950
951&thermal_zones {
952	tboard1 {
953		polling-delay = <1000>; /* milliseconds */
954		polling-delay-passive = <0>; /* milliseconds */
955		thermal-sensors = <&tboard_thermistor1>;
956	};
957
958	tboard2 {
959		polling-delay = <1000>; /* milliseconds */
960		polling-delay-passive = <0>; /* milliseconds */
961		thermal-sensors = <&tboard_thermistor2>;
962	};
963};
964
965&u3phy {
966	status = "okay";
967};
968
969&uart0 {
970	pinctrl-names = "default";
971	pinctrl-0 = <&uart0_pins_default>;
972	status = "okay";
973};
974
975&uart1 {
976	pinctrl-names = "default", "sleep";
977	pinctrl-0 = <&uart1_pins_default>;
978	pinctrl-1 = <&uart1_pins_sleep>;
979	status = "okay";
980	/delete-property/ interrupts;
981	interrupts-extended = <&sysirq GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
982			      <&pio 121 IRQ_TYPE_EDGE_FALLING>;
983
984	bluetooth: bluetooth {
985		pinctrl-names = "default";
986		pinctrl-0 = <&bt_pins>;
987		status = "okay";
988		compatible = "qcom,qca6174-bt";
989		enable-gpios = <&pio 120 0>;
990		clocks = <&clk32k>;
991		firmware-name = "nvm_00440302_i2s.bin";
992	};
993};
994
995&usb_host {
996	#address-cells = <1>;
997	#size-cells = <0>;
998	vusb33-supply = <&mt6358_vusb_reg>;
999	status = "okay";
1000
1001	hub@1 {
1002		compatible = "usb5e3,610";
1003		reg = <1>;
1004	};
1005};
1006
1007#include <arm/cros-ec-sbs.dtsi>
1008