Linux 6.11-rc1
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / mediatek / mt8173-elm.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright 2016 MediaTek Inc.
4  */
5
6 #include <dt-bindings/input/input.h>
7 #include <dt-bindings/input/linux-event-codes.h>
8 #include <dt-bindings/regulator/dlg,da9211-regulator.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include "mt8173.dtsi"
11
12 / {
13         aliases {
14                 mmc0 = &mmc0;
15                 mmc1 = &mmc1;
16                 mmc2 = &mmc3;
17         };
18
19         memory@40000000 {
20                 device_type = "memory";
21                 reg = <0 0x40000000 0 0x80000000>;
22         };
23
24         backlight: backlight {
25                 compatible = "pwm-backlight";
26                 pwms = <&pwm0 0 1000000>;
27                 power-supply = <&bl_fixed_reg>;
28                 enable-gpios = <&pio 95 GPIO_ACTIVE_HIGH>;
29
30                 pinctrl-names = "default";
31                 pinctrl-0 = <&panel_backlight_en_pins>;
32                 status = "okay";
33         };
34
35         bl_fixed_reg: fixedregulator2 {
36                 compatible = "regulator-fixed";
37                 regulator-name = "bl_fixed";
38                 regulator-min-microvolt = <1800000>;
39                 regulator-max-microvolt = <1800000>;
40                 startup-delay-us = <1000>;
41                 enable-active-high;
42                 gpio = <&pio 32 GPIO_ACTIVE_HIGH>;
43                 pinctrl-names = "default";
44                 pinctrl-0 = <&bl_fixed_pins>;
45         };
46
47         chosen {
48                 stdout-path = "serial0:115200n8";
49         };
50
51         gpio_keys: gpio-keys {
52                 compatible = "gpio-keys";
53                 pinctrl-names = "default";
54                 pinctrl-0 = <&gpio_keys_pins>;
55
56                 switch-lid {
57                         label = "Lid";
58                         gpios = <&pio 69 GPIO_ACTIVE_LOW>;
59                         linux,code = <SW_LID>;
60                         linux,input-type = <EV_SW>;
61                         wakeup-source;
62                 };
63
64                 switch-power {
65                         label = "Power";
66                         gpios = <&pio 14 GPIO_ACTIVE_HIGH>;
67                         linux,code = <KEY_POWER>;
68                         debounce-interval = <30>;
69                         wakeup-source;
70                 };
71
72                 switch-tablet-mode {
73                         label = "Tablet_mode";
74                         gpios = <&pio 121 GPIO_ACTIVE_HIGH>;
75                         linux,code = <SW_TABLET_MODE>;
76                         linux,input-type = <EV_SW>;
77                         wakeup-source;
78                 };
79
80                 switch-volume-down {
81                         label = "Volume_down";
82                         gpios = <&pio 123 GPIO_ACTIVE_LOW>;
83                         linux,code = <KEY_VOLUMEDOWN>;
84                 };
85
86                 switch-volume-up {
87                         label = "Volume_up";
88                         gpios = <&pio 124 GPIO_ACTIVE_LOW>;
89                         linux,code = <KEY_VOLUMEUP>;
90                 };
91         };
92
93         panel_fixed_3v3: regulator1 {
94                 compatible = "regulator-fixed";
95                 regulator-name = "PANEL_3V3";
96                 regulator-min-microvolt = <3300000>;
97                 regulator-max-microvolt = <3300000>;
98                 enable-active-high;
99                 regulator-boot-on;
100                 off-on-delay-us = <500000>;
101                 gpio = <&pio 41 GPIO_ACTIVE_HIGH>;
102                 pinctrl-names = "default";
103                 pinctrl-0 = <&panel_fixed_pins>;
104         };
105
106         ps8640_fixed_1v2: regulator2 {
107                 compatible = "regulator-fixed";
108                 regulator-name = "PS8640_1V2";
109                 regulator-min-microvolt = <1200000>;
110                 regulator-max-microvolt = <1200000>;
111                 regulator-enable-ramp-delay = <2000>;
112                 enable-active-high;
113                 regulator-boot-on;
114                 gpio = <&pio 30 GPIO_ACTIVE_HIGH>;
115                 pinctrl-names = "default";
116                 pinctrl-0 = <&ps8640_fixed_pins>;
117         };
118
119         sdio_fixed_3v3: fixedregulator0 {
120                 compatible = "regulator-fixed";
121                 regulator-name = "3V3";
122                 regulator-min-microvolt = <3300000>;
123                 regulator-max-microvolt = <3300000>;
124                 gpio = <&pio 85 GPIO_ACTIVE_HIGH>;
125                 pinctrl-names = "default";
126                 pinctrl-0 = <&sdio_fixed_3v3_pins>;
127         };
128
129         sound: sound {
130                 compatible = "mediatek,mt8173-rt5650";
131                 mediatek,audio-codec = <&rt5650 &hdmi0>;
132                 mediatek,platform = <&afe>;
133                 pinctrl-names = "default";
134                 pinctrl-0 = <&aud_i2s2>;
135
136                 mediatek,mclk = <1>;
137                 codec-capture {
138                         sound-dai = <&rt5650 1>;
139                 };
140         };
141
142         hdmicon: connector {
143                 compatible = "hdmi-connector";
144                 label = "hdmi";
145                 type = "a";
146                 ddc-i2c-bus = <&hdmiddc0>;
147
148                 port {
149                         hdmi_connector_in: endpoint {
150                                 remote-endpoint = <&hdmi0_out>;
151                         };
152                 };
153         };
154
155         watchdog {
156                 compatible = "arm,smc-wdt";
157         };
158 };
159
160 /*
161  * Disable the original MMIO watch dog and switch to the SMC watchdog, which
162  * operates on the same MMIO.
163  */
164 &watchdog {
165         status = "disabled";
166 };
167
168 &mfg_async {
169         domain-supply = <&da9211_vgpu_reg>;
170 };
171
172 &cec {
173         status = "okay";
174 };
175
176 &cpu0 {
177         proc-supply = <&mt6397_vpca15_reg>;
178 };
179
180 &cpu1 {
181         proc-supply = <&mt6397_vpca15_reg>;
182 };
183
184 &cpu2 {
185         proc-supply = <&da9211_vcpu_reg>;
186         sram-supply = <&mt6397_vsramca7_reg>;
187 };
188
189 &cpu3 {
190         proc-supply = <&da9211_vcpu_reg>;
191         sram-supply = <&mt6397_vsramca7_reg>;
192 };
193
194 &cpu_thermal {
195         sustainable-power = <4500>; /* milliwatts */
196         trips {
197                 threshold: trip-point0 {
198                         temperature = <60000>;
199                 };
200
201                 target: trip-point1 {
202                         temperature = <65000>;
203                 };
204         };
205 };
206
207 &dsi0 {
208         status = "okay";
209         ports {
210                 port {
211                         dsi0_out: endpoint {
212                                 remote-endpoint = <&ps8640_in>;
213                         };
214                 };
215         };
216 };
217
218 &dpi0 {
219         status = "okay";
220 };
221
222 &hdmi0 {
223         status = "okay";
224         ports {
225                 port@1 {
226                         reg = <1>;
227
228                         hdmi0_out: endpoint {
229                                 remote-endpoint = <&hdmi_connector_in>;
230                         };
231                 };
232         };
233 };
234
235 &hdmi_phy {
236         status = "okay";
237         mediatek,ibias = <0xc>;
238 };
239
240 &i2c0 {
241         status = "okay";
242
243         rt5650: audio-codec@1a {
244                 compatible = "realtek,rt5650";
245                 reg = <0x1a>;
246                 avdd-supply = <&mt6397_vgp1_reg>;
247                 cpvdd-supply = <&mt6397_vcama_reg>;
248                 interrupts-extended = <&pio 3 IRQ_TYPE_EDGE_BOTH>;
249                 pinctrl-names = "default";
250                 pinctrl-0 = <&rt5650_irq>;
251                 #sound-dai-cells = <1>;
252                 realtek,dmic1-data-pin = <2>;
253                 realtek,jd-mode = <2>;
254         };
255
256         ps8640: edp-bridge@8 {
257                 compatible = "parade,ps8640";
258                 reg = <0x8>;
259                 powerdown-gpios = <&pio 127 GPIO_ACTIVE_LOW>;
260                 reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>;
261                 pinctrl-names = "default";
262                 pinctrl-0 = <&ps8640_pins>;
263                 vdd12-supply = <&ps8640_fixed_1v2>;
264                 vdd33-supply = <&mt6397_vgp2_reg>;
265
266                 ports {
267                         #address-cells = <1>;
268                         #size-cells = <0>;
269
270                         port@0 {
271                                 reg = <0>;
272
273                                 ps8640_in: endpoint {
274                                         remote-endpoint = <&dsi0_out>;
275                                 };
276                         };
277
278                         port@1 {
279                                 reg = <1>;
280
281                                 ps8640_out: endpoint {
282                                         remote-endpoint = <&panel_in>;
283                                 };
284                         };
285                 };
286
287                 aux-bus {
288                         panel: panel {
289                                 compatible = "edp-panel";
290                                 power-supply = <&panel_fixed_3v3>;
291                                 backlight = <&backlight>;
292
293                                 port {
294                                         panel_in: endpoint {
295                                                 remote-endpoint = <&ps8640_out>;
296                                         };
297                                 };
298                         };
299                 };
300         };
301 };
302
303 &i2c1 {
304         clock-frequency = <1500000>;
305         status = "okay";
306
307         da9211: da9211@68 {
308                 compatible = "dlg,da9211";
309                 reg = <0x68>;
310                 interrupts-extended = <&pio 15 IRQ_TYPE_LEVEL_LOW>;
311
312                 regulators {
313                         da9211_vcpu_reg: BUCKA {
314                                 regulator-name = "VBUCKA";
315                                 regulator-min-microvolt = < 700000>;
316                                 regulator-max-microvolt = <1310000>;
317                                 regulator-min-microamp = <2000000>;
318                                 regulator-max-microamp = <4400000>;
319                                 regulator-ramp-delay = <10000>;
320                                 regulator-always-on;
321                                 regulator-allowed-modes = <DA9211_BUCK_MODE_SYNC
322                                                            DA9211_BUCK_MODE_AUTO>;
323                         };
324
325                         da9211_vgpu_reg: BUCKB {
326                                 regulator-name = "VBUCKB";
327                                 regulator-min-microvolt = < 700000>;
328                                 regulator-max-microvolt = <1310000>;
329                                 regulator-min-microamp = <2000000>;
330                                 regulator-max-microamp = <3000000>;
331                                 regulator-ramp-delay = <10000>;
332                         };
333                 };
334         };
335 };
336
337 &i2c2 {
338         status = "okay";
339
340         tpm: tpm@20 {
341                 compatible = "infineon,slb9645tt";
342                 reg = <0x20>;
343                 powered-while-suspended;
344         };
345 };
346
347 &i2c3 {
348         clock-frequency = <400000>;
349         status = "okay";
350
351         touchscreen: touchscreen@10 {
352                 compatible = "elan,ekth3500";
353                 reg = <0x10>;
354                 interrupts-extended = <&pio 88 IRQ_TYPE_LEVEL_LOW>;
355         };
356 };
357
358 &i2c4 {
359         clock-frequency = <400000>;
360         status = "okay";
361         pinctrl-names = "default";
362         pinctrl-0 = <&trackpad_irq>;
363
364         trackpad: trackpad@15 {
365                 compatible = "elan,ekth3000";
366                 interrupts-extended = <&pio 117 IRQ_TYPE_LEVEL_LOW>;
367                 reg = <0x15>;
368                 vcc-supply = <&mt6397_vgp6_reg>;
369                 wakeup-source;
370         };
371 };
372
373 &mipi_tx0 {
374         status = "okay";
375 };
376
377 &mmc0 {
378         status = "okay";
379         pinctrl-names = "default", "state_uhs";
380         pinctrl-0 = <&mmc0_pins_default>;
381         pinctrl-1 = <&mmc0_pins_uhs>;
382         bus-width = <8>;
383         max-frequency = <200000000>;
384         cap-mmc-highspeed;
385         mmc-hs200-1_8v;
386         mmc-hs400-1_8v;
387         cap-mmc-hw-reset;
388         hs400-ds-delay = <0x14015>;
389         mediatek,hs200-cmd-int-delay = <30>;
390         mediatek,hs400-cmd-int-delay = <14>;
391         mediatek,hs400-cmd-resp-sel-rising;
392         vmmc-supply = <&mt6397_vemc_3v3_reg>;
393         vqmmc-supply = <&mt6397_vio18_reg>;
394         assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>;
395         assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
396         non-removable;
397 };
398
399 &mmc1 {
400         status = "okay";
401         pinctrl-names = "default", "state_uhs";
402         pinctrl-0 = <&mmc1_pins_default>;
403         pinctrl-1 = <&mmc1_pins_uhs>;
404         bus-width = <4>;
405         max-frequency = <200000000>;
406         cap-sd-highspeed;
407         sd-uhs-sdr50;
408         sd-uhs-sdr104;
409         cd-gpios = <&pio 1 GPIO_ACTIVE_LOW>;
410         vmmc-supply = <&mt6397_vmch_reg>;
411         vqmmc-supply = <&mt6397_vmc_reg>;
412 };
413
414 &mmc3 {
415         status = "okay";
416         pinctrl-names = "default", "state_uhs";
417         pinctrl-0 = <&mmc3_pins_default>;
418         pinctrl-1 = <&mmc3_pins_uhs>;
419         bus-width = <4>;
420         max-frequency = <200000000>;
421         cap-sd-highspeed;
422         sd-uhs-sdr50;
423         sd-uhs-sdr104;
424         keep-power-in-suspend;
425         wakeup-source;
426         cap-sdio-irq;
427         vmmc-supply = <&sdio_fixed_3v3>;
428         vqmmc-supply = <&mt6397_vgp3_reg>;
429         non-removable;
430         cap-power-off-card;
431
432         #address-cells = <1>;
433         #size-cells = <0>;
434
435         btmrvl: btmrvl@2 {
436                 compatible = "marvell,sd8897-bt";
437                 reg = <2>;
438                 interrupts-extended = <&pio 119 IRQ_TYPE_LEVEL_LOW>;
439                 marvell,wakeup-pin = /bits/ 16 <0x0d>;
440                 marvell,wakeup-gap-ms = /bits/ 16 <0x64>;
441         };
442
443         mwifiex: mwifiex@1 {
444                 compatible = "marvell,sd8897";
445                 reg = <1>;
446                 interrupts-extended = <&pio 38 IRQ_TYPE_LEVEL_LOW>;
447                 marvell,wakeup-pin = <3>;
448         };
449 };
450
451 &nor_flash {
452         status = "okay";
453         pinctrl-names = "default";
454         pinctrl-0 = <&nor_gpio1_pins>;
455
456         flash@0 {
457                 compatible = "jedec,spi-nor";
458                 reg = <0>;
459                 spi-max-frequency = <50000000>;
460         };
461 };
462
463 &pio {
464         gpio-line-names = "EC_INT_1V8",
465                           "SD_CD_L",
466                           "ALC5514_IRQ",
467                           "ALC5650_IRQ",
468                           /*
469                            * AP_FLASH_WP_L is crossystem ABI. Schematics
470                            * call it SFWP_B.
471                            */
472                           "AP_FLASH_WP_L",
473                           "SFIN",
474                           "SFCS0",
475                           "SFHOLD",
476                           "SFOUT",
477                           "SFCK",
478                           "WRAP_EVENT_S_EINT10",
479                           "PMU_INT",
480                           "I2S2_WS_ALC5650",
481                           "I2S2_BCK_ALC5650",
482                           "PWR_BTN_1V8",
483                           "DA9212_IRQ",
484                           "IDDIG",
485                           "WATCHDOG",
486                           "CEC",
487                           "HDMISCK",
488                           "HDMISD",
489                           "HTPLG",
490                           "MSDC3_DAT0",
491                           "MSDC3_DAT1",
492                           "MSDC3_DAT2",
493                           "MSDC3_DAT3",
494                           "MSDC3_CLK",
495                           "MSDC3_CMD",
496                           "USB_C0_OC_FLAGB",
497                           "USBA_OC1_L",
498                           "PS8640_1V2_ENABLE",
499                           "THERM_ALERT_N",
500                           "PANEL_LCD_POWER_EN",
501                           "ANX7688_CHIP_PD_C",
502                           "EC_IN_RW_1V8",
503                           "ANX7688_1V_EN_C",
504                           "USB_DP_HPD_C",
505                           "TPM_DAVINT_N",
506                           "MARVELL8897_IRQ",
507                           "EN_USB_A0_PWR",
508                           "USBA_A0_OC_L",
509                           "EN_PP3300_DX_EDP",
510                           "",
511                           "SOC_I2C2_1V8_SDA_400K",
512                           "SOC_I2C2_1V8_SCL_400K",
513                           "SOC_I2C0_1V8_SDA_400K",
514                           "SOC_I2C0_1V8_SCL_400K",
515                           "EMMC_ID1",
516                           "EMMC_ID0",
517                           "MEM_CONFIG3",
518                           "EMMC_ID2",
519                           "MEM_CONFIG1",
520                           "MEM_CONFIG2",
521                           "BRD_ID2",
522                           "MEM_CONFIG0",
523                           "BRD_ID0",
524                           "BRD_ID1",
525                           "EMMC_DAT0",
526                           "EMMC_DAT1",
527                           "EMMC_DAT2",
528                           "EMMC_DAT3",
529                           "EMMC_DAT4",
530                           "EMMC_DAT5",
531                           "EMMC_DAT6",
532                           "EMMC_DAT7",
533                           "EMMC_CLK",
534                           "EMMC_CMD",
535                           "EMMC_RCLK",
536                           "PLT_RST_L",
537                           "LID_OPEN_1V8_L",
538                           "AUDIO_SPI_MISO_R",
539                           "",
540                           "AC_OK_1V8",
541                           "SD_DATA0",
542                           "SD_DATA1",
543                           "SD_DATA2",
544                           "SD_DATA3",
545                           "SD_CLK",
546                           "SD_CMD",
547                           "PWRAP_SPI0_MI",
548                           "PWRAP_SPI0_MO",
549                           "PWRAP_SPI0_CK",
550                           "PWRAP_SPI0_CSN",
551                           "",
552                           "",
553                           "WIFI_PDN",
554                           "RTC32K_1V8",
555                           "DISP_PWM0",
556                           "TOUCHSCREEN_INT_L",
557                           "",
558                           "SRCLKENA0",
559                           "SRCLKENA1",
560                           "PS8640_MODE_CONF",
561                           "TOUCHSCREEN_RESET_R",
562                           "PLATFORM_PROCHOT_L",
563                           "PANEL_POWER_EN",
564                           "REC_MODE_L",
565                           "EC_FW_UPDATE_L",
566                           "ACCEL2_INT_L",
567                           "HDMI_DP_INT",
568                           "ACCELGYRO3_INT_L",
569                           "ACCELGYRO4_INT_L",
570                           "SPI_EC_CLK",
571                           "SPI_EC_MI",
572                           "SPI_EC_MO",
573                           "SPI_EC_CSN",
574                           "SOC_I2C3_1V8_SDA_400K",
575                           "SOC_I2C3_1V8_SCL_400K",
576                           "",
577                           "",
578                           "",
579                           "",
580                           "",
581                           "",
582                           "",
583                           "PS8640_SYSRSTN_1V8",
584                           "APIN_MAX98090_DOUT2",
585                           "TP_INT_1V8_L_R",
586                           "RST_USB_HUB_R",
587                           "BT_WAKE_L",
588                           "ACCEL1_INT_L",
589                           "TABLET_MODE_L",
590                           "",
591                           "V_UP_IN_L_R",
592                           "V_DOWN_IN_L_R",
593                           "SOC_I2C1_1V8_SDA_1M",
594                           "SOC_I2C1_1V8_SCL_1M",
595                           "PS8640_PDN_1V8",
596                           "MAX98090_LRCLK",
597                           "MAX98090_BCLK",
598                           "MAX98090_MCLK",
599                           "APOUT_MAX98090_DIN",
600                           "APIN_MAX98090_DOUT",
601                           "SOC_I2C4_1V8_SDA_400K",
602                           "SOC_I2C4_1V8_SCL_400K";
603
604         aud_i2s2: aud_i2s2 {
605                 pins1 {
606                         pinmux = <MT8173_PIN_128_I2S0_LRCK__FUNC_I2S1_WS>,
607                                  <MT8173_PIN_129_I2S0_BCK__FUNC_I2S1_BCK>,
608                                  <MT8173_PIN_130_I2S0_MCK__FUNC_I2S1_MCK>,
609                                  <MT8173_PIN_131_I2S0_DATA0__FUNC_I2S1_DO_1>,
610                                  <MT8173_PIN_12_EINT12__FUNC_I2S2_WS>,
611                                  <MT8173_PIN_13_EINT13__FUNC_I2S2_BCK>,
612                                  <MT8173_PIN_132_I2S0_DATA1__FUNC_I2S2_DI_2>;
613                         bias-pull-down;
614                 };
615         };
616
617         bl_fixed_pins: bl_fixed_pins {
618                 pins1 {
619                         pinmux = <MT8173_PIN_32_UTXD2__FUNC_GPIO32>;
620                         output-low;
621                 };
622         };
623
624         bt_wake_pins: bt_wake_pins {
625                 pins1 {
626                         pinmux = <MT8173_PIN_119_KPROW0__FUNC_GPIO119>;
627                         bias-pull-up;
628                 };
629         };
630
631         disp_pwm0_pins: disp_pwm0_pins {
632                 pins1 {
633                         pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>;
634                         output-low;
635                 };
636         };
637
638         gpio_keys_pins: gpio_keys_pins {
639                 volume_pins {
640                         pinmux = <MT8173_PIN_123_KPCOL1__FUNC_GPIO123>,
641                                  <MT8173_PIN_124_KPCOL2__FUNC_GPIO124>;
642                         bias-pull-up;
643                 };
644
645                 tablet_mode_pins {
646                         pinmux = <MT8173_PIN_121_KPROW2__FUNC_GPIO121>;
647                         bias-pull-up;
648                 };
649         };
650
651         hdmi_mux_pins: hdmi_mux_pins {
652                 pins1 {
653                         pinmux = <MT8173_PIN_36_DAISYNC__FUNC_GPIO36>;
654                 };
655         };
656
657         i2c1_pins_a: i2c1 {
658                 da9211_pins {
659                         pinmux = <MT8173_PIN_15_EINT15__FUNC_GPIO15>;
660                         bias-pull-up;
661                 };
662         };
663
664         mmc0_pins_default: mmc0default {
665                 pins_cmd_dat {
666                         pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
667                                  <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
668                                  <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
669                                  <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
670                                  <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
671                                  <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
672                                  <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
673                                  <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
674                                  <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
675                         bias-pull-up;
676                 };
677
678                 pins_clk {
679                         pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
680                         bias-pull-down;
681                 };
682
683                 pins_rst {
684                         pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
685                         bias-pull-up;
686                 };
687         };
688
689         mmc1_pins_default: mmc1default {
690                 pins_cmd_dat {
691                         pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
692                                  <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
693                                  <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
694                                  <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
695                                  <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
696                         input-enable;
697                         drive-strength = <MTK_DRIVE_4mA>;
698                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
699                 };
700
701                 pins_clk {
702                         pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
703                         bias-pull-down;
704                         drive-strength = <MTK_DRIVE_4mA>;
705                 };
706
707                 pins_insert {
708                         pinmux = <MT8173_PIN_1_EINT1__FUNC_GPIO1>;
709                         bias-pull-up;
710                 };
711         };
712
713         mmc3_pins_default: mmc3default {
714                 pins_dat {
715                         pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>,
716                                  <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>,
717                                  <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>,
718                                  <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>;
719                         input-enable;
720                         drive-strength = <MTK_DRIVE_8mA>;
721                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
722                 };
723
724                 pins_cmd {
725                         pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>;
726                         input-enable;
727                         drive-strength = <MTK_DRIVE_8mA>;
728                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
729                 };
730
731                 pins_clk {
732                         pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>;
733                         bias-pull-down;
734                         drive-strength = <MTK_DRIVE_8mA>;
735                 };
736         };
737
738         mmc0_pins_uhs: mmc0 {
739                 pins_cmd_dat {
740                         pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
741                                  <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
742                                  <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
743                                  <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
744                                  <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
745                                  <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
746                                  <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
747                                  <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
748                                  <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
749                         input-enable;
750                         drive-strength = <MTK_DRIVE_6mA>;
751                         bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
752                 };
753
754                 pins_clk {
755                         pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
756                         drive-strength = <MTK_DRIVE_6mA>;
757                         bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
758                 };
759
760                 pins_ds {
761                         pinmux = <MT8173_PIN_67_MSDC0_DSL__FUNC_MSDC0_DSL>;
762                         drive-strength = <MTK_DRIVE_10mA>;
763                         bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
764                 };
765
766                 pins_rst {
767                         pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
768                         bias-pull-up;
769                 };
770         };
771
772         mmc1_pins_uhs: mmc1 {
773                 pins_cmd_dat {
774                         pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
775                                  <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
776                                  <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
777                                  <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
778                                  <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
779                         input-enable;
780                         drive-strength = <MTK_DRIVE_6mA>;
781                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
782                 };
783
784                 pins_clk {
785                         pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
786                         drive-strength = <MTK_DRIVE_8mA>;
787                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
788                 };
789         };
790
791         mmc3_pins_uhs: mmc3 {
792                 pins_dat {
793                         pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>,
794                                  <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>,
795                                  <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>,
796                                  <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>;
797                         input-enable;
798                         drive-strength = <MTK_DRIVE_8mA>;
799                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
800                 };
801
802                 pins_cmd {
803                         pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>;
804                         input-enable;
805                         drive-strength = <MTK_DRIVE_8mA>;
806                         bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
807                 };
808
809                 pins_clk {
810                         pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>;
811                         drive-strength = <MTK_DRIVE_8mA>;
812                         bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
813                 };
814         };
815
816         nor_gpio1_pins: nor {
817                 pins1 {
818                         pinmux = <MT8173_PIN_6_EINT6__FUNC_SFCS0>,
819                                  <MT8173_PIN_7_EINT7__FUNC_SFHOLD>,
820                                  <MT8173_PIN_8_EINT8__FUNC_SFIN>;
821                         input-enable;
822                         drive-strength = <MTK_DRIVE_4mA>;
823                         bias-pull-up;
824                 };
825
826                 pins2 {
827                         pinmux = <MT8173_PIN_5_EINT5__FUNC_SFOUT>;
828                         drive-strength = <MTK_DRIVE_4mA>;
829                         bias-pull-up;
830                 };
831
832                 pins_clk {
833                         pinmux = <MT8173_PIN_9_EINT9__FUNC_SFCK>;
834                         input-enable;
835                         drive-strength = <MTK_DRIVE_4mA>;
836                         bias-pull-up;
837                 };
838         };
839
840         panel_backlight_en_pins: panel_backlight_en_pins {
841                 pins1 {
842                         pinmux = <MT8173_PIN_95_PCM_TX__FUNC_GPIO95>;
843                 };
844         };
845
846         panel_fixed_pins: panel_fixed_pins {
847                 pins1 {
848                         pinmux = <MT8173_PIN_41_CMMCLK__FUNC_GPIO41>;
849                 };
850         };
851
852         ps8640_pins: ps8640_pins {
853                 pins1 {
854                         pinmux = <MT8173_PIN_92_PCM_CLK__FUNC_GPIO92>,
855                                  <MT8173_PIN_115_URTS0__FUNC_GPIO115>,
856                                  <MT8173_PIN_127_LCM_RST__FUNC_GPIO127>;
857                 };
858         };
859
860         ps8640_fixed_pins: ps8640_fixed_pins {
861                 pins1 {
862                         pinmux = <MT8173_PIN_30_URTS2__FUNC_GPIO30>;
863                 };
864         };
865
866         rt5650_irq: rt5650_irq {
867                 pins1 {
868                         pinmux = <MT8173_PIN_3_EINT3__FUNC_GPIO3>;
869                         bias-pull-down;
870                 };
871         };
872
873         sdio_fixed_3v3_pins: sdio_fixed_3v3_pins {
874                 pins1 {
875                         pinmux = <MT8173_PIN_85_AUD_DAT_MOSI__FUNC_GPIO85>;
876                         output-low;
877                 };
878         };
879
880         spi_pins_a: spi1 {
881                 pins1 {
882                         pinmux = <MT8173_PIN_0_EINT0__FUNC_GPIO0>;
883                         bias-pull-up;
884                 };
885
886                 pins_spi {
887                         pinmux = <MT8173_PIN_102_MSDC2_DAT2__FUNC_SPI_CK_1_>,
888                                  <MT8173_PIN_103_MSDC2_DAT3__FUNC_SPI_MI_1_>,
889                                  <MT8173_PIN_104_MSDC2_CLK__FUNC_SPI_MO_1_>,
890                                  <MT8173_PIN_105_MSDC2_CMD__FUNC_SPI_CS_1_>;
891                         bias-disable;
892                 };
893         };
894
895         trackpad_irq: trackpad_irq {
896                 pins1 {
897                         pinmux = <MT8173_PIN_117_URXD3__FUNC_GPIO117>;
898                         input-enable;
899                         bias-pull-up;
900                 };
901         };
902
903         usb_pins: usb {
904                 pins1 {
905                         pinmux = <MT8173_PIN_101_MSDC2_DAT1__FUNC_GPIO101>;
906                         output-high;
907                         bias-disable;
908                 };
909         };
910
911         wifi_wake_pins: wifi_wake_pins {
912                 pins1 {
913                         pinmux = <MT8173_PIN_38_CONN_RST__FUNC_GPIO38>;
914                         bias-pull-up;
915                 };
916         };
917 };
918
919 &pwm0 {
920         pinctrl-names = "default";
921         pinctrl-0 = <&disp_pwm0_pins>;
922         status = "okay";
923 };
924
925 &pwrap {
926         pmic: pmic {
927                 compatible = "mediatek,mt6397";
928                 #address-cells = <1>;
929                 #size-cells = <1>;
930                 interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_HIGH>;
931                 interrupt-controller;
932                 #interrupt-cells = <2>;
933
934                 clock: mt6397clock {
935                         compatible = "mediatek,mt6397-clk";
936                         #clock-cells = <1>;
937                 };
938
939                 pio6397: pinctrl {
940                         compatible = "mediatek,mt6397-pinctrl";
941                         gpio-controller;
942                         #gpio-cells = <2>;
943                 };
944
945                 regulator: mt6397regulator {
946                         compatible = "mediatek,mt6397-regulator";
947
948                         mt6397_vpca15_reg: buck_vpca15 {
949                                 regulator-compatible = "buck_vpca15";
950                                 regulator-name = "vpca15";
951                                 regulator-min-microvolt = < 700000>;
952                                 regulator-max-microvolt = <1350000>;
953                                 regulator-ramp-delay = <12500>;
954                                 regulator-always-on;
955                                 regulator-allowed-modes = <0 1>;
956                         };
957
958                         mt6397_vpca7_reg: buck_vpca7 {
959                                 regulator-compatible = "buck_vpca7";
960                                 regulator-name = "vpca7";
961                                 regulator-min-microvolt = < 700000>;
962                                 regulator-max-microvolt = <1350000>;
963                                 regulator-ramp-delay = <12500>;
964                                 regulator-enable-ramp-delay = <115>;
965                                 regulator-always-on;
966                         };
967
968                         mt6397_vsramca15_reg: buck_vsramca15 {
969                                 regulator-compatible = "buck_vsramca15";
970                                 regulator-name = "vsramca15";
971                                 regulator-min-microvolt = < 700000>;
972                                 regulator-max-microvolt = <1350000>;
973                                 regulator-ramp-delay = <12500>;
974                                 regulator-always-on;
975                         };
976
977                         mt6397_vsramca7_reg: buck_vsramca7 {
978                                 regulator-compatible = "buck_vsramca7";
979                                 regulator-name = "vsramca7";
980                                 regulator-min-microvolt = < 700000>;
981                                 regulator-max-microvolt = <1350000>;
982                                 regulator-ramp-delay = <12500>;
983                                 regulator-always-on;
984                         };
985
986                         mt6397_vcore_reg: buck_vcore {
987                                 regulator-compatible = "buck_vcore";
988                                 regulator-name = "vcore";
989                                 regulator-min-microvolt = < 700000>;
990                                 regulator-max-microvolt = <1350000>;
991                                 regulator-ramp-delay = <12500>;
992                                 regulator-always-on;
993                         };
994
995                         mt6397_vgpu_reg: buck_vgpu {
996                                 regulator-compatible = "buck_vgpu";
997                                 regulator-name = "vgpu";
998                                 regulator-min-microvolt = < 700000>;
999                                 regulator-max-microvolt = <1350000>;
1000                                 regulator-ramp-delay = <12500>;
1001                                 regulator-enable-ramp-delay = <115>;
1002                         };
1003
1004                         mt6397_vdrm_reg: buck_vdrm {
1005                                 regulator-compatible = "buck_vdrm";
1006                                 regulator-name = "vdrm";
1007                                 regulator-min-microvolt = <1200000>;
1008                                 regulator-max-microvolt = <1400000>;
1009                                 regulator-ramp-delay = <12500>;
1010                                 regulator-always-on;
1011                         };
1012
1013                         mt6397_vio18_reg: buck_vio18 {
1014                                 regulator-compatible = "buck_vio18";
1015                                 regulator-name = "vio18";
1016                                 regulator-min-microvolt = <1620000>;
1017                                 regulator-max-microvolt = <1980000>;
1018                                 regulator-ramp-delay = <12500>;
1019                                 regulator-always-on;
1020                         };
1021
1022                         mt6397_vtcxo_reg: ldo_vtcxo {
1023                                 regulator-compatible = "ldo_vtcxo";
1024                                 regulator-name = "vtcxo";
1025                                 regulator-always-on;
1026                         };
1027
1028                         mt6397_va28_reg: ldo_va28 {
1029                                 regulator-compatible = "ldo_va28";
1030                                 regulator-name = "va28";
1031                         };
1032
1033                         mt6397_vcama_reg: ldo_vcama {
1034                                 regulator-compatible = "ldo_vcama";
1035                                 regulator-name = "vcama";
1036                                 regulator-min-microvolt = <1800000>;
1037                                 regulator-max-microvolt = <1800000>;
1038                                 regulator-enable-ramp-delay = <218>;
1039                         };
1040
1041                         mt6397_vio28_reg: ldo_vio28 {
1042                                 regulator-compatible = "ldo_vio28";
1043                                 regulator-name = "vio28";
1044                                 regulator-always-on;
1045                         };
1046
1047                         mt6397_vusb_reg: ldo_vusb {
1048                                 regulator-compatible = "ldo_vusb";
1049                                 regulator-name = "vusb";
1050                         };
1051
1052                         mt6397_vmc_reg: ldo_vmc {
1053                                 regulator-compatible = "ldo_vmc";
1054                                 regulator-name = "vmc";
1055                                 regulator-min-microvolt = <1800000>;
1056                                 regulator-max-microvolt = <3300000>;
1057                                 regulator-enable-ramp-delay = <218>;
1058                         };
1059
1060                         mt6397_vmch_reg: ldo_vmch {
1061                                 regulator-compatible = "ldo_vmch";
1062                                 regulator-name = "vmch";
1063                                 regulator-min-microvolt = <3000000>;
1064                                 regulator-max-microvolt = <3300000>;
1065                                 regulator-enable-ramp-delay = <218>;
1066                         };
1067
1068                         mt6397_vemc_3v3_reg: ldo_vemc3v3 {
1069                                 regulator-compatible = "ldo_vemc3v3";
1070                                 regulator-name = "vemc_3v3";
1071                                 regulator-min-microvolt = <3000000>;
1072                                 regulator-max-microvolt = <3300000>;
1073                                 regulator-enable-ramp-delay = <218>;
1074                         };
1075
1076                         mt6397_vgp1_reg: ldo_vgp1 {
1077                                 regulator-compatible = "ldo_vgp1";
1078                                 regulator-name = "vcamd";
1079                                 regulator-min-microvolt = <1800000>;
1080                                 regulator-max-microvolt = <1800000>;
1081                                 regulator-enable-ramp-delay = <240>;
1082                         };
1083
1084                         mt6397_vgp2_reg: ldo_vgp2 {
1085                                 regulator-compatible = "ldo_vgp2";
1086                                 regulator-name = "vcamio";
1087                                 regulator-min-microvolt = <3300000>;
1088                                 regulator-max-microvolt = <3300000>;
1089                                 regulator-enable-ramp-delay = <218>;
1090                         };
1091
1092                         mt6397_vgp3_reg: ldo_vgp3 {
1093                                 regulator-compatible = "ldo_vgp3";
1094                                 regulator-name = "vcamaf";
1095                                 regulator-min-microvolt = <1800000>;
1096                                 regulator-max-microvolt = <1800000>;
1097                                 regulator-enable-ramp-delay = <218>;
1098                         };
1099
1100                         mt6397_vgp4_reg: ldo_vgp4 {
1101                                 regulator-compatible = "ldo_vgp4";
1102                                 regulator-name = "vgp4";
1103                                 regulator-min-microvolt = <1200000>;
1104                                 regulator-max-microvolt = <3300000>;
1105                                 regulator-enable-ramp-delay = <218>;
1106                         };
1107
1108                         mt6397_vgp5_reg: ldo_vgp5 {
1109                                 regulator-compatible = "ldo_vgp5";
1110                                 regulator-name = "vgp5";
1111                                 regulator-min-microvolt = <1200000>;
1112                                 regulator-max-microvolt = <3000000>;
1113                                 regulator-enable-ramp-delay = <218>;
1114                         };
1115
1116                         mt6397_vgp6_reg: ldo_vgp6 {
1117                                 regulator-compatible = "ldo_vgp6";
1118                                 regulator-name = "vgp6";
1119                                 regulator-min-microvolt = <3300000>;
1120                                 regulator-max-microvolt = <3300000>;
1121                                 regulator-enable-ramp-delay = <218>;
1122                                 regulator-always-on;
1123                         };
1124
1125                         mt6397_vibr_reg: ldo_vibr {
1126                                 regulator-compatible = "ldo_vibr";
1127                                 regulator-name = "vibr";
1128                                 regulator-min-microvolt = <1300000>;
1129                                 regulator-max-microvolt = <3300000>;
1130                                 regulator-enable-ramp-delay = <218>;
1131                         };
1132                 };
1133
1134                 rtc: mt6397rtc {
1135                         compatible = "mediatek,mt6397-rtc";
1136                 };
1137         };
1138 };
1139
1140 &spi {
1141         pinctrl-names = "default";
1142         pinctrl-0 = <&spi_pins_a>;
1143         mediatek,pad-select = <1>;
1144         status = "okay";
1145         /* clients */
1146         cros_ec: ec@0 {
1147                 compatible = "google,cros-ec-spi";
1148                 reg = <0x0>;
1149                 spi-max-frequency = <12000000>;
1150                 interrupts-extended = <&pio 0 IRQ_TYPE_LEVEL_LOW>;
1151                 google,cros-ec-spi-msg-delay = <500>;
1152                 wakeup-source;
1153
1154                 i2c_tunnel: i2c-tunnel0 {
1155                         compatible = "google,cros-ec-i2c-tunnel";
1156                         google,remote-bus = <0>;
1157                         #address-cells = <1>;
1158                         #size-cells = <0>;
1159
1160                         battery: sbs-battery@b {
1161                                 compatible = "sbs,sbs-battery";
1162                                 reg = <0xb>;
1163                                 sbs,i2c-retry-count = <2>;
1164                                 sbs,poll-retry-count = <1>;
1165                         };
1166                 };
1167         };
1168 };
1169
1170 &ssusb {
1171         dr_mode = "host";
1172         wakeup-source;
1173         vusb33-supply = <&mt6397_vusb_reg>;
1174         status = "okay";
1175 };
1176
1177 &thermal {
1178         bank0-supply = <&mt6397_vpca15_reg>;
1179         bank1-supply = <&da9211_vcpu_reg>;
1180 };
1181
1182 &uart0 {
1183         status = "okay";
1184 };
1185
1186 &usb_host {
1187         pinctrl-names = "default";
1188         pinctrl-0 = <&usb_pins>;
1189         vusb33-supply = <&mt6397_vusb_reg>;
1190         status = "okay";
1191 };
1192
1193 #include <arm/cros-ec-keyboard.dtsi>