GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm64 / boot / dts / mediatek / mt8195-cherry.dtsi
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * Copyright (C) 2021 MediaTek Inc.
4  */
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/spmi/spmi.h>
8 #include "mt8195.dtsi"
9 #include "mt6359.dtsi"
10
11 / {
12         aliases {
13                 i2c0 = &i2c0;
14                 i2c1 = &i2c1;
15                 i2c2 = &i2c2;
16                 i2c3 = &i2c3;
17                 i2c4 = &i2c4;
18                 i2c5 = &i2c5;
19                 i2c7 = &i2c7;
20                 mmc0 = &mmc0;
21                 mmc1 = &mmc1;
22                 serial0 = &uart0;
23         };
24
25         chosen {
26                 stdout-path = "serial0:115200n8";
27         };
28
29         memory@40000000 {
30                 device_type = "memory";
31                 reg = <0 0x40000000 0 0x80000000>;
32         };
33
34         /* system wide LDO 3.3V power rail */
35         pp3300_z5: regulator-pp3300-ldo-z5 {
36                 compatible = "regulator-fixed";
37                 regulator-name = "pp3300_ldo_z5";
38                 regulator-always-on;
39                 regulator-boot-on;
40                 regulator-min-microvolt = <3300000>;
41                 regulator-max-microvolt = <3300000>;
42                 vin-supply = <&ppvar_sys>;
43         };
44
45         /* separately switched 3.3V power rail */
46         pp3300_s3: regulator-pp3300-s3 {
47                 compatible = "regulator-fixed";
48                 regulator-name = "pp3300_s3";
49                 /* automatically sequenced by PMIC EXT_PMIC_EN2 */
50                 regulator-always-on;
51                 regulator-boot-on;
52                 regulator-min-microvolt = <3300000>;
53                 regulator-max-microvolt = <3300000>;
54                 vin-supply = <&pp3300_z2>;
55         };
56
57         /* system wide 3.3V power rail */
58         pp3300_z2: regulator-pp3300-z2 {
59                 compatible = "regulator-fixed";
60                 regulator-name = "pp3300_z2";
61                 /* EN pin tied to pp4200_z2, which is controlled by EC */
62                 regulator-always-on;
63                 regulator-boot-on;
64                 regulator-min-microvolt = <3300000>;
65                 regulator-max-microvolt = <3300000>;
66                 vin-supply = <&ppvar_sys>;
67         };
68
69         /* system wide 4.2V power rail */
70         pp4200_z2: regulator-pp4200-z2 {
71                 compatible = "regulator-fixed";
72                 regulator-name = "pp4200_z2";
73                 /* controlled by EC */
74                 regulator-always-on;
75                 regulator-boot-on;
76                 regulator-min-microvolt = <4200000>;
77                 regulator-max-microvolt = <4200000>;
78                 vin-supply = <&ppvar_sys>;
79         };
80
81         /* system wide switching 5.0V power rail */
82         pp5000_s5: regulator-pp5000-s5 {
83                 compatible = "regulator-fixed";
84                 regulator-name = "pp5000_s5";
85                 /* controlled by EC */
86                 regulator-always-on;
87                 regulator-boot-on;
88                 regulator-min-microvolt = <5000000>;
89                 regulator-max-microvolt = <5000000>;
90                 vin-supply = <&ppvar_sys>;
91         };
92
93         /* system wide semi-regulated power rail from battery or USB */
94         ppvar_sys: regulator-ppvar-sys {
95                 compatible = "regulator-fixed";
96                 regulator-name = "ppvar_sys";
97                 regulator-always-on;
98                 regulator-boot-on;
99         };
100
101         usb_vbus: regulator-5v0-usb-vbus {
102                 compatible = "regulator-fixed";
103                 regulator-name = "usb-vbus";
104                 regulator-min-microvolt = <5000000>;
105                 regulator-max-microvolt = <5000000>;
106                 enable-active-high;
107                 regulator-always-on;
108         };
109
110         reserved_memory: reserved-memory {
111                 #address-cells = <2>;
112                 #size-cells = <2>;
113                 ranges;
114
115                 scp_mem: memory@50000000 {
116                         compatible = "shared-dma-pool";
117                         reg = <0 0x50000000 0 0x2900000>;
118                         no-map;
119                 };
120         };
121 };
122
123 &i2c0 {
124         status = "okay";
125
126         clock-frequency = <400000>;
127         pinctrl-names = "default";
128         pinctrl-0 = <&i2c0_pins>;
129 };
130
131 &i2c1 {
132         status = "okay";
133
134         clock-frequency = <400000>;
135         i2c-scl-internal-delay-ns = <12500>;
136         pinctrl-names = "default";
137         pinctrl-0 = <&i2c1_pins>;
138
139         trackpad@15 {
140                 compatible = "elan,ekth3000";
141                 reg = <0x15>;
142                 interrupts-extended = <&pio 6 IRQ_TYPE_LEVEL_LOW>;
143                 pinctrl-names = "default";
144                 pinctrl-0 = <&trackpad_pins>;
145                 vcc-supply = <&pp3300_s3>;
146                 wakeup-source;
147         };
148 };
149
150 &i2c2 {
151         status = "okay";
152
153         clock-frequency = <400000>;
154         pinctrl-names = "default";
155         pinctrl-0 = <&i2c2_pins>;
156 };
157
158 &i2c3 {
159         status = "okay";
160
161         clock-frequency = <400000>;
162         pinctrl-names = "default";
163         pinctrl-0 = <&i2c3_pins>;
164
165         tpm@50 {
166                 compatible = "google,cr50";
167                 reg = <0x50>;
168                 interrupts-extended = <&pio 88 IRQ_TYPE_EDGE_FALLING>;
169                 pinctrl-names = "default";
170                 pinctrl-0 = <&cr50_int>;
171         };
172 };
173
174 &i2c4 {
175         status = "okay";
176
177         clock-frequency = <400000>;
178         pinctrl-names = "default";
179         pinctrl-0 = <&i2c4_pins>;
180
181         ts_10: touchscreen@10 {
182                 compatible = "hid-over-i2c";
183                 reg = <0x10>;
184                 hid-descr-addr = <0x0001>;
185                 interrupts-extended = <&pio 92 IRQ_TYPE_LEVEL_LOW>;
186                 pinctrl-names = "default";
187                 pinctrl-0 = <&touchscreen_pins>;
188                 post-power-on-delay-ms = <10>;
189                 vdd-supply = <&pp3300_s3>;
190                 status = "disabled";
191         };
192 };
193
194 &i2c5 {
195         status = "okay";
196
197         clock-frequency = <400000>;
198         pinctrl-names = "default";
199         pinctrl-0 = <&i2c5_pins>;
200 };
201
202 &i2c7 {
203         status = "okay";
204
205         clock-frequency = <400000>;
206         pinctrl-names = "default";
207         pinctrl-0 = <&i2c7_pins>;
208
209         pmic@34 {
210                 #interrupt-cells = <2>;
211                 compatible = "mediatek,mt6360";
212                 reg = <0x34>;
213                 interrupt-controller;
214                 interrupts-extended = <&pio 130 IRQ_TYPE_EDGE_FALLING>;
215                 interrupt-names = "IRQB";
216                 pinctrl-names = "default";
217                 pinctrl-0 = <&subpmic_default>;
218                 wakeup-source;
219         };
220 };
221
222 &mmc0 {
223         status = "okay";
224
225         bus-width = <8>;
226         cap-mmc-highspeed;
227         cap-mmc-hw-reset;
228         hs400-ds-delay = <0x14c11>;
229         max-frequency = <200000000>;
230         mmc-hs200-1_8v;
231         mmc-hs400-1_8v;
232         no-sdio;
233         no-sd;
234         non-removable;
235         pinctrl-names = "default", "state_uhs";
236         pinctrl-0 = <&mmc0_pins_default>;
237         pinctrl-1 = <&mmc0_pins_uhs>;
238         vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
239         vqmmc-supply = <&mt6359_vufs_ldo_reg>;
240 };
241
242 &mmc1 {
243         status = "okay";
244
245         bus-width = <4>;
246         cap-sd-highspeed;
247         cd-gpios = <&pio 54 GPIO_ACTIVE_LOW>;
248         max-frequency = <200000000>;
249         no-mmc;
250         no-sdio;
251         pinctrl-names = "default", "state_uhs";
252         pinctrl-0 = <&mmc1_pins_default>, <&mmc1_pins_detect>;
253         pinctrl-1 = <&mmc1_pins_default>;
254         sd-uhs-sdr50;
255         sd-uhs-sdr104;
256         vmmc-supply = <&mt_pmic_vmch_ldo_reg>;
257         vqmmc-supply = <&mt_pmic_vmc_ldo_reg>;
258 };
259
260 /* for CPU-L */
261 &mt6359_vcore_buck_reg {
262         regulator-always-on;
263 };
264
265 /* for CORE */
266 &mt6359_vgpu11_buck_reg {
267         regulator-always-on;
268 };
269
270 &mt6359_vgpu11_sshub_buck_reg {
271         regulator-always-on;
272         regulator-min-microvolt = <550000>;
273         regulator-max-microvolt = <550000>;
274 };
275
276 /* for CORE SRAM */
277 &mt6359_vpu_buck_reg {
278         regulator-always-on;
279 };
280
281 &mt6359_vrf12_ldo_reg {
282         regulator-always-on;
283 };
284
285 /* for GPU SRAM */
286 &mt6359_vsram_others_ldo_reg {
287         regulator-always-on;
288         regulator-min-microvolt = <750000>;
289         regulator-max-microvolt = <750000>;
290 };
291
292 &mt6359_vufs_ldo_reg {
293         regulator-always-on;
294 };
295
296 &nor_flash {
297         status = "okay";
298
299         pinctrl-names = "default";
300         pinctrl-0 = <&nor_pins_default>;
301
302         flash@0 {
303                 compatible = "jedec,spi-nor";
304                 reg = <0>;
305                 spi-max-frequency = <52000000>;
306                 spi-rx-bus-width = <2>;
307                 spi-tx-bus-width = <2>;
308         };
309 };
310
311 &pio {
312         mediatek,rsel-resistance-in-si-unit;
313         pinctrl-names = "default";
314         pinctrl-0 = <&pio_default>;
315
316         /* 144 lines */
317         gpio-line-names =
318                 "I2S_SPKR_MCLK",
319                 "I2S_SPKR_DATAIN",
320                 "I2S_SPKR_LRCK",
321                 "I2S_SPKR_BCLK",
322                 "EC_AP_INT_ODL",
323                 /*
324                  * AP_FLASH_WP_L is crossystem ABI. Schematics
325                  * call it AP_FLASH_WP_ODL.
326                  */
327                 "AP_FLASH_WP_L",
328                 "TCHPAD_INT_ODL",
329                 "EDP_HPD_1V8",
330                 "AP_I2C_CAM_SDA",
331                 "AP_I2C_CAM_SCL",
332                 "AP_I2C_TCHPAD_SDA_1V8",
333                 "AP_I2C_TCHPAD_SCL_1V8",
334                 "AP_I2C_AUD_SDA",
335                 "AP_I2C_AUD_SCL",
336                 "AP_I2C_TPM_SDA_1V8",
337                 "AP_I2C_TPM_SCL_1V8",
338                 "AP_I2C_TCHSCR_SDA_1V8",
339                 "AP_I2C_TCHSCR_SCL_1V8",
340                 "EC_AP_HPD_OD",
341                 "",
342                 "PCIE_NVME_RST_L",
343                 "PCIE_NVME_CLKREQ_ODL",
344                 "PCIE_RST_1V8_L",
345                 "PCIE_CLKREQ_1V8_ODL",
346                 "PCIE_WAKE_1V8_ODL",
347                 "CLK_24M_CAM0",
348                 "CAM1_SEN_EN",
349                 "AP_I2C_PWR_SCL_1V8",
350                 "AP_I2C_PWR_SDA_1V8",
351                 "AP_I2C_MISC_SCL",
352                 "AP_I2C_MISC_SDA",
353                 "EN_PP5000_HDMI_X",
354                 "AP_HDMITX_HTPLG",
355                 "",
356                 "AP_HDMITX_SCL_1V8",
357                 "AP_HDMITX_SDA_1V8",
358                 "AP_RTC_CLK32K",
359                 "AP_EC_WATCHDOG_L",
360                 "SRCLKENA0",
361                 "SRCLKENA1",
362                 "PWRAP_SPI0_CS_L",
363                 "PWRAP_SPI0_CK",
364                 "PWRAP_SPI0_MOSI",
365                 "PWRAP_SPI0_MISO",
366                 "SPMI_SCL",
367                 "SPMI_SDA",
368                 "",
369                 "",
370                 "",
371                 "I2S_HP_DATAIN",
372                 "I2S_HP_MCLK",
373                 "I2S_HP_BCK",
374                 "I2S_HP_LRCK",
375                 "I2S_HP_DATAOUT",
376                 "SD_CD_ODL",
377                 "EN_PP3300_DISP_X",
378                 "TCHSCR_RST_1V8_L",
379                 "TCHSCR_REPORT_DISABLE",
380                 "EN_PP3300_WLAN_X",
381                 "BT_KILL_1V8_L",
382                 "I2S_SPKR_DATAOUT",
383                 "WIFI_KILL_1V8_L",
384                 "BEEP_ON",
385                 "SCP_I2C_SENSOR_SCL_1V8",
386                 "SCP_I2C_SENSOR_SDA_1V8",
387                 "",
388                 "",
389                 "",
390                 "",
391                 "AUD_CLK_MOSI",
392                 "AUD_SYNC_MOSI",
393                 "AUD_DAT_MOSI0",
394                 "AUD_DAT_MOSI1",
395                 "AUD_DAT_MISO0",
396                 "AUD_DAT_MISO1",
397                 "AUD_DAT_MISO2",
398                 "SCP_VREQ_VAO",
399                 "AP_SPI_GSC_TPM_CLK",
400                 "AP_SPI_GSC_TPM_MOSI",
401                 "AP_SPI_GSC_TPM_CS_L",
402                 "AP_SPI_GSC_TPM_MISO",
403                 "EN_PP1000_CAM_X",
404                 "AP_EDP_BKLTEN",
405                 "",
406                 "USB3_HUB_RST_L",
407                 "",
408                 "WLAN_ALERT_ODL",
409                 "EC_IN_RW_ODL",
410                 "GSC_AP_INT_ODL",
411                 "HP_INT_ODL",
412                 "CAM0_RST_L",
413                 "CAM1_RST_L",
414                 "TCHSCR_INT_1V8_L",
415                 "CAM1_DET_L",
416                 "RST_ALC1011_L",
417                 "",
418                 "",
419                 "BL_PWM_1V8",
420                 "UART_AP_TX_DBG_RX",
421                 "UART_DBG_TX_AP_RX",
422                 "EN_SPKR",
423                 "AP_EC_WARM_RST_REQ",
424                 "UART_SCP_TX_DBGCON_RX",
425                 "UART_DBGCON_TX_SCP_RX",
426                 "",
427                 "",
428                 "KPCOL0",
429                 "",
430                 "MT6315_GPU_INT",
431                 "MT6315_PROC_BC_INT",
432                 "SD_CMD",
433                 "SD_CLK",
434                 "SD_DAT0",
435                 "SD_DAT1",
436                 "SD_DAT2",
437                 "SD_DAT3",
438                 "EMMC_DAT7",
439                 "EMMC_DAT6",
440                 "EMMC_DAT5",
441                 "EMMC_DAT4",
442                 "EMMC_RSTB",
443                 "EMMC_CMD",
444                 "EMMC_CLK",
445                 "EMMC_DAT3",
446                 "EMMC_DAT2",
447                 "EMMC_DAT1",
448                 "EMMC_DAT0",
449                 "EMMC_DSL",
450                 "",
451                 "",
452                 "MT6360_INT_ODL",
453                 "SCP_JTAG0_TRSTN",
454                 "AP_SPI_EC_CS_L",
455                 "AP_SPI_EC_CLK",
456                 "AP_SPI_EC_MOSI",
457                 "AP_SPI_EC_MISO",
458                 "SCP_JTAG0_TMS",
459                 "SCP_JTAG0_TCK",
460                 "SCP_JTAG0_TDO",
461                 "SCP_JTAG0_TDI",
462                 "AP_SPI_FLASH_CS_L",
463                 "AP_SPI_FLASH_CLK",
464                 "AP_SPI_FLASH_MOSI",
465                 "AP_SPI_FLASH_MISO";
466
467         cr50_int: cr50-irq-default-pins {
468                 pins-gsc-ap-int-odl {
469                         pinmux = <PINMUX_GPIO88__FUNC_GPIO88>;
470                         input-enable;
471                 };
472         };
473
474         cros_ec_int: cros-ec-irq-default-pins {
475                 pins-ec-ap-int-odl {
476                         pinmux = <PINMUX_GPIO4__FUNC_GPIO4>;
477                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
478                         input-enable;
479                 };
480         };
481
482         i2c0_pins: i2c0-default-pins {
483                 pins-bus {
484                         pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
485                                  <PINMUX_GPIO9__FUNC_SCL0>;
486                         bias-disable;
487                         drive-strength-microamp = <1000>;
488                 };
489         };
490
491         i2c1_pins: i2c1-default-pins {
492                 pins-bus {
493                         pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
494                                  <PINMUX_GPIO11__FUNC_SCL1>;
495                         bias-pull-up = <1000>;
496                         drive-strength-microamp = <1000>;
497                 };
498         };
499
500         i2c2_pins: i2c2-default-pins {
501                 pins-bus {
502                         pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
503                                  <PINMUX_GPIO13__FUNC_SCL2>;
504                         bias-disable;
505                         drive-strength-microamp = <1000>;
506                 };
507         };
508
509         i2c3_pins: i2c3-default-pins {
510                 pins-bus {
511                         pinmux = <PINMUX_GPIO14__FUNC_SDA3>,
512                                  <PINMUX_GPIO15__FUNC_SCL3>;
513                         bias-pull-up = <1000>;
514                         drive-strength-microamp = <1000>;
515                 };
516         };
517
518         i2c4_pins: i2c4-default-pins {
519                 pins-bus {
520                         pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
521                                  <PINMUX_GPIO17__FUNC_SCL4>;
522                         bias-pull-up = <1000>;
523                         drive-strength = <4>;
524                 };
525         };
526
527         i2c5_pins: i2c5-default-pins {
528                 pins-bus {
529                         pinmux = <PINMUX_GPIO29__FUNC_SCL5>,
530                                  <PINMUX_GPIO30__FUNC_SDA5>;
531                         bias-disable;
532                         drive-strength-microamp = <1000>;
533                 };
534         };
535
536         i2c7_pins: i2c7-default-pins {
537                 pins-bus {
538                         pinmux = <PINMUX_GPIO27__FUNC_SCL7>,
539                                  <PINMUX_GPIO28__FUNC_SDA7>;
540                         bias-disable;
541                 };
542         };
543
544         mmc0_pins_default: mmc0-default-pins {
545                 pins-cmd-dat {
546                         pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
547                                  <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
548                                  <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
549                                  <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
550                                  <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
551                                  <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
552                                  <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
553                                  <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
554                                  <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
555                         input-enable;
556                         drive-strength = <6>;
557                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
558                 };
559
560                 pins-clk {
561                         pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
562                         drive-strength = <6>;
563                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
564                 };
565
566                 pins-rst {
567                         pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
568                         drive-strength = <6>;
569                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
570                 };
571         };
572
573         mmc0_pins_uhs: mmc0-uhs-pins {
574                 pins-cmd-dat {
575                         pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
576                                  <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
577                                  <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
578                                  <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
579                                  <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
580                                  <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
581                                  <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
582                                  <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
583                                  <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
584                         input-enable;
585                         drive-strength = <8>;
586                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
587                 };
588
589                 pins-clk {
590                         pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
591                         drive-strength = <8>;
592                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
593                 };
594
595                 pins-ds {
596                         pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
597                         drive-strength = <8>;
598                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
599                 };
600
601                 pins-rst {
602                         pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
603                         drive-strength = <8>;
604                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
605                 };
606         };
607
608         mmc1_pins_detect: mmc1-detect-pins {
609                 pins-insert {
610                         pinmux = <PINMUX_GPIO54__FUNC_GPIO54>;
611                         bias-pull-up;
612                 };
613         };
614
615         mmc1_pins_default: mmc1-default-pins {
616                 pins-cmd-dat {
617                         pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
618                                  <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
619                                  <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
620                                  <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
621                                  <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
622                         input-enable;
623                         drive-strength = <8>;
624                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
625                 };
626
627                 pins-clk {
628                         pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
629                         drive-strength = <8>;
630                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
631                 };
632         };
633
634         nor_pins_default: nor-default-pins {
635                 pins-ck-io {
636                         pinmux = <PINMUX_GPIO142__FUNC_SPINOR_IO0>,
637                                  <PINMUX_GPIO141__FUNC_SPINOR_CK>,
638                                  <PINMUX_GPIO143__FUNC_SPINOR_IO1>;
639                         drive-strength = <6>;
640                         bias-pull-down;
641                 };
642
643                 pins-cs {
644                         pinmux = <PINMUX_GPIO140__FUNC_SPINOR_CS>;
645                         drive-strength = <6>;
646                         bias-pull-up;
647                 };
648         };
649
650         pio_default: pio-default-pins {
651                 pins-wifi-enable {
652                         pinmux = <PINMUX_GPIO58__FUNC_GPIO58>;
653                         output-high;
654                         drive-strength = <14>;
655                 };
656
657                 pins-low-power-pd {
658                         pinmux = <PINMUX_GPIO25__FUNC_GPIO25>,
659                                  <PINMUX_GPIO26__FUNC_GPIO26>,
660                                  <PINMUX_GPIO46__FUNC_GPIO46>,
661                                  <PINMUX_GPIO47__FUNC_GPIO47>,
662                                  <PINMUX_GPIO48__FUNC_GPIO48>,
663                                  <PINMUX_GPIO65__FUNC_GPIO65>,
664                                  <PINMUX_GPIO66__FUNC_GPIO66>,
665                                  <PINMUX_GPIO67__FUNC_GPIO67>,
666                                  <PINMUX_GPIO68__FUNC_GPIO68>,
667                                  <PINMUX_GPIO128__FUNC_GPIO128>,
668                                  <PINMUX_GPIO129__FUNC_GPIO129>;
669                         input-enable;
670                         bias-pull-down;
671                 };
672
673                 pins-low-power-pupd {
674                         pinmux = <PINMUX_GPIO77__FUNC_GPIO77>,
675                                  <PINMUX_GPIO78__FUNC_GPIO78>,
676                                  <PINMUX_GPIO79__FUNC_GPIO79>,
677                                  <PINMUX_GPIO80__FUNC_GPIO80>,
678                                  <PINMUX_GPIO83__FUNC_GPIO83>,
679                                  <PINMUX_GPIO85__FUNC_GPIO85>,
680                                  <PINMUX_GPIO90__FUNC_GPIO90>,
681                                  <PINMUX_GPIO91__FUNC_GPIO91>,
682                                  <PINMUX_GPIO93__FUNC_GPIO93>,
683                                  <PINMUX_GPIO94__FUNC_GPIO94>,
684                                  <PINMUX_GPIO95__FUNC_GPIO95>,
685                                  <PINMUX_GPIO96__FUNC_GPIO96>,
686                                  <PINMUX_GPIO104__FUNC_GPIO104>,
687                                  <PINMUX_GPIO105__FUNC_GPIO105>,
688                                  <PINMUX_GPIO107__FUNC_GPIO107>;
689                         input-enable;
690                         bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
691                 };
692         };
693
694         scp_pins: scp-default-pins {
695                 pins-vreq {
696                         pinmux = <PINMUX_GPIO76__FUNC_SCP_VREQ_VAO>;
697                         bias-disable;
698                         input-enable;
699                 };
700         };
701
702         spi0_pins: spi0-default-pins {
703                 pins-cs-mosi-clk {
704                         pinmux = <PINMUX_GPIO132__FUNC_SPIM0_CSB>,
705                                  <PINMUX_GPIO134__FUNC_SPIM0_MO>,
706                                  <PINMUX_GPIO133__FUNC_SPIM0_CLK>;
707                         bias-disable;
708                 };
709
710                 pins-miso {
711                         pinmux = <PINMUX_GPIO135__FUNC_SPIM0_MI>;
712                         bias-pull-down;
713                 };
714         };
715
716         subpmic_default: subpmic-default-pins {
717                 subpmic_pin_irq: pins-subpmic-int-n {
718                         pinmux = <PINMUX_GPIO130__FUNC_GPIO130>;
719                         input-enable;
720                         bias-pull-up;
721                 };
722         };
723
724         trackpad_pins: trackpad-default-pins {
725                 pins-int-n {
726                         pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
727                         input-enable;
728                         bias-pull-up;
729                 };
730         };
731
732         touchscreen_pins: touchscreen-default-pins {
733                 pins-int-n {
734                         pinmux = <PINMUX_GPIO92__FUNC_GPIO92>;
735                         input-enable;
736                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
737                 };
738                 pins-rst {
739                         pinmux = <PINMUX_GPIO56__FUNC_GPIO56>;
740                         output-high;
741                 };
742                 pins-report-sw {
743                         pinmux = <PINMUX_GPIO57__FUNC_GPIO57>;
744                         output-low;
745                 };
746         };
747 };
748
749 &pmic {
750         interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
751 };
752
753 &scp {
754         status = "okay";
755
756         firmware-name = "/*(DEBLOBBED)*/";
757         memory-region = <&scp_mem>;
758         pinctrl-names = "default";
759         pinctrl-0 = <&scp_pins>;
760
761         cros-ec-rpmsg {
762                 compatible = "google,cros-ec-rpmsg";
763                 mediatek,rpmsg-name = "cros-ec-rpmsg";
764         };
765 };
766
767 &spi0 {
768         status = "okay";
769
770         pinctrl-names = "default";
771         pinctrl-0 = <&spi0_pins>;
772         mediatek,pad-select = <0>;
773
774         cros_ec: ec@0 {
775                 #address-cells = <1>;
776                 #size-cells = <0>;
777
778                 compatible = "google,cros-ec-spi";
779                 reg = <0>;
780                 interrupts-extended = <&pio 4 IRQ_TYPE_LEVEL_LOW>;
781                 pinctrl-names = "default";
782                 pinctrl-0 = <&cros_ec_int>;
783                 spi-max-frequency = <3000000>;
784
785                 keyboard-backlight {
786                         compatible = "google,cros-kbd-led-backlight";
787                 };
788
789                 i2c_tunnel: i2c-tunnel {
790                         compatible = "google,cros-ec-i2c-tunnel";
791                         google,remote-bus = <0>;
792                         #address-cells = <1>;
793                         #size-cells = <0>;
794                 };
795
796                 mt_pmic_vmc_ldo_reg: regulator@0 {
797                         compatible = "google,cros-ec-regulator";
798                         reg = <0>;
799                         regulator-name = "mt_pmic_vmc_ldo";
800                         regulator-min-microvolt = <1200000>;
801                         regulator-max-microvolt = <3600000>;
802                 };
803
804                 mt_pmic_vmch_ldo_reg: regulator@1 {
805                         compatible = "google,cros-ec-regulator";
806                         reg = <1>;
807                         regulator-name = "mt_pmic_vmch_ldo";
808                         regulator-min-microvolt = <2700000>;
809                         regulator-max-microvolt = <3600000>;
810                 };
811
812                 typec {
813                         compatible = "google,cros-ec-typec";
814                         #address-cells = <1>;
815                         #size-cells = <0>;
816
817                         usb_c0: connector@0 {
818                                 compatible = "usb-c-connector";
819                                 reg = <0>;
820                                 power-role = "dual";
821                                 data-role = "host";
822                                 try-power-role = "source";
823                         };
824
825                         usb_c1: connector@1 {
826                                 compatible = "usb-c-connector";
827                                 reg = <1>;
828                                 power-role = "dual";
829                                 data-role = "host";
830                                 try-power-role = "source";
831                         };
832                 };
833         };
834 };
835
836 &spmi {
837         #address-cells = <2>;
838         #size-cells = <0>;
839
840         mt6315@6 {
841                 compatible = "mediatek,mt6315-regulator";
842                 reg = <0x6 SPMI_USID>;
843
844                 regulators {
845                         mt6315_6_vbuck1: vbuck1 {
846                                 regulator-compatible = "vbuck1";
847                                 regulator-name = "Vbcpu";
848                                 regulator-min-microvolt = <400000>;
849                                 regulator-max-microvolt = <1193750>;
850                                 regulator-enable-ramp-delay = <256>;
851                                 regulator-ramp-delay = <6250>;
852                                 regulator-allowed-modes = <0 1 2>;
853                                 regulator-always-on;
854                         };
855                 };
856         };
857
858         mt6315@7 {
859                 compatible = "mediatek,mt6315-regulator";
860                 reg = <0x7 SPMI_USID>;
861
862                 regulators {
863                         mt6315_7_vbuck1: vbuck1 {
864                                 regulator-compatible = "vbuck1";
865                                 regulator-name = "Vgpu";
866                                 regulator-min-microvolt = <400000>;
867                                 regulator-max-microvolt = <1193750>;
868                                 regulator-enable-ramp-delay = <256>;
869                                 regulator-ramp-delay = <6250>;
870                                 regulator-allowed-modes = <0 1 2>;
871                                 regulator-always-on;
872                         };
873                 };
874         };
875 };
876
877 &u3phy0 {
878         status = "okay";
879 };
880
881 &u3phy1 {
882         status = "okay";
883 };
884
885 &u3phy2 {
886         status = "okay";
887 };
888
889 &u3phy3 {
890         status = "okay";
891 };
892
893 &uart0 {
894         status = "okay";
895 };
896
897 &xhci0 {
898         status = "okay";
899
900         vusb33-supply = <&mt6359_vusb_ldo_reg>;
901         vbus-supply = <&usb_vbus>;
902 };
903
904 &xhci1 {
905         status = "okay";
906
907         vusb33-supply = <&mt6359_vusb_ldo_reg>;
908         vbus-supply = <&usb_vbus>;
909 };
910
911 &xhci2 {
912         status = "okay";
913
914         vusb33-supply = <&mt6359_vusb_ldo_reg>;
915         vbus-supply = <&usb_vbus>;
916 };
917
918 &xhci3 {
919         status = "okay";
920
921         /* MT7921's USB Bluetooth has issues with USB2 LPM */
922         usb2-lpm-disable;
923         vusb33-supply = <&mt6359_vusb_ldo_reg>;
924         vbus-supply = <&usb_vbus>;
925 };
926
927 #include <arm/cros-ec-keyboard.dtsi>
928 #include <arm/cros-ec-sbs.dtsi>
929
930 &keyboard_controller {
931         function-row-physmap = <
932                 MATRIX_KEY(0x00, 0x02, 0)       /* T1 */
933                 MATRIX_KEY(0x03, 0x02, 0)       /* T2 */
934                 MATRIX_KEY(0x02, 0x02, 0)       /* T3 */
935                 MATRIX_KEY(0x01, 0x02, 0)       /* T4 */
936                 MATRIX_KEY(0x03, 0x04, 0)       /* T5 */
937                 MATRIX_KEY(0x02, 0x04, 0)       /* T6 */
938                 MATRIX_KEY(0x01, 0x04, 0)       /* T7 */
939                 MATRIX_KEY(0x02, 0x09, 0)       /* T8 */
940                 MATRIX_KEY(0x01, 0x09, 0)       /* T9 */
941                 MATRIX_KEY(0x00, 0x04, 0)       /* T10 */
942         >;
943
944         linux,keymap = <
945                 MATRIX_KEY(0x00, 0x02, KEY_BACK)
946                 MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
947                 MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
948                 MATRIX_KEY(0x01, 0x02, KEY_SCALE)
949                 MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
950                 MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
951                 MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
952                 MATRIX_KEY(0x02, 0x09, KEY_MUTE)
953                 MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
954                 MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
955
956                 CROS_STD_MAIN_KEYMAP
957         >;
958 };