1*f4d1eaceSMateusz Koza// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*f4d1eaceSMateusz Koza/* 3*f4d1eaceSMateusz Koza * Copyright (C) 2025 Grinn sp. z o.o. 4*f4d1eaceSMateusz Koza * Author: Mateusz Koza <mateusz.koza@grinn-global.com> 5*f4d1eaceSMateusz Koza */ 6*f4d1eaceSMateusz Koza 7*f4d1eaceSMateusz Koza#include "mt6359.dtsi" 8*f4d1eaceSMateusz Koza#include <dt-bindings/input/input.h> 9*f4d1eaceSMateusz Koza 10*f4d1eaceSMateusz Koza/ { 11*f4d1eaceSMateusz Koza aliases { 12*f4d1eaceSMateusz Koza i2c1 = &i2c1; 13*f4d1eaceSMateusz Koza mmc0 = &mmc0; 14*f4d1eaceSMateusz Koza }; 15*f4d1eaceSMateusz Koza}; 16*f4d1eaceSMateusz Koza 17*f4d1eaceSMateusz Koza&i2c1 { 18*f4d1eaceSMateusz Koza pinctrl-names = "default"; 19*f4d1eaceSMateusz Koza pinctrl-0 = <&i2c1_pins>; 20*f4d1eaceSMateusz Koza clock-frequency = <400000>; 21*f4d1eaceSMateusz Koza status = "okay"; 22*f4d1eaceSMateusz Koza}; 23*f4d1eaceSMateusz Koza 24*f4d1eaceSMateusz Koza&mfg0 { 25*f4d1eaceSMateusz Koza domain-supply = <&mt6359_vproc2_buck_reg>; 26*f4d1eaceSMateusz Koza}; 27*f4d1eaceSMateusz Koza 28*f4d1eaceSMateusz Koza&mfg1 { 29*f4d1eaceSMateusz Koza domain-supply = <&mt6359_vsram_others_ldo_reg>; 30*f4d1eaceSMateusz Koza}; 31*f4d1eaceSMateusz Koza 32*f4d1eaceSMateusz Koza&mmc0 { 33*f4d1eaceSMateusz Koza status = "okay"; 34*f4d1eaceSMateusz Koza pinctrl-names = "default", "state_uhs"; 35*f4d1eaceSMateusz Koza pinctrl-0 = <&mmc0_default_pins>; 36*f4d1eaceSMateusz Koza pinctrl-1 = <&mmc0_uhs_pins>; 37*f4d1eaceSMateusz Koza bus-width = <8>; 38*f4d1eaceSMateusz Koza max-frequency = <200000000>; 39*f4d1eaceSMateusz Koza cap-mmc-highspeed; 40*f4d1eaceSMateusz Koza mmc-hs200-1_8v; 41*f4d1eaceSMateusz Koza mmc-hs400-1_8v; 42*f4d1eaceSMateusz Koza supports-cqe; 43*f4d1eaceSMateusz Koza cap-mmc-hw-reset; 44*f4d1eaceSMateusz Koza no-sdio; 45*f4d1eaceSMateusz Koza no-sd; 46*f4d1eaceSMateusz Koza hs400-ds-delay = <0x1481b>; 47*f4d1eaceSMateusz Koza vmmc-supply = <&mt6359_vemc_1_ldo_reg>; 48*f4d1eaceSMateusz Koza vqmmc-supply = <&mt6359_vufs_ldo_reg>; 49*f4d1eaceSMateusz Koza non-removable; 50*f4d1eaceSMateusz Koza}; 51*f4d1eaceSMateusz Koza 52*f4d1eaceSMateusz Koza&mt6359_vbbck_ldo_reg { 53*f4d1eaceSMateusz Koza regulator-always-on; 54*f4d1eaceSMateusz Koza}; 55*f4d1eaceSMateusz Koza 56*f4d1eaceSMateusz Koza&mt6359_vcn18_ldo_reg { 57*f4d1eaceSMateusz Koza regulator-name = "vcn18_pmu"; 58*f4d1eaceSMateusz Koza regulator-always-on; 59*f4d1eaceSMateusz Koza}; 60*f4d1eaceSMateusz Koza 61*f4d1eaceSMateusz Koza&mt6359_vcn33_2_bt_ldo_reg { 62*f4d1eaceSMateusz Koza regulator-name = "vcn33_2_pmu"; 63*f4d1eaceSMateusz Koza regulator-always-on; 64*f4d1eaceSMateusz Koza}; 65*f4d1eaceSMateusz Koza 66*f4d1eaceSMateusz Koza&mt6359_vcore_buck_reg { 67*f4d1eaceSMateusz Koza regulator-name = "dvdd_proc_l"; 68*f4d1eaceSMateusz Koza regulator-always-on; 69*f4d1eaceSMateusz Koza}; 70*f4d1eaceSMateusz Koza 71*f4d1eaceSMateusz Koza&mt6359_vgpu11_buck_reg { 72*f4d1eaceSMateusz Koza regulator-name = "dvdd_core"; 73*f4d1eaceSMateusz Koza regulator-always-on; 74*f4d1eaceSMateusz Koza}; 75*f4d1eaceSMateusz Koza 76*f4d1eaceSMateusz Koza&mt6359_vpa_buck_reg { 77*f4d1eaceSMateusz Koza regulator-name = "vpa_pmu"; 78*f4d1eaceSMateusz Koza regulator-max-microvolt = <3100000>; 79*f4d1eaceSMateusz Koza}; 80*f4d1eaceSMateusz Koza 81*f4d1eaceSMateusz Koza&mt6359_vproc2_buck_reg { 82*f4d1eaceSMateusz Koza /* The name "vgpu" is required by mtk-regulator-coupler */ 83*f4d1eaceSMateusz Koza regulator-name = "vgpu"; 84*f4d1eaceSMateusz Koza regulator-min-microvolt = <550000>; 85*f4d1eaceSMateusz Koza regulator-max-microvolt = <800000>; 86*f4d1eaceSMateusz Koza regulator-coupled-with = <&mt6359_vsram_others_ldo_reg>; 87*f4d1eaceSMateusz Koza regulator-coupled-max-spread = <6250>; 88*f4d1eaceSMateusz Koza}; 89*f4d1eaceSMateusz Koza 90*f4d1eaceSMateusz Koza&mt6359_vpu_buck_reg { 91*f4d1eaceSMateusz Koza regulator-name = "dvdd_adsp"; 92*f4d1eaceSMateusz Koza regulator-always-on; 93*f4d1eaceSMateusz Koza}; 94*f4d1eaceSMateusz Koza 95*f4d1eaceSMateusz Koza&mt6359_vrf12_ldo_reg { 96*f4d1eaceSMateusz Koza regulator-name = "va12_abb2_pmu"; 97*f4d1eaceSMateusz Koza regulator-always-on; 98*f4d1eaceSMateusz Koza}; 99*f4d1eaceSMateusz Koza 100*f4d1eaceSMateusz Koza&mt6359_vsim1_ldo_reg { 101*f4d1eaceSMateusz Koza regulator-name = "vsim1_pmu"; 102*f4d1eaceSMateusz Koza regulator-enable-ramp-delay = <480>; 103*f4d1eaceSMateusz Koza}; 104*f4d1eaceSMateusz Koza 105*f4d1eaceSMateusz Koza&mt6359_vsram_others_ldo_reg { 106*f4d1eaceSMateusz Koza /* The name "vsram_gpu" is required by mtk-regulator-coupler */ 107*f4d1eaceSMateusz Koza regulator-name = "vsram_gpu"; 108*f4d1eaceSMateusz Koza regulator-min-microvolt = <750000>; 109*f4d1eaceSMateusz Koza regulator-max-microvolt = <800000>; 110*f4d1eaceSMateusz Koza regulator-coupled-with = <&mt6359_vproc2_buck_reg>; 111*f4d1eaceSMateusz Koza regulator-coupled-max-spread = <6250>; 112*f4d1eaceSMateusz Koza}; 113*f4d1eaceSMateusz Koza 114*f4d1eaceSMateusz Koza&mt6359_vufs_ldo_reg { 115*f4d1eaceSMateusz Koza regulator-name = "vufs18_pmu"; 116*f4d1eaceSMateusz Koza regulator-always-on; 117*f4d1eaceSMateusz Koza}; 118*f4d1eaceSMateusz Koza 119*f4d1eaceSMateusz Koza&pio { 120*f4d1eaceSMateusz Koza 121*f4d1eaceSMateusz Koza i2c1_pins: i2c1-pins { 122*f4d1eaceSMateusz Koza pins { 123*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO58__FUNC_B1_SDA1>, 124*f4d1eaceSMateusz Koza <PINMUX_GPIO57__FUNC_B1_SCL1>; 125*f4d1eaceSMateusz Koza bias-pull-up = <MTK_PULL_SET_RSEL_011>; 126*f4d1eaceSMateusz Koza drive-strength-microamp = <1000>; 127*f4d1eaceSMateusz Koza }; 128*f4d1eaceSMateusz Koza }; 129*f4d1eaceSMateusz Koza 130*f4d1eaceSMateusz Koza mmc0_default_pins: mmc0-default-pins { 131*f4d1eaceSMateusz Koza pins-clk { 132*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>; 133*f4d1eaceSMateusz Koza drive-strength = <6>; 134*f4d1eaceSMateusz Koza bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 135*f4d1eaceSMateusz Koza }; 136*f4d1eaceSMateusz Koza 137*f4d1eaceSMateusz Koza pins-cmd-dat { 138*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO161__FUNC_B1_MSDC0_DAT0>, 139*f4d1eaceSMateusz Koza <PINMUX_GPIO160__FUNC_B1_MSDC0_DAT1>, 140*f4d1eaceSMateusz Koza <PINMUX_GPIO159__FUNC_B1_MSDC0_DAT2>, 141*f4d1eaceSMateusz Koza <PINMUX_GPIO158__FUNC_B1_MSDC0_DAT3>, 142*f4d1eaceSMateusz Koza <PINMUX_GPIO154__FUNC_B1_MSDC0_DAT4>, 143*f4d1eaceSMateusz Koza <PINMUX_GPIO153__FUNC_B1_MSDC0_DAT5>, 144*f4d1eaceSMateusz Koza <PINMUX_GPIO152__FUNC_B1_MSDC0_DAT6>, 145*f4d1eaceSMateusz Koza <PINMUX_GPIO151__FUNC_B1_MSDC0_DAT7>, 146*f4d1eaceSMateusz Koza <PINMUX_GPIO156__FUNC_B1_MSDC0_CMD>; 147*f4d1eaceSMateusz Koza input-enable; 148*f4d1eaceSMateusz Koza drive-strength = <6>; 149*f4d1eaceSMateusz Koza bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 150*f4d1eaceSMateusz Koza }; 151*f4d1eaceSMateusz Koza 152*f4d1eaceSMateusz Koza pins-rst { 153*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO155__FUNC_O_MSDC0_RSTB>; 154*f4d1eaceSMateusz Koza drive-strength = <6>; 155*f4d1eaceSMateusz Koza bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 156*f4d1eaceSMateusz Koza }; 157*f4d1eaceSMateusz Koza }; 158*f4d1eaceSMateusz Koza 159*f4d1eaceSMateusz Koza mmc0_uhs_pins: mmc0-uhs-pins { 160*f4d1eaceSMateusz Koza pins-clk { 161*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>; 162*f4d1eaceSMateusz Koza drive-strength = <8>; 163*f4d1eaceSMateusz Koza bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 164*f4d1eaceSMateusz Koza }; 165*f4d1eaceSMateusz Koza 166*f4d1eaceSMateusz Koza pins-cmd-dat { 167*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO161__FUNC_B1_MSDC0_DAT0>, 168*f4d1eaceSMateusz Koza <PINMUX_GPIO160__FUNC_B1_MSDC0_DAT1>, 169*f4d1eaceSMateusz Koza <PINMUX_GPIO159__FUNC_B1_MSDC0_DAT2>, 170*f4d1eaceSMateusz Koza <PINMUX_GPIO158__FUNC_B1_MSDC0_DAT3>, 171*f4d1eaceSMateusz Koza <PINMUX_GPIO154__FUNC_B1_MSDC0_DAT4>, 172*f4d1eaceSMateusz Koza <PINMUX_GPIO153__FUNC_B1_MSDC0_DAT5>, 173*f4d1eaceSMateusz Koza <PINMUX_GPIO152__FUNC_B1_MSDC0_DAT6>, 174*f4d1eaceSMateusz Koza <PINMUX_GPIO151__FUNC_B1_MSDC0_DAT7>, 175*f4d1eaceSMateusz Koza <PINMUX_GPIO156__FUNC_B1_MSDC0_CMD>; 176*f4d1eaceSMateusz Koza input-enable; 177*f4d1eaceSMateusz Koza drive-strength = <8>; 178*f4d1eaceSMateusz Koza bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 179*f4d1eaceSMateusz Koza }; 180*f4d1eaceSMateusz Koza 181*f4d1eaceSMateusz Koza pins-ds { 182*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO162__FUNC_B0_MSDC0_DSL>; 183*f4d1eaceSMateusz Koza drive-strength = <8>; 184*f4d1eaceSMateusz Koza bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 185*f4d1eaceSMateusz Koza }; 186*f4d1eaceSMateusz Koza 187*f4d1eaceSMateusz Koza pins-rst { 188*f4d1eaceSMateusz Koza pinmux = <PINMUX_GPIO155__FUNC_O_MSDC0_RSTB>; 189*f4d1eaceSMateusz Koza drive-strength = <8>; 190*f4d1eaceSMateusz Koza bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 191*f4d1eaceSMateusz Koza }; 192*f4d1eaceSMateusz Koza }; 193*f4d1eaceSMateusz Koza}; 194*f4d1eaceSMateusz Koza 195*f4d1eaceSMateusz Koza&pmic { 196*f4d1eaceSMateusz Koza interrupt-parent = <&pio>; 197*f4d1eaceSMateusz Koza interrupts = <222 IRQ_TYPE_LEVEL_HIGH>; 198*f4d1eaceSMateusz Koza interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>; 199*f4d1eaceSMateusz Koza 200*f4d1eaceSMateusz Koza keys { 201*f4d1eaceSMateusz Koza compatible = "mediatek,mt6359-keys"; 202*f4d1eaceSMateusz Koza mediatek,long-press-mode = <1>; 203*f4d1eaceSMateusz Koza power-off-time-sec = <0>; 204*f4d1eaceSMateusz Koza 205*f4d1eaceSMateusz Koza power-key { 206*f4d1eaceSMateusz Koza linux,keycodes = <KEY_POWER>; 207*f4d1eaceSMateusz Koza wakeup-source; 208*f4d1eaceSMateusz Koza }; 209*f4d1eaceSMateusz Koza }; 210*f4d1eaceSMateusz Koza}; 211