1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2024 Google LLC
4 */
5
6/dts-v1/;
7#include "mt8186-corsola.dtsi"
8
9/ {
10	/delete-node/ speaker-codec;
11
12	pp1000_edpbrdg: regulator-pp1000-edpbrdg {
13		compatible = "regulator-fixed";
14		regulator-name = "pp1000_edpbrdg";
15		pinctrl-names = "default";
16		pinctrl-0 = <&en_pp1000_edpbrdg>;
17		enable-active-high;
18		regulator-boot-on;
19		gpio = <&pio 29 GPIO_ACTIVE_HIGH>;
20		vin-supply = <&pp3300_z2>;
21	};
22
23	pp1800_edpbrdg_dx: regulator-pp1800-edpbrdg-dx {
24		compatible = "regulator-fixed";
25		regulator-name = "pp1800_edpbrdg_dx";
26		pinctrl-names = "default";
27		pinctrl-0 = <&en_pp1800_edpbrdg>;
28		enable-active-high;
29		regulator-boot-on;
30		gpio = <&pio 30 GPIO_ACTIVE_HIGH>;
31		vin-supply = <&mt6366_vio18_reg>;
32	};
33
34	pp3300_edp_dx: regulator-pp3300-edp-dx {
35		compatible = "regulator-fixed";
36		regulator-name = "pp3300_edp_dx";
37		pinctrl-names = "default";
38		pinctrl-0 = <&en_pp3300_edpbrdg>;
39		enable-active-high;
40		regulator-boot-on;
41		gpio = <&pio 31 GPIO_ACTIVE_HIGH>;
42		vin-supply = <&pp3300_z2>;
43	};
44
45	pp1800_tchscr_report_disable: regulator-pp1800-tchscr-report-disable {
46		compatible = "regulator-fixed";
47		regulator-name = "pp1800_tchscr_report_disable";
48		pinctrl-names = "default";
49		regulator-boot-on;
50		pinctrl-0 = <&touch_pin_report>;
51		gpio = <&pio 37 GPIO_ACTIVE_LOW>;
52	};
53};
54
55&dsi_out {
56	remote-endpoint = <&anx7625_in>;
57};
58
59&i2c0 {
60	clock-frequency = <400000>;
61
62	anx_bridge: anx7625@58 {
63		compatible = "analogix,anx7625";
64		reg = <0x58>;
65		pinctrl-names = "default";
66		pinctrl-0 = <&anx7625_pins>;
67		enable-gpios = <&pio 96 GPIO_ACTIVE_HIGH>;
68		reset-gpios = <&pio 98 GPIO_ACTIVE_HIGH>;
69		vdd10-supply = <&pp1000_edpbrdg>;
70		vdd18-supply = <&pp1800_edpbrdg_dx>;
71		vdd33-supply = <&pp3300_edp_dx>;
72		analogix,lane0-swing = /bits/ 8 <0x70 0x30>;
73		analogix,lane1-swing = /bits/ 8 <0x70 0x30>;
74
75		ports {
76			#address-cells = <1>;
77			#size-cells = <0>;
78
79			port@0 {
80				reg = <0>;
81
82				anx7625_in: endpoint {
83					remote-endpoint = <&dsi_out>;
84					data-lanes = <0 1 2 3>;
85				};
86			};
87
88			port@1 {
89				reg = <1>;
90
91				anx7625_out: endpoint {
92					remote-endpoint = <&panel_in>;
93				};
94			};
95		};
96
97		aux-bus {
98			panel: panel {
99				compatible = "edp-panel";
100				power-supply = <&pp3300_disp_x>;
101				backlight = <&backlight_lcd0>;
102
103				port {
104					panel_in: endpoint {
105						remote-endpoint = <&anx7625_out>;
106					};
107				};
108			};
109		};
110	};
111};
112
113&i2c2 {
114	/delete-node/ trackpad@15;
115
116	touchpad@15 {
117		compatible = "hid-over-i2c";
118		reg = <0x15>;
119		interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_LOW>;
120		post-power-on-delay-ms = <10>;
121		hid-descr-addr = <0x0001>;
122		vdd-supply = <&pp3300_s3>;
123		wakeup-source;
124	};
125};
126
127&i2c5 {
128	clock-frequency = <400000>;
129	/delete-node/ codec@1a;
130
131	rt5650: rt5650@1a {
132		compatible = "realtek,rt5650";
133		reg = <0x1a>;
134		avdd-supply = <&mt6366_vio18_reg>;
135		cpvdd-supply = <&mt6366_vio18_reg>;
136		pinctrl-names = "default";
137		pinctrl-0 = <&speaker_codec_pins_default>;
138		cbj-sleeve-gpios = <&pio 150 GPIO_ACTIVE_HIGH>;
139		interrupt-parent = <&pio>;
140		interrupts = <17 IRQ_TYPE_EDGE_BOTH>;
141		#sound-dai-cells = <0>;
142		realtek,dmic1-data-pin = <2>;
143		realtek,jd-mode = <2>;
144	};
145};
146
147&i2c_tunnel {
148	/delete-node/ sbs-battery@b;
149
150	battery: sbs-battery@f {
151		compatible = "sbs,sbs-battery";
152		reg = <0xf>;
153		sbs,i2c-retry-count = <2>;
154		sbs,poll-retry-count = <1>;
155	};
156};
157
158&keyboard_controller {
159	keypad,num-columns = <15>;
160
161	function-row-physmap = <
162		MATRIX_KEY(0x00, 0x02, 0)        /* T1 */
163		MATRIX_KEY(0x03, 0x02, 0)        /* T2 */
164		MATRIX_KEY(0x02, 0x02, 0)        /* T3 */
165		MATRIX_KEY(0x01, 0x02, 0)        /* T4 */
166		MATRIX_KEY(0x03, 0x04, 0)        /* T5 */
167		MATRIX_KEY(0x02, 0x04, 0)        /* T6 */
168		MATRIX_KEY(0x01, 0x04, 0)        /* T7 */
169		MATRIX_KEY(0x02, 0x09, 0)        /* T8 */
170		MATRIX_KEY(0x01, 0x09, 0)        /* T9 */
171		MATRIX_KEY(0x00, 0x04, 0)        /* T10 */
172		MATRIX_KEY(0x00, 0x01, 0)        /* T11 */
173		MATRIX_KEY(0x01, 0x05, 0)        /* T12 */
174	>;
175
176	linux,keymap = <
177		CROS_STD_MAIN_KEYMAP
178		MATRIX_KEY(0x00, 0x02, KEY_BACK)           /* T1 */
179		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)        /* T2 */
180		MATRIX_KEY(0x02, 0x02, KEY_ZOOM)           /* T3 */
181		MATRIX_KEY(0x01, 0x02, KEY_SCALE)          /* T4 */
182		MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)          /* T5 */
183		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) /* T6 */
184		MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)   /* T7 */
185		MATRIX_KEY(0x02, 0x09, KEY_MUTE)           /* T8 */
186		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)	   /* T9 */
187		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)	   /* T10 */
188		MATRIX_KEY(0x00, 0x01, KEY_MICMUTE)        /* T11 */
189		MATRIX_KEY(0x01, 0x05, KEY_CONTROLPANEL)   /* T12 */
190		MATRIX_KEY(0x03, 0x05, KEY_PREVIOUSSONG)   /* T13 */
191		MATRIX_KEY(0x00, 0x09, KEY_PLAYPAUSE)	   /* T14 */
192		MATRIX_KEY(0x00, 0x0b, KEY_NEXTSONG)	   /* T15 */
193		MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)	   /* Search*/
194		MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL)	   /* Left Control*/
195		MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT)        /* Left ALT*/
196		MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL)      /* Right Control*/
197		MATRIX_KEY(0x06, 0x0a, KEY_BACKSLASH)      /* BACKSLASH*/
198	>;
199};
200
201&mmc1_pins_default {
202	pins-clk {
203		drive-strength = <8>;
204	};
205
206	pins-cmd-dat {
207		drive-strength = <8>;
208	};
209};
210
211&mmc1_pins_uhs {
212	pins-clk {
213		drive-strength = <8>;
214	};
215
216	pins-cmd-dat {
217		drive-strength = <8>;
218	};
219};
220
221&pen_insert {
222	wakeup-event-action = <EV_ACT_ANY>;
223};
224
225&pio {
226	anx7625_pins: anx7625-pins {
227		pins-int {
228			pinmux = <PINMUX_GPIO9__FUNC_GPIO9>;
229			input-enable;
230			bias-disable;
231		};
232
233		pins-reset {
234			pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
235			output-low;
236		};
237
238		pins-power-en {
239			pinmux = <PINMUX_GPIO96__FUNC_GPIO96>;
240			output-low;
241		};
242	};
243
244	en_pp1000_edpbrdg: pp1000-edpbrdg-en-pins {
245		pins-vreg-en {
246			pinmux = <PINMUX_GPIO29__FUNC_GPIO29>;
247			output-low;
248		};
249	};
250
251	en_pp1800_edpbrdg: pp1800-edpbrdg-en-pins {
252		pins-vreg-en {
253			pinmux = <PINMUX_GPIO30__FUNC_GPIO30>;
254			output-low;
255		};
256	};
257
258	en_pp3300_edpbrdg: pp3300-edpbrdg-en-pins {
259		pins-vreg-en {
260			pinmux = <PINMUX_GPIO31__FUNC_GPIO31>;
261			output-low;
262		};
263	};
264
265	touch_pin_report: pin-report-pins {
266		pins-touch-en {
267			pinmux = <PINMUX_GPIO37__FUNC_GPIO37>;
268			output-low;
269		};
270	};
271};
272
273&sound {
274	compatible = "mediatek,mt8186-mt6366-rt5650-sound";
275	model = "mt8186_rt5650";
276	mediatek,adsp = <&adsp>;
277
278	audio-routing =
279		"Headphone", "HPOL",
280		"Headphone", "HPOR",
281		"IN1P", "Headset Mic",
282		"IN1N", "Headset Mic",
283		"Speakers", "SPOL",
284		"Speakers", "SPOR",
285		"HDMI1", "TX";
286
287	hs-playback-dai-link {
288		codec {
289			sound-dai = <&rt5650>;
290		};
291	};
292
293	hs-capture-dai-link {
294		codec {
295			sound-dai = <&rt5650>;
296		};
297	};
298
299	spk-share-dai-link {
300	};
301
302	spk-hdmi-playback-dai-link {
303		codec {
304			sound-dai = <&it6505dptx>;
305		};
306	};
307};
308
309&touchscreen_pins {
310	/delete-node/ pins-report-sw;
311};
312
313&wifi_enable_pin {
314	pins-wifi-enable {
315		pinmux = <PINMUX_GPIO51__FUNC_GPIO51>;
316	};
317};
318
319&wifi_pwrseq {
320	reset-gpios = <&pio 51 GPIO_ACTIVE_LOW>;
321};
322