xref: /linux/scripts/dtc/include-prefixes/arm64/mediatek/mt8390-grinn-genio-som.dtsi (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
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