1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2021 Google LLC
4 */
5
6#include "mt8183-kukui.dtsi"
7/* Must come after mt8183-kukui.dtsi to modify cros_ec */
8#include <arm/cros-ec-keyboard.dtsi>
9
10/ {
11	pp1200_mipibrdg: pp1200-mipibrdg {
12		compatible = "regulator-fixed";
13		regulator-name = "pp1200_mipibrdg";
14		pinctrl-names = "default";
15		pinctrl-0 = <&pp1200_mipibrdg_en>;
16
17		enable-active-high;
18		regulator-boot-on;
19
20		gpio = <&pio 54 GPIO_ACTIVE_HIGH>;
21	};
22
23	pp1800_mipibrdg: pp1800-mipibrdg {
24		compatible = "regulator-fixed";
25		regulator-name = "pp1800_mipibrdg";
26		pinctrl-names = "default";
27		pinctrl-0 = <&pp1800_lcd_en>;
28
29		enable-active-high;
30		regulator-boot-on;
31
32		gpio = <&pio 36 GPIO_ACTIVE_HIGH>;
33	};
34
35	pp3300_panel: pp3300-panel {
36		compatible = "regulator-fixed";
37		regulator-name = "pp3300_panel";
38		regulator-min-microvolt = <3300000>;
39		regulator-max-microvolt = <3300000>;
40		pinctrl-names = "default";
41		pinctrl-0 = <&pp3300_panel_pins>;
42
43		enable-active-high;
44		regulator-boot-on;
45
46		gpio = <&pio 35 GPIO_ACTIVE_HIGH>;
47	};
48
49	vddio_mipibrdg: vddio-mipibrdg {
50		compatible = "regulator-fixed";
51		regulator-name = "vddio_mipibrdg";
52		pinctrl-names = "default";
53		pinctrl-0 = <&vddio_mipibrdg_en>;
54
55		enable-active-high;
56		regulator-boot-on;
57
58		gpio = <&pio 37 GPIO_ACTIVE_HIGH>;
59	};
60
61	volume_buttons: volume-buttons {
62		compatible = "gpio-keys";
63		pinctrl-names = "default";
64		pinctrl-0 = <&volume_button_pins>;
65
66		button-volume-down {
67			label = "Volume Down";
68			linux,code = <KEY_VOLUMEDOWN>;
69			debounce-interval = <100>;
70
71			gpios = <&pio 6 GPIO_ACTIVE_LOW>;
72		};
73
74		button-volume-up {
75			label = "Volume Up";
76			linux,code = <KEY_VOLUMEUP>;
77			debounce-interval = <100>;
78
79			gpios = <&pio 5 GPIO_ACTIVE_LOW>;
80		};
81	};
82};
83
84&cros_ec {
85	cros_ec_pwm: pwm {
86		compatible = "google,cros-ec-pwm";
87		#pwm-cells = <1>;
88		status = "disabled";
89	};
90};
91
92&dsi0 {
93	status = "okay";
94	/delete-property/#size-cells;
95	/delete-property/#address-cells;
96	/delete-node/panel@0;
97	ports {
98		port {
99			dsi_out: endpoint {
100				remote-endpoint = <&anx7625_in>;
101			};
102		};
103	};
104};
105
106&i2c0 {
107	status = "okay";
108
109	touchscreen: touchscreen@10 {
110		compatible = "elan,ekth3500";
111		reg = <0x10>;
112
113		pinctrl-names = "default";
114		pinctrl-0 = <&touchscreen_pins>;
115
116		interrupts-extended = <&pio 155 IRQ_TYPE_LEVEL_LOW>;
117
118		reset-gpios = <&pio 156 GPIO_ACTIVE_LOW>;
119	};
120};
121
122&i2c2 {
123	pinctrl-names = "default";
124	pinctrl-0 = <&i2c2_pins>;
125	status = "okay";
126	clock-frequency = <400000>;
127
128	trackpad@15 {
129		compatible = "elan,ekth3000";
130		reg = <0x15>;
131
132		pinctrl-names = "default";
133		pinctrl-0 = <&trackpad_pins>;
134
135		interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
136
137		wakeup-source;
138	};
139};
140
141&i2c4 {
142	pinctrl-names = "default";
143	pinctrl-0 = <&i2c4_pins>;
144	status = "okay";
145	clock-frequency = <100000>;
146
147	anx_bridge: anx7625@58 {
148		compatible = "analogix,anx7625";
149		reg = <0x58>;
150		pinctrl-names = "default";
151		pinctrl-0 = <&anx7625_pins>;
152		panel_flags = <1>;
153		enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
154		reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
155		vdd10-supply = <&pp1200_mipibrdg>;
156		vdd18-supply = <&pp1800_mipibrdg>;
157		vdd33-supply = <&vddio_mipibrdg>;
158
159		#address-cells = <1>;
160		#size-cells = <0>;
161		port@0 {
162			reg = <0>;
163
164			anx7625_in: endpoint {
165				remote-endpoint = <&dsi_out>;
166			};
167		};
168
169		port@1 {
170			reg = <1>;
171
172			anx7625_out: endpoint {
173				remote-endpoint = <&panel_in>;
174			};
175		};
176
177		aux-bus {
178			panel: panel {
179				compatible = "edp-panel";
180				power-supply = <&pp3300_panel>;
181				backlight = <&backlight_lcd0>;
182
183				port {
184					panel_in: endpoint {
185						remote-endpoint = <&anx7625_out>;
186					};
187				};
188			};
189		};
190	};
191};
192
193&i2c_tunnel {
194	google,remote-bus = <2>;
195};
196
197&pio {
198	/* 192 lines */
199	gpio-line-names =
200		"SPI_AP_EC_CS_L",
201		"SPI_AP_EC_MOSI",
202		"SPI_AP_EC_CLK",
203		"I2S3_DO",
204		"USB_PD_INT_ODL",
205		"",
206		"",
207		"",
208		"",
209		"IT6505_HPD_L",
210		"I2S3_TDM_D3",
211		"SOC_I2C6_1V8_SCL",
212		"SOC_I2C6_1V8_SDA",
213		"DPI_D0",
214		"DPI_D1",
215		"DPI_D2",
216		"DPI_D3",
217		"DPI_D4",
218		"DPI_D5",
219		"DPI_D6",
220		"DPI_D7",
221		"DPI_D8",
222		"DPI_D9",
223		"DPI_D10",
224		"DPI_D11",
225		"DPI_HSYNC",
226		"DPI_VSYNC",
227		"DPI_DE",
228		"DPI_CK",
229		"AP_MSDC1_CLK",
230		"AP_MSDC1_DAT3",
231		"AP_MSDC1_CMD",
232		"AP_MSDC1_DAT0",
233		"AP_MSDC1_DAT2",
234		"AP_MSDC1_DAT1",
235		"",
236		"",
237		"",
238		"",
239		"",
240		"",
241		"OTG_EN",
242		"DRVBUS",
243		"DISP_PWM",
244		"DSI_TE",
245		"LCM_RST_1V8",
246		"AP_CTS_WIFI_RTS",
247		"AP_RTS_WIFI_CTS",
248		"SOC_I2C5_1V8_SCL",
249		"SOC_I2C5_1V8_SDA",
250		"SOC_I2C3_1V8_SCL",
251		"SOC_I2C3_1V8_SDA",
252		"",
253		"",
254		"",
255		"",
256		"",
257		"",
258		"",
259		"",
260		"",
261		"",
262		"",
263		"",
264		"",
265		"",
266		"",
267		"",
268		"",
269		"",
270		"",
271		"",
272		"",
273		"",
274		"",
275		"",
276		"",
277		"",
278		"",
279		"",
280		"",
281		"SOC_I2C1_1V8_SDA",
282		"SOC_I2C0_1V8_SDA",
283		"SOC_I2C0_1V8_SCL",
284		"SOC_I2C1_1V8_SCL",
285		"AP_SPI_H1_MISO",
286		"AP_SPI_H1_CS_L",
287		"AP_SPI_H1_MOSI",
288		"AP_SPI_H1_CLK",
289		"I2S5_BCK",
290		"I2S5_LRCK",
291		"I2S5_DO",
292		"BOOTBLOCK_EN_L",
293		"MT8183_KPCOL0",
294		"SPI_AP_EC_MISO",
295		"UART_DBG_TX_AP_RX",
296		"UART_AP_TX_DBG_RX",
297		"I2S2_MCK",
298		"I2S2_BCK",
299		"CLK_5M_WCAM",
300		"CLK_2M_UCAM",
301		"I2S2_LRCK",
302		"I2S2_DI",
303		"SOC_I2C2_1V8_SCL",
304		"SOC_I2C2_1V8_SDA",
305		"SOC_I2C4_1V8_SCL",
306		"SOC_I2C4_1V8_SDA",
307		"",
308		"SCL8",
309		"SDA8",
310		"FCAM_PWDN_L",
311		"",
312		"",
313		"",
314		"",
315		"",
316		"",
317		"",
318		"",
319		"",
320		"",
321		"",
322		"",
323		"",
324		"",
325		"",
326		"",
327		"",
328		"",
329		"",
330		"",
331		"",
332		"",
333		"",
334		"",
335		"",
336		"I2S_PMIC",
337		"I2S_PMIC",
338		"I2S_PMIC",
339		"I2S_PMIC",
340		"I2S_PMIC",
341		"I2S_PMIC",
342		"I2S_PMIC",
343		"I2S_PMIC",
344		"",
345		"",
346		"",
347		"",
348		"",
349		"",
350		/*
351		 * AP_FLASH_WP_L is crossystem ABI. Rev1 schematics
352		 * call it BIOS_FLASH_WP_R_L.
353		 */
354		"AP_FLASH_WP_L",
355		"EC_AP_INT_ODL",
356		"IT6505_INT_ODL",
357		"H1_INT_OD_L",
358		"",
359		"",
360		"",
361		"",
362		"",
363		"",
364		"",
365		"AP_SPI_FLASH_MISO",
366		"AP_SPI_FLASH_CS_L",
367		"AP_SPI_FLASH_MOSI",
368		"AP_SPI_FLASH_CLK",
369		"DA7219_IRQ",
370		"",
371		"",
372		"",
373		"",
374		"",
375		"",
376		"",
377		"",
378		"",
379		"",
380		"",
381		"",
382		"",
383		"",
384		"",
385		"",
386		"",
387		"",
388		"",
389		"",
390		"",
391		"",
392		"",
393		"",
394		"",
395		"";
396
397	pp1200_mipibrdg_en: pp1200-mipibrdg-en {
398		pins1 {
399			pinmux = <PINMUX_GPIO54__FUNC_GPIO54>;
400			output-low;
401		};
402	};
403
404	pp1800_lcd_en: pp1800-lcd-en {
405		pins1 {
406			pinmux = <PINMUX_GPIO36__FUNC_GPIO36>;
407			output-low;
408		};
409	};
410
411	pp3300_panel_pins: pp3300-panel-pins {
412		panel_3v3_enable: panel-3v3-enable {
413			pinmux = <PINMUX_GPIO35__FUNC_GPIO35>;
414			output-low;
415		};
416	};
417
418	ppvarp_lcd_en: ppvarp-lcd-en {
419		pins1 {
420			pinmux = <PINMUX_GPIO66__FUNC_GPIO66>;
421			output-low;
422		};
423	};
424
425	ppvarn_lcd_en: ppvarn-lcd-en {
426		pins1 {
427			pinmux = <PINMUX_GPIO166__FUNC_GPIO166>;
428			output-low;
429		};
430	};
431
432	anx7625_pins: anx7625-pins {
433		pins1 {
434			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>,
435				 <PINMUX_GPIO73__FUNC_GPIO73>;
436			output-low;
437		};
438		pins2 {
439			pinmux = <PINMUX_GPIO4__FUNC_GPIO4>;
440			input-enable;
441			bias-pull-up;
442		};
443	};
444
445	touchscreen_pins: touchscreen-pins {
446		touch_int_odl {
447			pinmux = <PINMUX_GPIO155__FUNC_GPIO155>;
448			input-enable;
449			bias-pull-up;
450		};
451
452		touch_rst_l {
453			pinmux = <PINMUX_GPIO156__FUNC_GPIO156>;
454			output-high;
455		};
456	};
457
458	trackpad_pins: trackpad-pins {
459		trackpad_int {
460			pinmux = <PINMUX_GPIO7__FUNC_GPIO7>;
461			input-enable;
462			bias-disable; /* pulled externally */
463		};
464	};
465
466	vddio_mipibrdg_en: vddio-mipibrdg-en {
467		pins1 {
468			pinmux = <PINMUX_GPIO37__FUNC_GPIO37>;
469			output-low;
470		};
471	};
472
473	volume_button_pins: volume-button-pins {
474		voldn-btn-odl {
475			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
476			input-enable;
477			bias-pull-up;
478		};
479
480		volup-btn-odl {
481			pinmux = <PINMUX_GPIO5__FUNC_GPIO5>;
482			input-enable;
483			bias-pull-up;
484		};
485	};
486};
487
488