]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: mediatek: mt8395-genio-1200-evk: Move common parts to dtsi
authorMacpaul Lin <macpaul.lin@mediatek.com>
Thu, 18 Sep 2025 12:17:48 +0000 (20:17 +0800)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Mon, 13 Oct 2025 09:33:51 +0000 (11:33 +0200)
In preparation for introducing the Genio 1200 EVK UFS board support, split
mt8395-genio-1200-evk.dts file in two to create mt8395-genio-common.dtsi
file, containing common definitions for both boards.

Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8395-genio-1200-evk.dts
arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi [new file with mode: 0644]

index cf8cd37f570845a836a97564fd64a6a9a0e4e4d0..68455f28c246743eb8b9afcad2f2dcead23d5cc5 100644 (file)
  */
 /dts-v1/;
 
-#include "mt8195.dtsi"
-#include "mt6359.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
-#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
-#include <dt-bindings/spmi/spmi.h>
-#include <dt-bindings/usb/pd.h>
+#include "mt8395-genio-common.dtsi"
 
 / {
        model = "MediaTek Genio 1200 EVK-P1V2-EMMC";
        compatible = "mediatek,mt8395-evk", "mediatek,mt8395",
                     "mediatek,mt8195";
-
-       aliases {
-               serial0 = &uart0;
-               ethernet0 = &eth;
-       };
-
-       chosen {
-               stdout-path = "serial0:921600n8";
-       };
-
-       firmware {
-               optee {
-                       compatible = "linaro,optee-tz";
-                       method = "smc";
-               };
-       };
-
-       memory@40000000 {
-               device_type = "memory";
-               reg = <0 0x40000000 0x2 0x00000000>;
-       };
-
-       reserved-memory {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               /*
-                * 12 MiB reserved for OP-TEE (BL32)
-                * +-----------------------+ 0x43e0_0000
-                * |      SHMEM 2MiB       |
-                * +-----------------------+ 0x43c0_0000
-                * |        | TA_RAM  8MiB |
-                * + TZDRAM +--------------+ 0x4340_0000
-                * |        | TEE_RAM 2MiB |
-                * +-----------------------+ 0x4320_0000
-                */
-               optee_reserved: optee@43200000 {
-                       no-map;
-                       reg = <0 0x43200000 0 0x00c00000>;
-               };
-
-               scp_mem: memory@50000000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x50000000 0 0x2900000>;
-                       no-map;
-               };
-
-               vpu_mem: memory@53000000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x53000000 0 0x1400000>; /* 20 MB */
-               };
-
-               /* 2 MiB reserved for ARM Trusted Firmware (BL31) */
-               bl31_secmon_mem: memory@54600000 {
-                       no-map;
-                       reg = <0 0x54600000 0x0 0x200000>;
-               };
-
-               adsp_mem: memory@60000000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x60000000 0 0xf00000>;
-                       no-map;
-               };
-
-               afe_dma_mem: memory@60f00000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x60f00000 0 0x100000>;
-                       no-map;
-               };
-
-               adsp_dma_mem: memory@61000000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x61000000 0 0x100000>;
-                       no-map;
-               };
-
-               apu_mem: memory@62000000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0 0x62000000 0 0x1400000>; /* 20 MB */
-               };
-       };
-
-       backlight_lcm0: backlight-lcm0 {
-               compatible = "pwm-backlight";
-               brightness-levels = <0 1023>;
-               default-brightness-level = <576>;
-               num-interpolated-steps = <1023>;
-               pwms = <&disp_pwm0 0 500000>;
-       };
-
-       backlight_lcd1: backlight-lcd1 {
-               compatible = "pwm-backlight";
-               pwms = <&disp_pwm1 0 500000>;
-               enable-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
-               brightness-levels = <0 1023>;
-               num-interpolated-steps = <1023>;
-               default-brightness-level = <576>;
-               status = "disabled";
-       };
-
-       can_clk: can-clk {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <20000000>;
-               clock-output-names = "can-clk";
-       };
-
-       edp_panel_fixed_3v3: regulator-0 {
-               compatible = "regulator-fixed";
-               regulator-name = "edp_panel_3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               gpio = <&pio 6 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&edp_panel_3v3_en_pins>;
-       };
-
-       edp_panel_fixed_12v: regulator-1 {
-               compatible = "regulator-fixed";
-               regulator-name = "edp_backlight_12v";
-               regulator-min-microvolt = <12000000>;
-               regulator-max-microvolt = <12000000>;
-               enable-active-high;
-               gpio = <&pio 96 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&edp_panel_12v_en_pins>;
-       };
-
-       keys: gpio-keys {
-               compatible = "gpio-keys";
-
-               button-volume-up {
-                       wakeup-source;
-                       debounce-interval = <100>;
-                       gpios = <&pio 106 GPIO_ACTIVE_LOW>;
-                       label = "volume_up";
-                       linux,code = <KEY_VOLUMEUP>;
-               };
-       };
-
-       lcm0_iovcc: regulator-vio18-lcm0 {
-               compatible = "regulator-fixed";
-               regulator-name = "vio18_lcm0";
-               enable-active-high;
-               gpio = <&pio 47 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&dsi0_vreg_en_pins>;
-               vin-supply = <&mt6360_ldo2>;
-       };
-
-       lcm0_vddp: regulator-vsys-lcm0 {
-               compatible = "regulator-fixed";
-               regulator-name = "vsys_lcm0";
-               regulator-always-on;
-               regulator-boot-on;
-               vin-supply = <&mt6360_ldo1>;
-       };
-
-       wifi_fixed_3v3: regulator-2 {
-               compatible = "regulator-fixed";
-               regulator-name = "wifi_3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&pio 135 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               regulator-always-on;
-       };
-};
-
-&adsp {
-       memory-region = <&adsp_dma_mem>, <&adsp_mem>;
-       status = "okay";
-};
-
-&afe {
-       memory-region = <&afe_dma_mem>;
-       status = "okay";
-};
-
-&disp_pwm0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&disp_pwm0_pins>;
-       status = "okay";
-};
-
-&dither0_in {
-       remote-endpoint = <&gamma0_out>;
-};
-
-&dither0_out {
-       remote-endpoint = <&dsi0_in>;
-};
-
-&dmic_codec {
-       wakeup-delay-ms = <200>;
-};
-
-&dsi0 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-
-       panel@0 {
-               compatible = "startek,kd070fhfid078", "himax,hx8279";
-               reg = <0>;
-               backlight = <&backlight_lcm0>;
-               enable-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&pio 108 GPIO_ACTIVE_HIGH>;
-               iovcc-supply = <&lcm0_iovcc>;
-               vdd-supply = <&lcm0_vddp>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&panel_default_pins>;
-
-               port {
-                       dsi_panel_in: endpoint {
-                               remote-endpoint = <&dsi0_out>;
-                       };
-               };
-       };
-
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-                       dsi0_in: endpoint {
-                               remote-endpoint = <&dither0_out>;
-                       };
-               };
-
-               port@1 {
-                       reg = <1>;
-                       dsi0_out: endpoint {
-                               remote-endpoint = <&dsi_panel_in>;
-                       };
-               };
-       };
-};
-
-&eth {
-       phy-mode ="rgmii-rxid";
-       phy-handle = <&eth_phy0>;
-       snps,reset-gpio = <&pio 93 GPIO_ACTIVE_HIGH>;
-       snps,reset-delays-us = <0 10000 10000>;
-       mediatek,tx-delay-ps = <2030>;
-       mediatek,mac-wol;
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&eth_default_pins>;
-       pinctrl-1 = <&eth_sleep_pins>;
-       status = "okay";
-
-       mdio {
-               compatible = "snps,dwmac-mdio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               eth_phy0: ethernet-phy@1 {
-                       compatible = "ethernet-phy-id001c.c916";
-                       reg = <0x1>;
-               };
-       };
-};
-
-&gamma0_out {
-       remote-endpoint = <&dither0_in>;
-};
-
-&gpu {
-       mali-supply = <&mt6315_7_vbuck1>;
-       status = "okay";
-};
-
-&i2c0 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&i2c0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&i2c1 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&i2c1_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       touchscreen@5d {
-               compatible = "goodix,gt9271";
-               reg = <0x5d>;
-               interrupts-extended = <&pio 132 IRQ_TYPE_EDGE_RISING>;
-               irq-gpios = <&pio 132 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&pio 133 GPIO_ACTIVE_HIGH>;
-               AVDD28-supply = <&mt6360_ldo1>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&touch_pins>;
-       };
-};
-
-&i2c2 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&i2c2_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-
-       typec-mux@48 {
-               compatible = "ite,it5205";
-               reg = <0x48>;
-               vcc-supply = <&mt6359_vibr_ldo_reg>;
-               mode-switch;
-               orientation-switch;
-               status = "okay";
-
-               port {
-                       it5205_sbu_ep: endpoint {
-                               remote-endpoint = <&mt6360_ssusb_sbu_ep>;
-                       };
-               };
-       };
-};
-
-&i2c6 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&i2c6_pins>;
-       pinctrl-names = "default";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-
-       mt6360: pmic@34 {
-               compatible = "mediatek,mt6360";
-               reg = <0x34>;
-               interrupt-parent = <&pio>;
-               interrupts = <128 IRQ_TYPE_EDGE_FALLING>;
-               interrupt-names = "IRQB";
-               interrupt-controller;
-               #interrupt-cells = <1>;
-               pinctrl-0 = <&mt6360_pins>;
-
-               charger {
-                       compatible = "mediatek,mt6360-chg";
-                       richtek,vinovp-microvolt = <14500000>;
-
-                       otg_vbus_regulator: usb-otg-vbus-regulator {
-                               regulator-name = "usb-otg-vbus";
-                               regulator-min-microvolt = <4425000>;
-                               regulator-max-microvolt = <5825000>;
-                       };
-               };
-
-               regulator {
-                       compatible = "mediatek,mt6360-regulator";
-                       LDO_VIN3-supply = <&mt6360_buck2>;
-
-                       mt6360_buck1: buck1 {
-                               regulator-name = "emi_vdd2";
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1300000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP
-                                                          MT6360_OPMODE_ULP>;
-                               regulator-always-on;
-                       };
-
-                       mt6360_buck2: buck2 {
-                               regulator-name = "emi_vddq";
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1300000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP
-                                                          MT6360_OPMODE_ULP>;
-                               regulator-always-on;
-                       };
-
-                       mt6360_ldo1: ldo1 {
-                               regulator-name = "tp1_p3v0";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                               regulator-always-on;
-                       };
-
-                       mt6360_ldo2: ldo2 {
-                               regulator-name = "panel1_p1v8";
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                       };
-
-                       mt6360_ldo3: ldo3 {
-                               regulator-name = "vmc_pmu";
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <3600000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                       };
-
-                       mt6360_ldo5: ldo5 {
-                               regulator-name = "vmch_pmu";
-                               regulator-min-microvolt = <2700000>;
-                               regulator-max-microvolt = <3600000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                       };
-
-                       /* This is a measure point, which name is mt6360_ldo1 on schematic */
-                       mt6360_ldo6: ldo6 {
-                               regulator-name = "mt6360_ldo1";
-                               regulator-min-microvolt = <500000>;
-                               regulator-max-microvolt = <2100000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                       };
-
-                       mt6360_ldo7: ldo7 {
-                               regulator-name = "emi_vmddr_en";
-                               regulator-min-microvolt = <500000>;
-                               regulator-max-microvolt = <2100000>;
-                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
-                                                          MT6360_OPMODE_LP>;
-                               regulator-always-on;
-                       };
-               };
-
-               tcpc {
-                       compatible = "mediatek,mt6360-tcpc";
-                       interrupts-extended = <&pio 17 IRQ_TYPE_LEVEL_LOW>;
-                       interrupt-names = "PD_IRQB";
-
-                       connector {
-                               compatible = "usb-c-connector";
-                               label = "USB-C";
-                               data-role = "dual";
-                               op-sink-microwatt = <10000000>;
-                               power-role = "dual";
-                               try-power-role = "sink";
-
-                               source-pdos = <PDO_FIXED(5000, 1000,
-                                                        PDO_FIXED_DUAL_ROLE |
-                                                        PDO_FIXED_DATA_SWAP)>;
-                               sink-pdos = <PDO_FIXED(5000, 2000,
-                                                      PDO_FIXED_DUAL_ROLE |
-                                                      PDO_FIXED_DATA_SWAP)>;
-
-                               pd-revision = /bits/ 8 <0x03 0x01 0x01 0x06>;
-
-                               altmodes {
-                                       displayport {
-                                               svid = /bits/ 16 <0xff01>;
-                                               vdo = <0x00001c46>;
-                                       };
-                               };
-
-                               ports {
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-
-                                       port@0 {
-                                               reg = <0>;
-                                               typec_con_hs: endpoint {
-                                                       remote-endpoint = <&mtu3_hs0_role_sw>;
-                                               };
-                                       };
-
-                                       port@1 {
-                                               reg = <1>;
-                                               typec_con_ss: endpoint {
-                                                       remote-endpoint = <&mtu3_ss0_role_sw>;
-                                               };
-                                       };
-
-                                       port@2 {
-                                               reg = <2>;
-                                               mt6360_ssusb_sbu_ep: endpoint {
-                                                       remote-endpoint = <&it5205_sbu_ep>;
-                                               };
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
-&mfg0 {
-       domain-supply = <&mt6315_7_vbuck1>;
-};
-
-&mfg1 {
-       domain-supply = <&mt6359_vsram_others_ldo_reg>;
-};
-
-&mipi_tx0 {
-       status = "okay";
-};
-
-&mmc0 {
-       status = "okay";
-       pinctrl-names = "default", "state_uhs";
-       pinctrl-0 = <&mmc0_default_pins>;
-       pinctrl-1 = <&mmc0_uhs_pins>;
-       bus-width = <8>;
-       max-frequency = <200000000>;
-       cap-mmc-highspeed;
-       mmc-hs200-1_8v;
-       mmc-hs400-1_8v;
-       cap-mmc-hw-reset;
-       no-sdio;
-       no-sd;
-       hs400-ds-delay = <0x14c11>;
-       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
-       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
-       non-removable;
-};
-
-&mmc1 {
-       pinctrl-names = "default", "state_uhs";
-       pinctrl-0 = <&mmc1_default_pins>;
-       pinctrl-1 = <&mmc1_uhs_pins>;
-       bus-width = <4>;
-       max-frequency = <200000000>;
-       cap-sd-highspeed;
-       sd-uhs-sdr50;
-       sd-uhs-sdr104;
-       no-mmc;
-       no-sdio;
-       vmmc-supply = <&mt6360_ldo5>;
-       vqmmc-supply = <&mt6360_ldo3>;
-       status = "okay";
-       non-removable;
-};
-
-&mt6359_vaud18_ldo_reg {
-       regulator-always-on;
-};
-
-&mt6359_vbbck_ldo_reg {
-       regulator-always-on;
-};
-
-/* For USB Hub */
-&mt6359_vcamio_ldo_reg {
-       regulator-always-on;
-};
-
-&mt6359_vcn33_2_bt_ldo_reg {
-       regulator-min-microvolt = <3300000>;
-       regulator-max-microvolt = <3300000>;
-};
-
-&mt6359_vcore_buck_reg {
-       regulator-always-on;
-};
-
-&mt6359_vgpu11_buck_reg {
-       regulator-always-on;
-};
-
-&mt6359_vpu_buck_reg {
-       regulator-always-on;
-};
-
-&mt6359_vrf12_ldo_reg {
-       regulator-always-on;
-};
-
-/* for GPU SRAM */
-&mt6359_vsram_others_ldo_reg {
-       regulator-min-microvolt = <750000>;
-       regulator-max-microvolt = <750000>;
-};
-
-&mt6359codec {
-       mediatek,mic-type-0 = <1>; /* ACC */
-       mediatek,mic-type-1 = <3>; /* DCC */
-       mediatek,mic-type-2 = <1>; /* ACC */
-};
-
-&ovl0_in {
-       remote-endpoint = <&vdosys0_ep_main>;
-};
-
-&pcie0 {
-       pinctrl-names = "default", "idle";
-       pinctrl-0 = <&pcie0_default_pins>;
-       pinctrl-1 = <&pcie0_idle_pins>;
-       status = "okay";
-};
-
-&pcie1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie1_default_pins>;
-       status = "disabled";
-};
-
-&pciephy {
-       status = "okay";
-};
-
-&pio {
-       audio_default_pins: audio-default-pins {
-               pins-cmd-dat {
-                       pinmux = <PINMUX_GPIO61__FUNC_DMIC1_CLK>,
-                                <PINMUX_GPIO62__FUNC_DMIC1_DAT>,
-                                <PINMUX_GPIO65__FUNC_PCM_DO>,
-                                <PINMUX_GPIO66__FUNC_PCM_CLK>,
-                                <PINMUX_GPIO67__FUNC_PCM_DI>,
-                                <PINMUX_GPIO68__FUNC_PCM_SYNC>,
-                                <PINMUX_GPIO69__FUNC_AUD_CLK_MOSI>,
-                                <PINMUX_GPIO70__FUNC_AUD_SYNC_MOSI>,
-                                <PINMUX_GPIO71__FUNC_AUD_DAT_MOSI0>,
-                                <PINMUX_GPIO72__FUNC_AUD_DAT_MOSI1>,
-                                <PINMUX_GPIO73__FUNC_AUD_DAT_MISO0>,
-                                <PINMUX_GPIO74__FUNC_AUD_DAT_MISO1>,
-                                <PINMUX_GPIO75__FUNC_AUD_DAT_MISO2>;
-               };
-       };
-
-       disp_pwm1_default_pins: disp-pwm1-default-pins {
-               pins1 {
-                       pinmux = <PINMUX_GPIO104__FUNC_DISP_PWM1>;
-               };
-       };
-
-       edp_panel_12v_en_pins: edp-panel-12v-en-pins {
-               pins1 {
-                       pinmux = <PINMUX_GPIO96__FUNC_GPIO96>;
-                       output-high;
-               };
-       };
-
-       edp_panel_3v3_en_pins: edp-panel-3v3-en-pins {
-               pins1 {
-                       pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
-                       output-high;
-               };
-       };
-
-       eth_default_pins: eth-default-pins {
-               pins-cc {
-                       pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
-                                <PINMUX_GPIO86__FUNC_GBE_RXC>,
-                                <PINMUX_GPIO87__FUNC_GBE_RXDV>,
-                                <PINMUX_GPIO88__FUNC_GBE_TXEN>;
-                       drive-strength = <8>;
-               };
-
-               pins-mdio {
-                       pinmux = <PINMUX_GPIO89__FUNC_GBE_MDC>,
-                                <PINMUX_GPIO90__FUNC_GBE_MDIO>;
-                       input-enable;
-               };
-
-               pins-power {
-                       pinmux = <PINMUX_GPIO91__FUNC_GPIO91>,
-                                <PINMUX_GPIO92__FUNC_GPIO92>;
-                       output-high;
-               };
-
-               pins-rxd {
-                       pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>,
-                                <PINMUX_GPIO82__FUNC_GBE_RXD2>,
-                                <PINMUX_GPIO83__FUNC_GBE_RXD1>,
-                                <PINMUX_GPIO84__FUNC_GBE_RXD0>;
-               };
-
-               pins-txd {
-                       pinmux = <PINMUX_GPIO77__FUNC_GBE_TXD3>,
-                                <PINMUX_GPIO78__FUNC_GBE_TXD2>,
-                                <PINMUX_GPIO79__FUNC_GBE_TXD1>,
-                                <PINMUX_GPIO80__FUNC_GBE_TXD0>;
-                       drive-strength = <8>;
-               };
-       };
-
-       eth_sleep_pins: eth-sleep-pins {
-               pins-cc {
-                       pinmux = <PINMUX_GPIO85__FUNC_GPIO85>,
-                                <PINMUX_GPIO86__FUNC_GPIO86>,
-                                <PINMUX_GPIO87__FUNC_GPIO87>,
-                                <PINMUX_GPIO88__FUNC_GPIO88>;
-               };
-
-               pins-mdio {
-                       pinmux = <PINMUX_GPIO89__FUNC_GPIO89>,
-                                <PINMUX_GPIO90__FUNC_GPIO90>;
-                       input-disable;
-                       bias-disable;
-               };
-
-               pins-rxd {
-                       pinmux = <PINMUX_GPIO81__FUNC_GPIO81>,
-                                <PINMUX_GPIO82__FUNC_GPIO82>,
-                                <PINMUX_GPIO83__FUNC_GPIO83>,
-                                <PINMUX_GPIO84__FUNC_GPIO84>;
-               };
-
-               pins-txd {
-                       pinmux = <PINMUX_GPIO77__FUNC_GPIO77>,
-                                <PINMUX_GPIO78__FUNC_GPIO78>,
-                                <PINMUX_GPIO79__FUNC_GPIO79>,
-                                <PINMUX_GPIO80__FUNC_GPIO80>;
-               };
-       };
-
-       gpio_key_pins: gpio-keys-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
-                       bias-pull-up;
-                       input-enable;
-               };
-       };
-
-       i2c0_pins: i2c0-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
-                                <PINMUX_GPIO9__FUNC_SCL0>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
-                       drive-strength-microamp = <1000>;
-               };
-       };
-
-       i2c1_pins: i2c1-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
-                                <PINMUX_GPIO11__FUNC_SCL1>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
-                       drive-strength-microamp = <1000>;
-               };
-       };
-
-       i2c2_pins: i2c2-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
-                                <PINMUX_GPIO13__FUNC_SCL2>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
-                       drive-strength = <6>;
-               };
-       };
-
-       i2c6_pins: i2c6-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
-                                <PINMUX_GPIO26__FUNC_SCL6>;
-                       bias-pull-up;
-               };
-       };
-
-       mmc0_default_pins: mmc0-default-pins {
-               pins-clk {
-                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <6>;
-                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
-               };
-
-               pins-cmd-dat {
-                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
-                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
-                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
-                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
-                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
-                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
-                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
-                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
-                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
-                       input-enable;
-                       drive-strength = <6>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-
-               pins-rst {
-                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <6>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-       };
-
-       mmc0_uhs_pins: mmc0-uhs-pins {
-               pins-clk {
-                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <8>;
-                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
-               };
-
-               pins-cmd-dat {
-                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
-                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
-                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
-                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
-                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
-                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
-                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
-                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
-                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
-                       input-enable;
-                       drive-strength = <8>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-
-               pins-ds {
-                       pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
-                       drive-strength = <8>;
-                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
-               };
-
-               pins-rst {
-                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <8>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-       };
-
-       mmc1_default_pins: mmc1-default-pins {
-               pins-clk {
-                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <8>;
-                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
-               };
-
-               pins-cmd-dat {
-                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
-                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
-                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
-                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
-                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
-                       input-enable;
-                       drive-strength = <8>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-       };
-
-       mmc1_uhs_pins: mmc1-uhs-pins {
-               pins-clk {
-                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <8>;
-                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
-               };
-
-               pins-cmd-dat {
-                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
-                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
-                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
-                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
-                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
-                       input-enable;
-                       drive-strength = <8>;
-                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-               };
-       };
-
-       mt6360_pins: mt6360-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO17__FUNC_GPIO17>,
-                                <PINMUX_GPIO128__FUNC_GPIO128>;
-                       input-enable;
-                       bias-pull-up;
-               };
-       };
-
-       dsi0_vreg_en_pins: dsi0-vreg-en-pins {
-               pins-pwr-en {
-                       pinmux = <PINMUX_GPIO47__FUNC_GPIO47>;
-                       output-low;
-               };
-       };
-
-       panel_default_pins: panel-default-pins {
-               pins-rst {
-                       pinmux = <PINMUX_GPIO108__FUNC_GPIO108>;
-                       output-high;
-               };
-
-               pins-en {
-                       pinmux = <PINMUX_GPIO48__FUNC_GPIO48>;
-                       output-low;
-               };
-       };
-
-       pcie0_default_pins: pcie0-default-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
-                                <PINMUX_GPIO20__FUNC_PERSTN>,
-                                <PINMUX_GPIO21__FUNC_CLKREQN>;
-                       bias-pull-up;
-               };
-       };
-
-       pcie0_idle_pins: pcie0-idle-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO20__FUNC_GPIO20>;
-                       bias-disable;
-                       output-low;
-               };
-       };
-
-       pcie1_default_pins: pcie1-default-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO22__FUNC_PERSTN_1>,
-                                <PINMUX_GPIO23__FUNC_CLKREQN_1>,
-                                <PINMUX_GPIO24__FUNC_WAKEN_1>;
-                       bias-pull-up;
-               };
-       };
-
-       disp_pwm0_pins: disp-pwm0-pins {
-               pins-disp-pwm {
-                       pinmux = <PINMUX_GPIO97__FUNC_DISP_PWM0>;
-               };
-       };
-
-       spi1_pins: spi1-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO136__FUNC_SPIM1_CSB>,
-                                <PINMUX_GPIO137__FUNC_SPIM1_CLK>,
-                                <PINMUX_GPIO138__FUNC_SPIM1_MO>,
-                                <PINMUX_GPIO139__FUNC_SPIM1_MI>;
-                       bias-disable;
-               };
-       };
-
-       spi2_pins: spi-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO140__FUNC_SPIM2_CSB>,
-                                <PINMUX_GPIO141__FUNC_SPIM2_CLK>,
-                                <PINMUX_GPIO142__FUNC_SPIM2_MO>,
-                                <PINMUX_GPIO143__FUNC_SPIM2_MI>;
-                       bias-disable;
-               };
-       };
-
-       touch_pins: touch-pins {
-               pins-irq {
-                       pinmux = <PINMUX_GPIO132__FUNC_GPIO132>;
-                       input-enable;
-                       bias-disable;
-               };
-
-               pins-reset {
-                       pinmux = <PINMUX_GPIO133__FUNC_GPIO133>;
-                       output-high;
-               };
-       };
-
-       u3_p0_vbus: u3-p0-vbus-default-pins {
-               pins-vbus {
-                       pinmux = <PINMUX_GPIO63__FUNC_VBUSVALID>;
-                       input-enable;
-               };
-       };
-
-       uart0_pins: uart0-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
-                                <PINMUX_GPIO99__FUNC_URXD0>;
-               };
-       };
-
-       uart1_pins: uart1-pins {
-               pins {
-                       pinmux = <PINMUX_GPIO100__FUNC_URTS1>,
-                                <PINMUX_GPIO101__FUNC_UCTS1>,
-                                <PINMUX_GPIO102__FUNC_UTXD1>,
-                                <PINMUX_GPIO103__FUNC_URXD1>;
-               };
-       };
-};
-
-&pmic {
-       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
-
-       mt6359keys: keys {
-               compatible = "mediatek,mt6359-keys";
-               mediatek,long-press-mode = <1>;
-               power-off-time-sec = <0>;
-
-               power-key {
-                       linux,keycodes = <KEY_POWER>;
-                       wakeup-source;
-               };
-
-               home {
-                       linux,keycodes = <KEY_HOME>;
-               };
-       };
-};
-
-&scp {
-       memory-region = <&scp_mem>;
-       firmware-name = "mediatek/mt8195/scp.img";
-       status = "okay";
-};
-
-&sound {
-       compatible = "mediatek,mt8195_mt6359";
-       model = "mt8395-evk";
-       pinctrl-names = "default";
-       pinctrl-0 = <&audio_default_pins>;
-       audio-routing =
-               "Headphone", "Headphone L",
-               "Headphone", "Headphone R";
-       mediatek,adsp = <&adsp>;
-       status = "okay";
-
-       headphone-dai-link {
-               link-name = "DL_SRC_BE";
-
-               codec {
-                       sound-dai = <&pmic 0>;
-               };
-       };
-};
-
-&spi1 {
-       pinctrl-0 = <&spi1_pins>;
-       pinctrl-names = "default";
-       mediatek,pad-select = <0>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-       cs-gpios = <&pio 64 GPIO_ACTIVE_LOW>;
-
-       can0: can@0 {
-               compatible = "microchip,mcp2518fd";
-               reg = <0>;
-               clocks = <&can_clk>;
-               spi-max-frequency = <20000000>;
-               interrupts-extended = <&pio 16 IRQ_TYPE_LEVEL_LOW>;
-               vdd-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
-               xceiver-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
-       };
-};
-
-&spi2 {
-       pinctrl-0 = <&spi2_pins>;
-       pinctrl-names = "default";
-       mediatek,pad-select = <0>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-       status = "okay";
-};
-
-&spmi {
-       #address-cells = <2>;
-       #size-cells = <0>;
-
-       mt6315_6: pmic@6 {
-               compatible = "mediatek,mt6315-regulator";
-               reg = <0x6 SPMI_USID>;
-
-               regulators {
-                       mt6315_6_vbuck1: vbuck1 {
-                               regulator-name = "Vbcpu";
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1193750>;
-                               regulator-enable-ramp-delay = <256>;
-                               regulator-allowed-modes = <0 1 2>;
-                               regulator-always-on;
-                       };
-               };
-       };
-
-       mt6315_7: pmic@7 {
-               compatible = "mediatek,mt6315-regulator";
-               reg = <0x7 SPMI_USID>;
-
-               regulators {
-                       mt6315_7_vbuck1: vbuck1 {
-                               regulator-name = "Vgpu";
-                               regulator-min-microvolt = <546000>;
-                               regulator-max-microvolt = <787000>;
-                               regulator-enable-ramp-delay = <256>;
-                               regulator-allowed-modes = <0 1 2>;
-                       };
-               };
-       };
-};
-
-&u3phy0 {
-       status = "okay";
-};
-
-&u3phy1 {
-       status = "okay";
-
-       u3port1: usb-phy@700 {
-               mediatek,force-mode;
-       };
-};
-
-&u3phy2 {
-       status = "okay";
-};
-
-&u3phy3 {
-       status = "okay";
-};
-
-&uart0 {
-       pinctrl-0 = <&uart0_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&uart1 {
-       pinctrl-0 = <&uart1_pins>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&ufsphy {
-       status = "disabled";
-};
-
-&ssusb0 {
-       dr_mode = "otg";
-       pinctrl-names = "default";
-       pinctrl-0 = <&u3_p0_vbus>;
-       usb-role-switch;
-       vusb33-supply = <&mt6359_vusb_ldo_reg>;
-       status = "okay";
-
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-                       mtu3_hs0_role_sw: endpoint {
-                               remote-endpoint = <&typec_con_hs>;
-                       };
-               };
-
-               port@1 {
-                       reg = <1>;
-                       mtu3_ss0_role_sw: endpoint {
-                               remote-endpoint = <&typec_con_ss>;
-                       };
-               };
-       };
-};
-
-&ssusb2 {
-       vusb33-supply = <&mt6359_vusb_ldo_reg>;
-       status = "okay";
-};
-
-&ssusb3 {
-       vusb33-supply = <&mt6359_vusb_ldo_reg>;
-       status = "okay";
-};
-
-&vdosys0 {
-       port {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               vdosys0_ep_main: endpoint@0 {
-                       reg = <0>;
-                       remote-endpoint = <&ovl0_in>;
-               };
-       };
-};
-
-&xhci0 {
-       status = "okay";
-};
-
-&xhci1 {
-       vusb33-supply = <&mt6359_vusb_ldo_reg>;
-       status = "okay";
-};
-
-&xhci2 {
-       status = "okay";
-};
-
-&xhci3 {
-       status = "okay";
 };
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
new file mode 100644 (file)
index 0000000..3b67962
--- /dev/null
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 MediaTek Inc.
+ * Author: Ben Lok <ben.lok@mediatek.com>
+ *        Macpaul Lin <macpaul.lin@mediatek.com>
+ */
+/dts-v1/;
+
+#include "mt8195.dtsi"
+#include "mt6359.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
+#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
+#include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &eth;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0x2 0x00000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /*
+                * 12 MiB reserved for OP-TEE (BL32)
+                * +-----------------------+ 0x43e0_0000
+                * |      SHMEM 2MiB       |
+                * +-----------------------+ 0x43c0_0000
+                * |        | TA_RAM  8MiB |
+                * + TZDRAM +--------------+ 0x4340_0000
+                * |        | TEE_RAM 2MiB |
+                * +-----------------------+ 0x4320_0000
+                */
+               optee_reserved: optee@43200000 {
+                       no-map;
+                       reg = <0 0x43200000 0 0x00c00000>;
+               };
+
+               scp_mem: memory@50000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x50000000 0 0x2900000>;
+                       no-map;
+               };
+
+               vpu_mem: memory@53000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x53000000 0 0x1400000>; /* 20 MB */
+               };
+
+               /* 2 MiB reserved for ARM Trusted Firmware (BL31) */
+               bl31_secmon_mem: memory@54600000 {
+                       no-map;
+                       reg = <0 0x54600000 0x0 0x200000>;
+               };
+
+               adsp_mem: memory@60000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x60000000 0 0xf00000>;
+                       no-map;
+               };
+
+               afe_dma_mem: memory@60f00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x60f00000 0 0x100000>;
+                       no-map;
+               };
+
+               adsp_dma_mem: memory@61000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x61000000 0 0x100000>;
+                       no-map;
+               };
+
+               apu_mem: memory@62000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x62000000 0 0x1400000>; /* 20 MB */
+               };
+       };
+
+       backlight_lcm0: backlight-lcm0 {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 1023>;
+               default-brightness-level = <576>;
+               num-interpolated-steps = <1023>;
+               pwms = <&disp_pwm0 0 500000>;
+       };
+
+       backlight_lcd1: backlight-lcd1 {
+               compatible = "pwm-backlight";
+               pwms = <&disp_pwm1 0 500000>;
+               enable-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
+               brightness-levels = <0 1023>;
+               num-interpolated-steps = <1023>;
+               default-brightness-level = <576>;
+               status = "disabled";
+       };
+
+       can_clk: can-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <20000000>;
+               clock-output-names = "can-clk";
+       };
+
+       edp_panel_fixed_3v3: regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "edp_panel_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&pio 6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_panel_3v3_en_pins>;
+       };
+
+       edp_panel_fixed_12v: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "edp_backlight_12v";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               enable-active-high;
+               gpio = <&pio 96 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_panel_12v_en_pins>;
+       };
+
+       keys: gpio-keys {
+               compatible = "gpio-keys";
+
+               button-volume-up {
+                       wakeup-source;
+                       debounce-interval = <100>;
+                       gpios = <&pio 106 GPIO_ACTIVE_LOW>;
+                       label = "volume_up";
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       lcm0_iovcc: regulator-vio18-lcm0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vio18_lcm0";
+               enable-active-high;
+               gpio = <&pio 47 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dsi0_vreg_en_pins>;
+               vin-supply = <&mt6360_ldo2>;
+       };
+
+       lcm0_vddp: regulator-vsys-lcm0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_lcm0";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&mt6360_ldo1>;
+       };
+
+       wifi_fixed_3v3: regulator-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "wifi_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 135 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+};
+
+&adsp {
+       memory-region = <&adsp_dma_mem>, <&adsp_mem>;
+       status = "okay";
+};
+
+&afe {
+       memory-region = <&afe_dma_mem>;
+       status = "okay";
+};
+
+&disp_pwm0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&disp_pwm0_pins>;
+       status = "okay";
+};
+
+&dither0_in {
+       remote-endpoint = <&gamma0_out>;
+};
+
+&dither0_out {
+       remote-endpoint = <&dsi0_in>;
+};
+
+&dmic_codec {
+       wakeup-delay-ms = <200>;
+};
+
+&dsi0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "startek,kd070fhfid078", "himax,hx8279";
+               reg = <0>;
+               backlight = <&backlight_lcm0>;
+               enable-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&pio 108 GPIO_ACTIVE_HIGH>;
+               iovcc-supply = <&lcm0_iovcc>;
+               vdd-supply = <&lcm0_vddp>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_default_pins>;
+
+               port {
+                       dsi_panel_in: endpoint {
+                               remote-endpoint = <&dsi0_out>;
+                       };
+               };
+       };
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dsi0_in: endpoint {
+                               remote-endpoint = <&dither0_out>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dsi0_out: endpoint {
+                               remote-endpoint = <&dsi_panel_in>;
+                       };
+               };
+       };
+};
+
+&eth {
+       phy-mode ="rgmii-rxid";
+       phy-handle = <&eth_phy0>;
+       snps,reset-gpio = <&pio 93 GPIO_ACTIVE_HIGH>;
+       snps,reset-delays-us = <0 10000 10000>;
+       mediatek,tx-delay-ps = <2030>;
+       mediatek,mac-wol;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&eth_default_pins>;
+       pinctrl-1 = <&eth_sleep_pins>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               eth_phy0: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id001c.c916";
+                       reg = <0x1>;
+               };
+       };
+};
+
+&gamma0_out {
+       remote-endpoint = <&dither0_in>;
+};
+
+&gpu {
+       mali-supply = <&mt6315_7_vbuck1>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       touchscreen@5d {
+               compatible = "goodix,gt9271";
+               reg = <0x5d>;
+               interrupts-extended = <&pio 132 IRQ_TYPE_EDGE_RISING>;
+               irq-gpios = <&pio 132 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&pio 133 GPIO_ACTIVE_HIGH>;
+               AVDD28-supply = <&mt6360_ldo1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pins>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       typec-mux@48 {
+               compatible = "ite,it5205";
+               reg = <0x48>;
+               vcc-supply = <&mt6359_vibr_ldo_reg>;
+               mode-switch;
+               orientation-switch;
+               status = "okay";
+
+               port {
+                       it5205_sbu_ep: endpoint {
+                               remote-endpoint = <&mt6360_ssusb_sbu_ep>;
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c6_pins>;
+       pinctrl-names = "default";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       mt6360: pmic@34 {
+               compatible = "mediatek,mt6360";
+               reg = <0x34>;
+               interrupt-parent = <&pio>;
+               interrupts = <128 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "IRQB";
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               pinctrl-0 = <&mt6360_pins>;
+
+               charger {
+                       compatible = "mediatek,mt6360-chg";
+                       richtek,vinovp-microvolt = <14500000>;
+
+                       otg_vbus_regulator: usb-otg-vbus-regulator {
+                               regulator-name = "usb-otg-vbus";
+                               regulator-min-microvolt = <4425000>;
+                               regulator-max-microvolt = <5825000>;
+                       };
+               };
+
+               regulator {
+                       compatible = "mediatek,mt6360-regulator";
+                       LDO_VIN3-supply = <&mt6360_buck2>;
+
+                       mt6360_buck1: buck1 {
+                               regulator-name = "emi_vdd2";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_buck2: buck2 {
+                               regulator-name = "emi_vddq";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_ldo1: ldo1 {
+                               regulator-name = "tp1_p3v0";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_ldo2: ldo2 {
+                               regulator-name = "panel1_p1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo3: ldo3 {
+                               regulator-name = "vmc_pmu";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo5: ldo5 {
+                               regulator-name = "vmch_pmu";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       /* This is a measure point, which name is mt6360_ldo1 on schematic */
+                       mt6360_ldo6: ldo6 {
+                               regulator-name = "mt6360_ldo1";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo7: ldo7 {
+                               regulator-name = "emi_vmddr_en";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                               regulator-always-on;
+                       };
+               };
+
+               tcpc {
+                       compatible = "mediatek,mt6360-tcpc";
+                       interrupts-extended = <&pio 17 IRQ_TYPE_LEVEL_LOW>;
+                       interrupt-names = "PD_IRQB";
+
+                       connector {
+                               compatible = "usb-c-connector";
+                               label = "USB-C";
+                               data-role = "dual";
+                               op-sink-microwatt = <10000000>;
+                               power-role = "dual";
+                               try-power-role = "sink";
+
+                               source-pdos = <PDO_FIXED(5000, 1000,
+                                                        PDO_FIXED_DUAL_ROLE |
+                                                        PDO_FIXED_DATA_SWAP)>;
+                               sink-pdos = <PDO_FIXED(5000, 2000,
+                                                      PDO_FIXED_DUAL_ROLE |
+                                                      PDO_FIXED_DATA_SWAP)>;
+
+                               pd-revision = /bits/ 8 <0x03 0x01 0x01 0x06>;
+
+                               altmodes {
+                                       displayport {
+                                               svid = /bits/ 16 <0xff01>;
+                                               vdo = <0x00001c46>;
+                                       };
+                               };
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               typec_con_hs: endpoint {
+                                                       remote-endpoint = <&mtu3_hs0_role_sw>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               typec_con_ss: endpoint {
+                                                       remote-endpoint = <&mtu3_ss0_role_sw>;
+                                               };
+                                       };
+
+                                       port@2 {
+                                               reg = <2>;
+                                               mt6360_ssusb_sbu_ep: endpoint {
+                                                       remote-endpoint = <&it5205_sbu_ep>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&mfg0 {
+       domain-supply = <&mt6315_7_vbuck1>;
+};
+
+&mfg1 {
+       domain-supply = <&mt6359_vsram_others_ldo_reg>;
+};
+
+&mipi_tx0 {
+       status = "okay";
+};
+
+&mmc0 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       cap-mmc-hw-reset;
+       no-sdio;
+       no-sd;
+       hs400-ds-delay = <0x14c11>;
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+       non-removable;
+};
+
+&mmc1 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_default_pins>;
+       pinctrl-1 = <&mmc1_uhs_pins>;
+       bus-width = <4>;
+       max-frequency = <200000000>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       no-mmc;
+       no-sdio;
+       vmmc-supply = <&mt6360_ldo5>;
+       vqmmc-supply = <&mt6360_ldo3>;
+       status = "okay";
+       non-removable;
+};
+
+&mt6359_vaud18_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vbbck_ldo_reg {
+       regulator-always-on;
+};
+
+/* For USB Hub */
+&mt6359_vcamio_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcn33_2_bt_ldo_reg {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-always-on;
+};
+
+/* for GPU SRAM */
+&mt6359_vsram_others_ldo_reg {
+       regulator-min-microvolt = <750000>;
+       regulator-max-microvolt = <750000>;
+};
+
+&mt6359codec {
+       mediatek,mic-type-0 = <1>; /* ACC */
+       mediatek,mic-type-1 = <3>; /* DCC */
+       mediatek,mic-type-2 = <1>; /* ACC */
+};
+
+&ovl0_in {
+       remote-endpoint = <&vdosys0_ep_main>;
+};
+
+&pcie0 {
+       pinctrl-names = "default", "idle";
+       pinctrl-0 = <&pcie0_default_pins>;
+       pinctrl-1 = <&pcie0_idle_pins>;
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_default_pins>;
+       status = "disabled";
+};
+
+&pciephy {
+       status = "okay";
+};
+
+&pio {
+       audio_default_pins: audio-default-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO61__FUNC_DMIC1_CLK>,
+                                <PINMUX_GPIO62__FUNC_DMIC1_DAT>,
+                                <PINMUX_GPIO65__FUNC_PCM_DO>,
+                                <PINMUX_GPIO66__FUNC_PCM_CLK>,
+                                <PINMUX_GPIO67__FUNC_PCM_DI>,
+                                <PINMUX_GPIO68__FUNC_PCM_SYNC>,
+                                <PINMUX_GPIO69__FUNC_AUD_CLK_MOSI>,
+                                <PINMUX_GPIO70__FUNC_AUD_SYNC_MOSI>,
+                                <PINMUX_GPIO71__FUNC_AUD_DAT_MOSI0>,
+                                <PINMUX_GPIO72__FUNC_AUD_DAT_MOSI1>,
+                                <PINMUX_GPIO73__FUNC_AUD_DAT_MISO0>,
+                                <PINMUX_GPIO74__FUNC_AUD_DAT_MISO1>,
+                                <PINMUX_GPIO75__FUNC_AUD_DAT_MISO2>;
+               };
+       };
+
+       disp_pwm1_default_pins: disp-pwm1-default-pins {
+               pins1 {
+                       pinmux = <PINMUX_GPIO104__FUNC_DISP_PWM1>;
+               };
+       };
+
+       edp_panel_12v_en_pins: edp-panel-12v-en-pins {
+               pins1 {
+                       pinmux = <PINMUX_GPIO96__FUNC_GPIO96>;
+                       output-high;
+               };
+       };
+
+       edp_panel_3v3_en_pins: edp-panel-3v3-en-pins {
+               pins1 {
+                       pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
+                       output-high;
+               };
+       };
+
+       eth_default_pins: eth-default-pins {
+               pins-cc {
+                       pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
+                                <PINMUX_GPIO86__FUNC_GBE_RXC>,
+                                <PINMUX_GPIO87__FUNC_GBE_RXDV>,
+                                <PINMUX_GPIO88__FUNC_GBE_TXEN>;
+                       drive-strength = <8>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO89__FUNC_GBE_MDC>,
+                                <PINMUX_GPIO90__FUNC_GBE_MDIO>;
+                       input-enable;
+               };
+
+               pins-power {
+                       pinmux = <PINMUX_GPIO91__FUNC_GPIO91>,
+                                <PINMUX_GPIO92__FUNC_GPIO92>;
+                       output-high;
+               };
+
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>,
+                                <PINMUX_GPIO82__FUNC_GBE_RXD2>,
+                                <PINMUX_GPIO83__FUNC_GBE_RXD1>,
+                                <PINMUX_GPIO84__FUNC_GBE_RXD0>;
+               };
+
+               pins-txd {
+                       pinmux = <PINMUX_GPIO77__FUNC_GBE_TXD3>,
+                                <PINMUX_GPIO78__FUNC_GBE_TXD2>,
+                                <PINMUX_GPIO79__FUNC_GBE_TXD1>,
+                                <PINMUX_GPIO80__FUNC_GBE_TXD0>;
+                       drive-strength = <8>;
+               };
+       };
+
+       eth_sleep_pins: eth-sleep-pins {
+               pins-cc {
+                       pinmux = <PINMUX_GPIO85__FUNC_GPIO85>,
+                                <PINMUX_GPIO86__FUNC_GPIO86>,
+                                <PINMUX_GPIO87__FUNC_GPIO87>,
+                                <PINMUX_GPIO88__FUNC_GPIO88>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO89__FUNC_GPIO89>,
+                                <PINMUX_GPIO90__FUNC_GPIO90>;
+                       input-disable;
+                       bias-disable;
+               };
+
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO81__FUNC_GPIO81>,
+                                <PINMUX_GPIO82__FUNC_GPIO82>,
+                                <PINMUX_GPIO83__FUNC_GPIO83>,
+                                <PINMUX_GPIO84__FUNC_GPIO84>;
+               };
+
+               pins-txd {
+                       pinmux = <PINMUX_GPIO77__FUNC_GPIO77>,
+                                <PINMUX_GPIO78__FUNC_GPIO78>,
+                                <PINMUX_GPIO79__FUNC_GPIO79>,
+                                <PINMUX_GPIO80__FUNC_GPIO80>;
+               };
+       };
+
+       gpio_key_pins: gpio-keys-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
+                       bias-pull-up;
+                       input-enable;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
+                                <PINMUX_GPIO9__FUNC_SCL0>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c1_pins: i2c1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
+                                <PINMUX_GPIO11__FUNC_SCL1>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c2_pins: i2c2-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
+                                <PINMUX_GPIO13__FUNC_SCL2>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength = <6>;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
+                                <PINMUX_GPIO26__FUNC_SCL6>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_default_pins: mmc0-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc0_uhs_pins: mmc0-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-ds {
+                       pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc1_default_pins: mmc1-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc1_uhs_pins: mmc1-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mt6360_pins: mt6360-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO17__FUNC_GPIO17>,
+                                <PINMUX_GPIO128__FUNC_GPIO128>;
+                       input-enable;
+                       bias-pull-up;
+               };
+       };
+
+       dsi0_vreg_en_pins: dsi0-vreg-en-pins {
+               pins-pwr-en {
+                       pinmux = <PINMUX_GPIO47__FUNC_GPIO47>;
+                       output-low;
+               };
+       };
+
+       panel_default_pins: panel-default-pins {
+               pins-rst {
+                       pinmux = <PINMUX_GPIO108__FUNC_GPIO108>;
+                       output-high;
+               };
+
+               pins-en {
+                       pinmux = <PINMUX_GPIO48__FUNC_GPIO48>;
+                       output-low;
+               };
+       };
+
+       pcie0_default_pins: pcie0-default-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
+                                <PINMUX_GPIO20__FUNC_PERSTN>,
+                                <PINMUX_GPIO21__FUNC_CLKREQN>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie0_idle_pins: pcie0-idle-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO20__FUNC_GPIO20>;
+                       bias-disable;
+                       output-low;
+               };
+       };
+
+       pcie1_default_pins: pcie1-default-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO22__FUNC_PERSTN_1>,
+                                <PINMUX_GPIO23__FUNC_CLKREQN_1>,
+                                <PINMUX_GPIO24__FUNC_WAKEN_1>;
+                       bias-pull-up;
+               };
+       };
+
+       disp_pwm0_pins: disp-pwm0-pins {
+               pins-disp-pwm {
+                       pinmux = <PINMUX_GPIO97__FUNC_DISP_PWM0>;
+               };
+       };
+
+       spi1_pins: spi1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO136__FUNC_SPIM1_CSB>,
+                                <PINMUX_GPIO137__FUNC_SPIM1_CLK>,
+                                <PINMUX_GPIO138__FUNC_SPIM1_MO>,
+                                <PINMUX_GPIO139__FUNC_SPIM1_MI>;
+                       bias-disable;
+               };
+       };
+
+       spi2_pins: spi-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO140__FUNC_SPIM2_CSB>,
+                                <PINMUX_GPIO141__FUNC_SPIM2_CLK>,
+                                <PINMUX_GPIO142__FUNC_SPIM2_MO>,
+                                <PINMUX_GPIO143__FUNC_SPIM2_MI>;
+                       bias-disable;
+               };
+       };
+
+       touch_pins: touch-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO132__FUNC_GPIO132>;
+                       input-enable;
+                       bias-disable;
+               };
+
+               pins-reset {
+                       pinmux = <PINMUX_GPIO133__FUNC_GPIO133>;
+                       output-high;
+               };
+       };
+
+       u3_p0_vbus: u3-p0-vbus-default-pins {
+               pins-vbus {
+                       pinmux = <PINMUX_GPIO63__FUNC_VBUSVALID>;
+                       input-enable;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
+                                <PINMUX_GPIO99__FUNC_URXD0>;
+               };
+       };
+
+       uart1_pins: uart1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO100__FUNC_URTS1>,
+                                <PINMUX_GPIO101__FUNC_UCTS1>,
+                                <PINMUX_GPIO102__FUNC_UTXD1>,
+                                <PINMUX_GPIO103__FUNC_URXD1>;
+               };
+       };
+};
+
+&pmic {
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+
+       mt6359keys: keys {
+               compatible = "mediatek,mt6359-keys";
+               mediatek,long-press-mode = <1>;
+               power-off-time-sec = <0>;
+
+               power-key {
+                       linux,keycodes = <KEY_POWER>;
+                       wakeup-source;
+               };
+
+               home {
+                       linux,keycodes = <KEY_HOME>;
+               };
+       };
+};
+
+&scp {
+       memory-region = <&scp_mem>;
+       firmware-name = "mediatek/mt8195/scp.img";
+       status = "okay";
+};
+
+&sound {
+       compatible = "mediatek,mt8195_mt6359";
+       model = "mt8395-evk";
+       pinctrl-names = "default";
+       pinctrl-0 = <&audio_default_pins>;
+       audio-routing =
+               "Headphone", "Headphone L",
+               "Headphone", "Headphone R";
+       mediatek,adsp = <&adsp>;
+       status = "okay";
+
+       headphone-dai-link {
+               link-name = "DL_SRC_BE";
+
+               codec {
+                       sound-dai = <&pmic 0>;
+               };
+       };
+};
+
+&spi1 {
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+       mediatek,pad-select = <0>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+       cs-gpios = <&pio 64 GPIO_ACTIVE_LOW>;
+
+       can0: can@0 {
+               compatible = "microchip,mcp2518fd";
+               reg = <0>;
+               clocks = <&can_clk>;
+               spi-max-frequency = <20000000>;
+               interrupts-extended = <&pio 16 IRQ_TYPE_LEVEL_LOW>;
+               vdd-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+               xceiver-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+       };
+};
+
+&spi2 {
+       pinctrl-0 = <&spi2_pins>;
+       pinctrl-names = "default";
+       mediatek,pad-select = <0>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+};
+
+&spmi {
+       #address-cells = <2>;
+       #size-cells = <0>;
+
+       mt6315_6: pmic@6 {
+               compatible = "mediatek,mt6315-regulator";
+               reg = <0x6 SPMI_USID>;
+
+               regulators {
+                       mt6315_6_vbuck1: vbuck1 {
+                               regulator-name = "Vbcpu";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       mt6315_7: pmic@7 {
+               compatible = "mediatek,mt6315-regulator";
+               reg = <0x7 SPMI_USID>;
+
+               regulators {
+                       mt6315_7_vbuck1: vbuck1 {
+                               regulator-name = "Vgpu";
+                               regulator-min-microvolt = <546000>;
+                               regulator-max-microvolt = <787000>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+               };
+       };
+};
+
+&u3phy0 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+
+       u3port1: usb-phy@700 {
+               mediatek,force-mode;
+       };
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
+&u3phy3 {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-0 = <&uart0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&uart1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&ufsphy {
+       status = "disabled";
+};
+
+&ssusb0 {
+       dr_mode = "otg";
+       pinctrl-names = "default";
+       pinctrl-0 = <&u3_p0_vbus>;
+       usb-role-switch;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       mtu3_hs0_role_sw: endpoint {
+                               remote-endpoint = <&typec_con_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       mtu3_ss0_role_sw: endpoint {
+                               remote-endpoint = <&typec_con_ss>;
+                       };
+               };
+       };
+};
+
+&ssusb2 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&ssusb3 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&vdosys0 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys0_ep_main: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ovl0_in>;
+               };
+       };
+};
+
+&xhci0 {
+       status = "okay";
+};
+
+&xhci1 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&xhci2 {
+       status = "okay";
+};
+
+&xhci3 {
+       status = "okay";
+};