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