1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (C) 2020 MediaTek Inc.
4 * Author: Seiya Wang <seiya.wang@mediatek.com>
5 */
6/dts-v1/;
7#include "mt8192.dtsi"
8#include "mt6359.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/spmi/spmi.h>
11
12/ {
13	aliases {
14		serial0 = &uart0;
15	};
16
17	chosen {
18		stdout-path = "serial0:115200n8";
19	};
20
21	memory@40000000 {
22		device_type = "memory";
23		reg = <0 0x40000000 0 0x80000000>;
24	};
25
26	backlight_lcd0: backlight-lcd0 {
27		compatible = "pwm-backlight";
28		pwms = <&pwm0 0 500000>;
29		power-supply = <&ppvar_sys>;
30		enable-gpios = <&pio 152 0>;
31		brightness-levels = <0 1023>;
32		num-interpolated-steps = <1023>;
33		default-brightness-level = <576>;
34	};
35
36	pp1000_dpbrdg: regulator-1v0-dpbrdg {
37		compatible = "regulator-fixed";
38		regulator-name = "pp1000_dpbrdg";
39		pinctrl-names = "default";
40		pinctrl-0 = <&pp1000_dpbrdg_en_pins>;
41		regulator-min-microvolt = <1000000>;
42		regulator-max-microvolt = <1000000>;
43		enable-active-high;
44		regulator-boot-on;
45		gpio = <&pio 19 GPIO_ACTIVE_HIGH>;
46		vin-supply = <&mt6359_vs2_buck_reg>;
47	};
48
49	pp1000_mipibrdg: regulator-1v0-mipibrdg {
50		compatible = "regulator-fixed";
51		regulator-name = "pp1000_mipibrdg";
52		pinctrl-names = "default";
53		pinctrl-0 = <&pp1000_mipibrdg_en_pins>;
54		regulator-min-microvolt = <1000000>;
55		regulator-max-microvolt = <1000000>;
56		enable-active-high;
57		regulator-boot-on;
58		gpio = <&pio 129 GPIO_ACTIVE_HIGH>;
59		vin-supply = <&mt6359_vs2_buck_reg>;
60	};
61
62	pp1800_dpbrdg: regulator-1v8-dpbrdg {
63		compatible = "regulator-fixed";
64		regulator-name = "pp1800_dpbrdg";
65		pinctrl-names = "default";
66		pinctrl-0 = <&pp1800_dpbrdg_en_pins>;
67		enable-active-high;
68		regulator-boot-on;
69		gpio = <&pio 126 GPIO_ACTIVE_HIGH>;
70		vin-supply = <&mt6359_vio18_ldo_reg>;
71	};
72
73	/* system wide LDO 1.8V power rail */
74	pp1800_ldo_g: regulator-1v8-g {
75		compatible = "regulator-fixed";
76		regulator-name = "pp1800_ldo_g";
77		regulator-always-on;
78		regulator-boot-on;
79		regulator-min-microvolt = <1800000>;
80		regulator-max-microvolt = <1800000>;
81		vin-supply = <&pp3300_g>;
82	};
83
84	pp1800_mipibrdg: regulator-1v8-mipibrdg {
85		compatible = "regulator-fixed";
86		regulator-name = "pp1800_mipibrdg";
87		pinctrl-names = "default";
88		pinctrl-0 = <&pp1800_mipibrdg_en_pins>;
89		enable-active-high;
90		regulator-boot-on;
91		gpio = <&pio 128 GPIO_ACTIVE_HIGH>;
92		vin-supply = <&mt6359_vio18_ldo_reg>;
93	};
94
95	pp3300_dpbrdg: regulator-3v3-dpbrdg {
96		compatible = "regulator-fixed";
97		regulator-name = "pp3300_dpbrdg";
98		pinctrl-names = "default";
99		pinctrl-0 = <&pp3300_dpbrdg_en_pins>;
100		enable-active-high;
101		regulator-boot-on;
102		gpio = <&pio 26 GPIO_ACTIVE_HIGH>;
103		vin-supply = <&pp3300_g>;
104	};
105
106	/* system wide switching 3.3V power rail */
107	pp3300_g: regulator-3v3-g {
108		compatible = "regulator-fixed";
109		regulator-name = "pp3300_g";
110		regulator-always-on;
111		regulator-boot-on;
112		regulator-min-microvolt = <3300000>;
113		regulator-max-microvolt = <3300000>;
114		vin-supply = <&ppvar_sys>;
115	};
116
117	/* system wide LDO 3.3V power rail */
118	pp3300_ldo_z: regulator-3v3-z {
119		compatible = "regulator-fixed";
120		regulator-name = "pp3300_ldo_z";
121		regulator-always-on;
122		regulator-boot-on;
123		regulator-min-microvolt = <3300000>;
124		regulator-max-microvolt = <3300000>;
125		vin-supply = <&ppvar_sys>;
126	};
127
128	pp3300_mipibrdg: regulator-3v3-mipibrdg {
129		compatible = "regulator-fixed";
130		regulator-name = "pp3300_mipibrdg";
131		pinctrl-names = "default";
132		pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
133		enable-active-high;
134		regulator-boot-on;
135		gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
136		vin-supply = <&pp3300_g>;
137	};
138
139	/* separately switched 3.3V power rail */
140	pp3300_u: regulator-3v3-u {
141		compatible = "regulator-fixed";
142		regulator-name = "pp3300_u";
143		regulator-always-on;
144		regulator-boot-on;
145		regulator-min-microvolt = <3300000>;
146		regulator-max-microvolt = <3300000>;
147		/* enable pin wired to GPIO controlled by EC */
148		vin-supply = <&pp3300_g>;
149	};
150
151	pp3300_wlan: regulator-3v3-wlan {
152		compatible = "regulator-fixed";
153		regulator-name = "pp3300_wlan";
154		regulator-always-on;
155		regulator-boot-on;
156		regulator-min-microvolt = <3300000>;
157		regulator-max-microvolt = <3300000>;
158		pinctrl-names = "default";
159		pinctrl-0 = <&pp3300_wlan_pins>;
160		enable-active-high;
161		gpio = <&pio 143 GPIO_ACTIVE_HIGH>;
162	};
163
164	/* system wide switching 5.0V power rail */
165	pp5000_a: regulator-5v0-a {
166		compatible = "regulator-fixed";
167		regulator-name = "pp5000_a";
168		regulator-always-on;
169		regulator-boot-on;
170		regulator-min-microvolt = <5000000>;
171		regulator-max-microvolt = <5000000>;
172		vin-supply = <&ppvar_sys>;
173	};
174
175	/* system wide semi-regulated power rail from battery or USB */
176	ppvar_sys: regulator-var-sys {
177		compatible = "regulator-fixed";
178		regulator-name = "ppvar_sys";
179		regulator-always-on;
180		regulator-boot-on;
181	};
182
183	reserved_memory: reserved-memory {
184		#address-cells = <2>;
185		#size-cells = <2>;
186		ranges;
187
188		scp_mem_reserved: scp@50000000 {
189			compatible = "shared-dma-pool";
190			reg = <0 0x50000000 0 0x2900000>;
191			no-map;
192		};
193
194		wifi_restricted_dma_region: wifi@c0000000 {
195			compatible = "restricted-dma-pool";
196			reg = <0 0xc0000000 0 0x4000000>;
197		};
198	};
199};
200
201&i2c0 {
202	status = "okay";
203
204	clock-frequency = <400000>;
205	pinctrl-names = "default";
206	pinctrl-0 = <&i2c0_pins>;
207
208	touchscreen: touchscreen@10 {
209		reg = <0x10>;
210		interrupts-extended = <&pio 21 IRQ_TYPE_LEVEL_LOW>;
211		pinctrl-names = "default";
212		pinctrl-0 = <&touchscreen_pins>;
213	};
214};
215
216&i2c1 {
217	status = "okay";
218
219	clock-frequency = <400000>;
220	pinctrl-names = "default";
221	pinctrl-0 = <&i2c1_pins>;
222};
223
224&i2c2 {
225	status = "okay";
226
227	clock-frequency = <400000>;
228	clock-stretch-ns = <12600>;
229	pinctrl-names = "default";
230	pinctrl-0 = <&i2c2_pins>;
231
232	trackpad@15 {
233		compatible = "elan,ekth3000";
234		reg = <0x15>;
235		interrupts-extended = <&pio 15 IRQ_TYPE_LEVEL_LOW>;
236		pinctrl-names = "default";
237		pinctrl-0 = <&trackpad_pins>;
238		vcc-supply = <&pp3300_u>;
239		wakeup-source;
240	};
241};
242
243&i2c3 {
244	status = "okay";
245
246	clock-frequency = <400000>;
247	pinctrl-names = "default";
248	pinctrl-0 = <&i2c3_pins>;
249};
250
251&i2c7 {
252	status = "okay";
253
254	clock-frequency = <400000>;
255	pinctrl-names = "default";
256	pinctrl-0 = <&i2c7_pins>;
257};
258
259&mmc0 {
260	status = "okay";
261
262	pinctrl-names = "default", "state_uhs";
263	pinctrl-0 = <&mmc0_default_pins>;
264	pinctrl-1 = <&mmc0_uhs_pins>;
265	bus-width = <8>;
266	max-frequency = <200000000>;
267	vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
268	vqmmc-supply = <&mt6359_vufs_ldo_reg>;
269	cap-mmc-highspeed;
270	mmc-hs200-1_8v;
271	mmc-hs400-1_8v;
272	supports-cqe;
273	cap-mmc-hw-reset;
274	mmc-hs400-enhanced-strobe;
275	hs400-ds-delay = <0x12814>;
276	no-sdio;
277	no-sd;
278	non-removable;
279};
280
281&mmc1 {
282	status = "okay";
283
284	pinctrl-names = "default", "state_uhs";
285	pinctrl-0 = <&mmc1_default_pins>;
286	pinctrl-1 = <&mmc1_uhs_pins>;
287	bus-width = <4>;
288	max-frequency = <200000000>;
289	cd-gpios = <&pio 17 GPIO_ACTIVE_LOW>;
290	vmmc-supply = <&mt6360_ldo5_reg>;
291	vqmmc-supply = <&mt6360_ldo3_reg>;
292	cap-sd-highspeed;
293	sd-uhs-sdr50;
294	sd-uhs-sdr104;
295	no-sdio;
296	no-mmc;
297};
298
299/* for CORE */
300&mt6359_vgpu11_buck_reg {
301	regulator-always-on;
302};
303
304&mt6359_vgpu11_sshub_buck_reg {
305	regulator-always-on;
306	regulator-min-microvolt = <575000>;
307	regulator-max-microvolt = <575000>;
308};
309
310&mt6359_vrf12_ldo_reg {
311	regulator-always-on;
312};
313
314&mt6359_vufs_ldo_reg {
315	regulator-always-on;
316};
317
318&mt6359codec {
319	mediatek,dmic-mode = <1>; /* one-wire */
320	mediatek,mic-type-0 = <2>; /* DMIC */
321	mediatek,mic-type-2 = <2>; /* DMIC */
322};
323
324&nor_flash {
325	status = "okay";
326
327	pinctrl-names = "default";
328	pinctrl-0 = <&nor_flash_pins>;
329	assigned-clocks = <&topckgen CLK_TOP_SFLASH_SEL>;
330	assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6_D8>;
331
332	flash@0 {
333		compatible = "winbond,w25q64jwm", "jedec,spi-nor";
334		reg = <0>;
335		spi-max-frequency = <52000000>;
336		spi-rx-bus-width = <2>;
337		spi-tx-bus-width = <2>;
338	};
339};
340
341&pcie {
342	pinctrl-names = "default";
343	pinctrl-0 = <&pcie_pins>;
344
345	pcie0: pcie@0,0 {
346		device_type = "pci";
347		reg = <0x0000 0 0 0 0>;
348		num-lanes = <1>;
349		bus-range = <0x1 0x1>;
350
351		#address-cells = <3>;
352		#size-cells = <2>;
353		ranges;
354
355		wifi: wifi@0,0 {
356			reg = <0x10000 0 0 0 0x100000>,
357			      <0x10000 0 0x100000 0 0x100000>;
358			memory-region = <&wifi_restricted_dma_region>;
359		};
360	};
361};
362
363&pio {
364	/* 220 lines */
365	gpio-line-names = "I2S_DP_LRCK",
366			  "IS_DP_BCLK",
367			  "I2S_DP_MCLK",
368			  "I2S_DP_DATAOUT",
369			  "SAR0_INT_ODL",
370			  "EC_AP_INT_ODL",
371			  "EDPBRDG_INT_ODL",
372			  "DPBRDG_INT_ODL",
373			  "DPBRDG_PWREN",
374			  "DPBRDG_RST_ODL",
375			  "I2S_HP_MCLK",
376			  "I2S_HP_BCK",
377			  "I2S_HP_LRCK",
378			  "I2S_HP_DATAIN",
379			  /*
380			   * AP_FLASH_WP_L is crossystem ABI. Schematics
381			   * call it AP_FLASH_WP_ODL.
382			   */
383			  "AP_FLASH_WP_L",
384			  "TRACKPAD_INT_ODL",
385			  "EC_AP_HPD_OD",
386			  "SD_CD_ODL",
387			  "HP_INT_ODL_ALC",
388			  "EN_PP1000_DPBRDG",
389			  "AP_GPIO20",
390			  "TOUCH_INT_L_1V8",
391			  "UART_BT_WAKE_ODL",
392			  "AP_GPIO23",
393			  "AP_SPI_FLASH_CS_L",
394			  "AP_SPI_FLASH_CLK",
395			  "EN_PP3300_DPBRDG_DX",
396			  "AP_SPI_FLASH_MOSI",
397			  "AP_SPI_FLASH_MISO",
398			  "I2S_HP_DATAOUT",
399			  "AP_GPIO30",
400			  "I2S_SPKR_MCLK",
401			  "I2S_SPKR_BCLK",
402			  "I2S_SPKR_LRCK",
403			  "I2S_SPKR_DATAIN",
404			  "I2S_SPKR_DATAOUT",
405			  "AP_SPI_H1_TPM_CLK",
406			  "AP_SPI_H1_TPM_CS_L",
407			  "AP_SPI_H1_TPM_MISO",
408			  "AP_SPI_H1_TPM_MOSI",
409			  "BL_PWM",
410			  "EDPBRDG_PWREN",
411			  "EDPBRDG_RST_ODL",
412			  "EN_PP3300_HUB",
413			  "HUB_RST_L",
414			  "",
415			  "",
416			  "",
417			  "",
418			  "",
419			  "",
420			  "SD_CLK",
421			  "SD_CMD",
422			  "SD_DATA3",
423			  "SD_DATA0",
424			  "SD_DATA2",
425			  "SD_DATA1",
426			  "",
427			  "",
428			  "",
429			  "",
430			  "",
431			  "",
432			  "PCIE_WAKE_ODL",
433			  "PCIE_RST_L",
434			  "PCIE_CLKREQ_ODL",
435			  "",
436			  "",
437			  "",
438			  "",
439			  "",
440			  "",
441			  "",
442			  "",
443			  "",
444			  "",
445			  "",
446			  "",
447			  "",
448			  "",
449			  "",
450			  "",
451			  "",
452			  "",
453			  "",
454			  "",
455			  "",
456			  "",
457			  "",
458			  "SPMI_SCL",
459			  "SPMI_SDA",
460			  "AP_GOOD",
461			  "UART_DBG_TX_AP_RX",
462			  "UART_AP_TX_DBG_RX",
463			  "UART_AP_TX_BT_RX",
464			  "UART_BT_TX_AP_RX",
465			  "MIPI_DPI_D0_R",
466			  "MIPI_DPI_D1_R",
467			  "MIPI_DPI_D2_R",
468			  "MIPI_DPI_D3_R",
469			  "MIPI_DPI_D4_R",
470			  "MIPI_DPI_D5_R",
471			  "MIPI_DPI_D6_R",
472			  "MIPI_DPI_D7_R",
473			  "MIPI_DPI_D8_R",
474			  "MIPI_DPI_D9_R",
475			  "MIPI_DPI_D10_R",
476			  "",
477			  "",
478			  "MIPI_DPI_DE_R",
479			  "MIPI_DPI_D11_R",
480			  "MIPI_DPI_VSYNC_R",
481			  "MIPI_DPI_CLK_R",
482			  "MIPI_DPI_HSYNC_R",
483			  "PCM_BT_DATAIN",
484			  "PCM_BT_SYNC",
485			  "PCM_BT_DATAOUT",
486			  "PCM_BT_CLK",
487			  "AP_I2C_AUDIO_SCL",
488			  "AP_I2C_AUDIO_SDA",
489			  "SCP_I2C_SCL",
490			  "SCP_I2C_SDA",
491			  "AP_I2C_WLAN_SCL",
492			  "AP_I2C_WLAN_SDA",
493			  "AP_I2C_DPBRDG_SCL",
494			  "AP_I2C_DPBRDG_SDA",
495			  "EN_PP1800_DPBRDG_DX",
496			  "EN_PP3300_EDP_DX",
497			  "EN_PP1800_EDPBRDG_DX",
498			  "EN_PP1000_EDPBRDG",
499			  "SCP_JTAG0_TDO",
500			  "SCP_JTAG0_TDI",
501			  "SCP_JTAG0_TMS",
502			  "SCP_JTAG0_TCK",
503			  "SCP_JTAG0_TRSTN",
504			  "EN_PP3000_VMC_PMU",
505			  "EN_PP3300_DISPLAY_DX",
506			  "TOUCH_RST_L_1V8",
507			  "TOUCH_REPORT_DISABLE",
508			  "",
509			  "",
510			  "AP_I2C_TRACKPAD_SCL_1V8",
511			  "AP_I2C_TRACKPAD_SDA_1V8",
512			  "EN_PP3300_WLAN",
513			  "BT_KILL_L",
514			  "WIFI_KILL_L",
515			  "SET_VMC_VOLT_AT_1V8",
516			  "EN_SPK",
517			  "AP_WARM_RST_REQ",
518			  "",
519			  "",
520			  "EN_PP3000_SD_S3",
521			  "AP_EDP_BKLTEN",
522			  "",
523			  "",
524			  "",
525			  "AP_SPI_EC_CLK",
526			  "AP_SPI_EC_CS_L",
527			  "AP_SPI_EC_MISO",
528			  "AP_SPI_EC_MOSI",
529			  "AP_I2C_EDPBRDG_SCL",
530			  "AP_I2C_EDPBRDG_SDA",
531			  "MT6315_PROC_INT",
532			  "MT6315_GPU_INT",
533			  "UART_SERVO_TX_SCP_RX",
534			  "UART_SCP_TX_SERVO_RX",
535			  "BT_RTS_AP_CTS",
536			  "AP_RTS_BT_CTS",
537			  "UART_AP_WAKE_BT_ODL",
538			  "WLAN_ALERT_ODL",
539			  "EC_IN_RW_ODL",
540			  "H1_AP_INT_ODL",
541			  "",
542			  "",
543			  "",
544			  "",
545			  "",
546			  "",
547			  "",
548			  "",
549			  "",
550			  "",
551			  "",
552			  "MSDC0_CMD",
553			  "MSDC0_DAT0",
554			  "MSDC0_DAT2",
555			  "MSDC0_DAT4",
556			  "MSDC0_DAT6",
557			  "MSDC0_DAT1",
558			  "MSDC0_DAT5",
559			  "MSDC0_DAT7",
560			  "MSDC0_DSL",
561			  "MSDC0_CLK",
562			  "MSDC0_DAT3",
563			  "MSDC0_RST_L",
564			  "SCP_VREQ_VAO",
565			  "AUD_DAT_MOSI2",
566			  "AUD_NLE_MOSI1",
567			  "AUD_NLE_MOSI0",
568			  "AUD_DAT_MISO2",
569			  "AP_I2C_SAR_SDA",
570			  "AP_I2C_SAR_SCL",
571			  "AP_I2C_PWR_SCL",
572			  "AP_I2C_PWR_SDA",
573			  "AP_I2C_TS_SCL_1V8",
574			  "AP_I2C_TS_SDA_1V8",
575			  "SRCLKENA0",
576			  "SRCLKENA1",
577			  "AP_EC_WATCHDOG_L",
578			  "PWRAP_SPI0_MI",
579			  "PWRAP_SPI0_CSN",
580			  "PWRAP_SPI0_MO",
581			  "PWRAP_SPI0_CK",
582			  "AP_RTC_CLK32K",
583			  "AUD_CLK_MOSI",
584			  "AUD_SYNC_MOSI",
585			  "AUD_DAT_MOSI0",
586			  "AUD_DAT_MOSI1",
587			  "AUD_DAT_MISO0",
588			  "AUD_DAT_MISO1";
589
590	cr50_int: cr50-irq-default-pins {
591		pins-gsc-ap-int-odl {
592			pinmux = <PINMUX_GPIO171__FUNC_GPIO171>;
593			input-enable;
594		};
595	};
596
597	cros_ec_int: cros-ec-irq-default-pins {
598		pins-ec-ap-int-odl {
599			pinmux = <PINMUX_GPIO5__FUNC_GPIO5>;
600			input-enable;
601			bias-pull-up;
602		};
603	};
604
605	i2c0_pins: i2c0-default-pins {
606		pins-bus {
607			pinmux = <PINMUX_GPIO204__FUNC_SCL0>,
608				 <PINMUX_GPIO205__FUNC_SDA0>;
609			bias-pull-up = <MTK_PULL_SET_RSEL_011>;
610			drive-strength-microamp = <1000>;
611		};
612	};
613
614	i2c1_pins: i2c1-default-pins {
615		pins-bus {
616			pinmux = <PINMUX_GPIO118__FUNC_SCL1>,
617				 <PINMUX_GPIO119__FUNC_SDA1>;
618			bias-pull-up = <MTK_PULL_SET_RSEL_011>;
619			drive-strength-microamp = <1000>;
620		};
621	};
622
623	i2c2_pins: i2c2-default-pins {
624		pins-bus {
625			pinmux = <PINMUX_GPIO141__FUNC_SCL2>,
626				 <PINMUX_GPIO142__FUNC_SDA2>;
627			bias-pull-up = <MTK_PULL_SET_RSEL_011>;
628		};
629	};
630
631	i2c3_pins: i2c3-default-pins {
632		pins-bus {
633			pinmux = <PINMUX_GPIO160__FUNC_SCL3>,
634				 <PINMUX_GPIO161__FUNC_SDA3>;
635			bias-disable;
636			drive-strength-microamp = <1000>;
637		};
638	};
639
640	i2c7_pins: i2c7-default-pins {
641		pins-bus {
642			pinmux = <PINMUX_GPIO124__FUNC_SCL7>,
643				 <PINMUX_GPIO125__FUNC_SDA7>;
644			bias-disable;
645			drive-strength-microamp = <1000>;
646		};
647	};
648
649	mmc0_default_pins: mmc0-default-pins {
650		pins-cmd-dat {
651			pinmux = <PINMUX_GPIO184__FUNC_MSDC0_DAT0>,
652				 <PINMUX_GPIO188__FUNC_MSDC0_DAT1>,
653				 <PINMUX_GPIO185__FUNC_MSDC0_DAT2>,
654				 <PINMUX_GPIO193__FUNC_MSDC0_DAT3>,
655				 <PINMUX_GPIO186__FUNC_MSDC0_DAT4>,
656				 <PINMUX_GPIO189__FUNC_MSDC0_DAT5>,
657				 <PINMUX_GPIO187__FUNC_MSDC0_DAT6>,
658				 <PINMUX_GPIO190__FUNC_MSDC0_DAT7>,
659				 <PINMUX_GPIO183__FUNC_MSDC0_CMD>;
660			input-enable;
661			drive-strength = <8>;
662			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
663		};
664
665		pins-clk {
666			pinmux = <PINMUX_GPIO192__FUNC_MSDC0_CLK>;
667			drive-strength = <8>;
668			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
669		};
670
671		pins-rst {
672			pinmux = <PINMUX_GPIO194__FUNC_MSDC0_RSTB>;
673			drive-strength = <8>;
674			bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
675		};
676	};
677
678	mmc0_uhs_pins: mmc0-uhs-pins {
679		pins-cmd-dat {
680			pinmux = <PINMUX_GPIO184__FUNC_MSDC0_DAT0>,
681				 <PINMUX_GPIO188__FUNC_MSDC0_DAT1>,
682				 <PINMUX_GPIO185__FUNC_MSDC0_DAT2>,
683				 <PINMUX_GPIO193__FUNC_MSDC0_DAT3>,
684				 <PINMUX_GPIO186__FUNC_MSDC0_DAT4>,
685				 <PINMUX_GPIO189__FUNC_MSDC0_DAT5>,
686				 <PINMUX_GPIO187__FUNC_MSDC0_DAT6>,
687				 <PINMUX_GPIO190__FUNC_MSDC0_DAT7>,
688				 <PINMUX_GPIO183__FUNC_MSDC0_CMD>;
689			input-enable;
690			drive-strength = <10>;
691			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
692		};
693
694		pins-clk {
695			pinmux = <PINMUX_GPIO192__FUNC_MSDC0_CLK>;
696			drive-strength = <10>;
697			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
698		};
699
700		pins-rst {
701			pinmux = <PINMUX_GPIO194__FUNC_MSDC0_RSTB>;
702			drive-strength = <8>;
703			bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
704		};
705
706		pins-ds {
707			pinmux = <PINMUX_GPIO191__FUNC_MSDC0_DSL>;
708			drive-strength = <10>;
709			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
710		};
711	};
712
713	mmc1_default_pins: mmc1-default-pins {
714		pins-cmd-dat {
715			pinmux = <PINMUX_GPIO54__FUNC_MSDC1_DAT0>,
716				 <PINMUX_GPIO56__FUNC_MSDC1_DAT1>,
717				 <PINMUX_GPIO55__FUNC_MSDC1_DAT2>,
718				 <PINMUX_GPIO53__FUNC_MSDC1_DAT3>,
719				 <PINMUX_GPIO52__FUNC_MSDC1_CMD>;
720			input-enable;
721			drive-strength = <8>;
722			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
723		};
724
725		pins-clk {
726			pinmux = <PINMUX_GPIO51__FUNC_MSDC1_CLK>;
727			drive-strength = <8>;
728			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
729		};
730
731		pins-insert {
732			pinmux = <PINMUX_GPIO17__FUNC_GPIO17>;
733			input-enable;
734			bias-pull-up;
735		};
736	};
737
738	mmc1_uhs_pins: mmc1-uhs-pins {
739		pins-cmd-dat {
740			pinmux = <PINMUX_GPIO54__FUNC_MSDC1_DAT0>,
741				 <PINMUX_GPIO56__FUNC_MSDC1_DAT1>,
742				 <PINMUX_GPIO55__FUNC_MSDC1_DAT2>,
743				 <PINMUX_GPIO53__FUNC_MSDC1_DAT3>,
744				 <PINMUX_GPIO52__FUNC_MSDC1_CMD>;
745			input-enable;
746			drive-strength = <8>;
747			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
748		};
749
750		pins-clk {
751			pinmux = <PINMUX_GPIO51__FUNC_MSDC1_CLK>;
752			input-enable;
753			drive-strength = <8>;
754			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
755		};
756	};
757
758	nor_flash_pins: nor-flash-default-pins {
759		pins-cs-io1 {
760			pinmux = <PINMUX_GPIO24__FUNC_SPINOR_CS>,
761				 <PINMUX_GPIO28__FUNC_SPINOR_IO1>;
762			input-enable;
763			bias-pull-up;
764			drive-strength = <10>;
765		};
766
767		pins-io0 {
768			pinmux = <PINMUX_GPIO27__FUNC_SPINOR_IO0>;
769			bias-pull-up;
770			drive-strength = <10>;
771		};
772
773		pins-clk {
774			pinmux = <PINMUX_GPIO25__FUNC_SPINOR_CK>;
775			input-enable;
776			bias-pull-up;
777			drive-strength = <10>;
778		};
779	};
780
781	pcie_pins: pcie-default-pins {
782		pins-pcie-wake {
783			pinmux = <PINMUX_GPIO63__FUNC_PCIE_WAKE_N>;
784			bias-pull-up;
785		};
786
787		pins-pcie-pereset {
788			pinmux = <PINMUX_GPIO64__FUNC_PCIE_PERESET_N>;
789		};
790
791		pins-pcie-clkreq {
792			pinmux = <PINMUX_GPIO65__FUNC_PCIE_CLKREQ_N>;
793			bias-pull-up;
794		};
795
796		pins-wifi-kill {
797			pinmux = <PINMUX_GPIO145__FUNC_GPIO145>; /* WIFI_KILL_L */
798			output-high;
799		};
800	};
801
802	pp1000_dpbrdg_en_pins: pp1000-dpbrdg-en-pins {
803		pins-en {
804			pinmux = <PINMUX_GPIO19__FUNC_GPIO19>;
805			output-low;
806		};
807	};
808
809	pp1000_mipibrdg_en_pins: pp1000-mipibrdg-en-pins {
810		pins-en {
811			pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
812			output-low;
813		};
814	};
815
816	pp1800_dpbrdg_en_pins: pp1800-dpbrdg-en-pins {
817		pins-en {
818			pinmux = <PINMUX_GPIO126__FUNC_GPIO126>;
819			output-low;
820		};
821	};
822
823	pp1800_mipibrdg_en_pins: pp1800-mipibrd-en-pins {
824		pins-en {
825			pinmux = <PINMUX_GPIO128__FUNC_GPIO128>;
826			output-low;
827		};
828	};
829
830	pp3300_dpbrdg_en_pins: pp3300-dpbrdg-en-pins {
831		pins-en {
832			pinmux = <PINMUX_GPIO26__FUNC_GPIO26>;
833			output-low;
834		};
835	};
836
837	pp3300_mipibrdg_en_pins: pp3300-mipibrdg-en-pins {
838		pins-en {
839			pinmux = <PINMUX_GPIO127__FUNC_GPIO127>;
840			output-low;
841		};
842	};
843
844	pp3300_wlan_pins: pp3300-wlan-pins {
845		pins-pcie-en-pp3300-wlan {
846			pinmux = <PINMUX_GPIO143__FUNC_GPIO143>;
847			output-high;
848		};
849	};
850
851	pwm0_pins: pwm0-default-pins {
852		pins-pwm {
853			pinmux = <PINMUX_GPIO40__FUNC_DISP_PWM>;
854		};
855
856		pins-inhibit {
857			pinmux = <PINMUX_GPIO152__FUNC_GPIO152>;
858			output-high;
859		};
860	};
861
862	scp_pins: scp-pins {
863		pins-vreq-vao {
864			pinmux = <PINMUX_GPIO195__FUNC_SCP_VREQ_VAO>;
865		};
866	};
867
868	spi1_pins: spi1-default-pins {
869		pins-cs-mosi-clk {
870			pinmux = <PINMUX_GPIO157__FUNC_SPI1_A_CSB>,
871				 <PINMUX_GPIO159__FUNC_SPI1_A_MO>,
872				 <PINMUX_GPIO156__FUNC_SPI1_A_CLK>;
873			bias-disable;
874		};
875
876		pins-miso {
877			pinmux = <PINMUX_GPIO158__FUNC_SPI1_A_MI>;
878			bias-pull-down;
879		};
880	};
881
882	spi5_pins: spi5-default-pins {
883		pins-bus {
884			pinmux = <PINMUX_GPIO38__FUNC_SPI5_A_MI>,
885				 <PINMUX_GPIO37__FUNC_GPIO37>,
886				 <PINMUX_GPIO39__FUNC_SPI5_A_MO>,
887				 <PINMUX_GPIO36__FUNC_SPI5_A_CLK>;
888			bias-disable;
889		};
890	};
891
892	trackpad_pins: trackpad-default-pins {
893		pins-int-n {
894			pinmux = <PINMUX_GPIO15__FUNC_GPIO15>;
895			input-enable;
896			bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
897		};
898	};
899
900	touchscreen_pins: touchscreen-default-pins {
901		pins-irq {
902			pinmux = <PINMUX_GPIO21__FUNC_GPIO21>;
903			input-enable;
904			bias-pull-up;
905		};
906
907		pins-reset {
908			pinmux = <PINMUX_GPIO137__FUNC_GPIO137>;
909			output-high;
910		};
911
912		pins-report-sw {
913			pinmux = <PINMUX_GPIO138__FUNC_GPIO138>;
914			output-low;
915		};
916	};
917};
918
919&pmic {
920	interrupts-extended = <&pio 214 IRQ_TYPE_LEVEL_HIGH>;
921};
922
923&pwm0 {
924	status = "okay";
925
926	pinctrl-names = "default";
927	pinctrl-0 = <&pwm0_pins>;
928};
929
930&scp {
931	status = "okay";
932
933	firmware-name = "mediatek/mt8192/scp.img";
934	memory-region = <&scp_mem_reserved>;
935	pinctrl-names = "default";
936	pinctrl-0 = <&scp_pins>;
937
938	cros-ec {
939		compatible = "google,cros-ec-rpmsg";
940		mediatek,rpmsg-name = "cros-ec-rpmsg";
941	};
942};
943
944&spi1 {
945	status = "okay";
946
947	mediatek,pad-select = <0>;
948	pinctrl-names = "default";
949	pinctrl-0 = <&spi1_pins>;
950
951	cros_ec: ec@0 {
952		compatible = "google,cros-ec-spi";
953		reg = <0>;
954		interrupts-extended = <&pio 5 IRQ_TYPE_LEVEL_LOW>;
955		spi-max-frequency = <3000000>;
956		pinctrl-names = "default";
957		pinctrl-0 = <&cros_ec_int>;
958
959		#address-cells = <1>;
960		#size-cells = <0>;
961
962		base_detection: cbas {
963			compatible = "google,cros-cbas";
964		};
965
966		cros_ec_pwm: pwm {
967			compatible = "google,cros-ec-pwm";
968			#pwm-cells = <1>;
969
970			status = "disabled";
971		};
972
973		i2c_tunnel: i2c-tunnel {
974			compatible = "google,cros-ec-i2c-tunnel";
975			google,remote-bus = <0>;
976			#address-cells = <1>;
977			#size-cells = <0>;
978		};
979
980		mt6360_ldo3_reg: regulator@0 {
981			compatible = "google,cros-ec-regulator";
982			reg = <0>;
983			regulator-min-microvolt = <1800000>;
984			regulator-max-microvolt = <3300000>;
985		};
986
987		mt6360_ldo5_reg: regulator@1 {
988			compatible = "google,cros-ec-regulator";
989			reg = <1>;
990			regulator-min-microvolt = <3300000>;
991			regulator-max-microvolt = <3300000>;
992		};
993
994		typec {
995			compatible = "google,cros-ec-typec";
996			#address-cells = <1>;
997			#size-cells = <0>;
998
999			usb_c0: connector@0 {
1000				compatible = "usb-c-connector";
1001				reg = <0>;
1002				label = "left";
1003				power-role = "dual";
1004				data-role = "host";
1005				try-power-role = "source";
1006			};
1007
1008			usb_c1: connector@1 {
1009				compatible = "usb-c-connector";
1010				reg = <1>;
1011				label = "right";
1012				power-role = "dual";
1013				data-role = "host";
1014				try-power-role = "source";
1015			};
1016		};
1017	};
1018};
1019
1020&spi5 {
1021	status = "okay";
1022
1023	cs-gpios = <&pio 37 GPIO_ACTIVE_LOW>;
1024	mediatek,pad-select = <0>;
1025	pinctrl-names = "default";
1026	pinctrl-0 = <&spi5_pins>;
1027
1028	cr50@0 {
1029		compatible = "google,cr50";
1030		reg = <0>;
1031		interrupts-extended = <&pio 171 IRQ_TYPE_EDGE_RISING>;
1032		spi-max-frequency = <1000000>;
1033		pinctrl-names = "default";
1034		pinctrl-0 = <&cr50_int>;
1035	};
1036};
1037
1038&spmi {
1039	#address-cells = <2>;
1040	#size-cells = <0>;
1041
1042	mt6315_6: pmic@6 {
1043		compatible = "mediatek,mt6315-regulator";
1044		reg = <0x6 SPMI_USID>;
1045
1046		regulators {
1047			mt6315_6_vbuck1: vbuck1 {
1048				regulator-compatible = "vbuck1";
1049				regulator-name = "Vbcpu";
1050				regulator-min-microvolt = <300000>;
1051				regulator-max-microvolt = <1193750>;
1052				regulator-enable-ramp-delay = <256>;
1053				regulator-allowed-modes = <0 1 2>;
1054				regulator-always-on;
1055			};
1056
1057			mt6315_6_vbuck3: vbuck3 {
1058				regulator-compatible = "vbuck3";
1059				regulator-name = "Vlcpu";
1060				regulator-min-microvolt = <300000>;
1061				regulator-max-microvolt = <1193750>;
1062				regulator-enable-ramp-delay = <256>;
1063				regulator-allowed-modes = <0 1 2>;
1064				regulator-always-on;
1065			};
1066		};
1067	};
1068
1069	mt6315_7: pmic@7 {
1070		compatible = "mediatek,mt6315-regulator";
1071		reg = <0x7 SPMI_USID>;
1072
1073		regulators {
1074			mt6315_7_vbuck1: vbuck1 {
1075				regulator-compatible = "vbuck1";
1076				regulator-name = "Vgpu";
1077				regulator-min-microvolt = <606250>;
1078				regulator-max-microvolt = <1193750>;
1079				regulator-enable-ramp-delay = <256>;
1080				regulator-allowed-modes = <0 1 2>;
1081			};
1082		};
1083	};
1084};
1085
1086&uart0 {
1087	status = "okay";
1088};
1089
1090&xhci {
1091	status = "okay";
1092
1093	wakeup-source;
1094	vusb33-supply = <&pp3300_g>;
1095	vbus-supply = <&pp5000_a>;
1096};
1097
1098#include <arm/cros-ec-keyboard.dtsi>
1099#include <arm/cros-ec-sbs.dtsi>
1100