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		enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
153		reset-gpios = <&pio 73 GPIO_ACTIVE_HIGH>;
154		vdd10-supply = <&pp1200_mipibrdg>;
155		vdd18-supply = <&pp1800_mipibrdg>;
156		vdd33-supply = <&vddio_mipibrdg>;
157
158		#address-cells = <1>;
159		#size-cells = <0>;
160		port@0 {
161			reg = <0>;
162
163			anx7625_in: endpoint {
164				remote-endpoint = <&dsi_out>;
165			};
166		};
167
168		port@1 {
169			reg = <1>;
170
171			anx7625_out: endpoint {
172				remote-endpoint = <&panel_in>;
173			};
174		};
175
176		aux-bus {
177			panel: panel {
178				compatible = "edp-panel";
179				power-supply = <&pp3300_panel>;
180				backlight = <&backlight_lcd0>;
181
182				port {
183					panel_in: endpoint {
184						remote-endpoint = <&anx7625_out>;
185					};
186				};
187			};
188		};
189	};
190};
191
192&i2c_tunnel {
193	google,remote-bus = <2>;
194};
195
196&pio {
197	/* 192 lines */
198	gpio-line-names =
199		"SPI_AP_EC_CS_L",
200		"SPI_AP_EC_MOSI",
201		"SPI_AP_EC_CLK",
202		"I2S3_DO",
203		"USB_PD_INT_ODL",
204		"",
205		"",
206		"",
207		"",
208		"IT6505_HPD_L",
209		"I2S3_TDM_D3",
210		"SOC_I2C6_1V8_SCL",
211		"SOC_I2C6_1V8_SDA",
212		"DPI_D0",
213		"DPI_D1",
214		"DPI_D2",
215		"DPI_D3",
216		"DPI_D4",
217		"DPI_D5",
218		"DPI_D6",
219		"DPI_D7",
220		"DPI_D8",
221		"DPI_D9",
222		"DPI_D10",
223		"DPI_D11",
224		"DPI_HSYNC",
225		"DPI_VSYNC",
226		"DPI_DE",
227		"DPI_CK",
228		"AP_MSDC1_CLK",
229		"AP_MSDC1_DAT3",
230		"AP_MSDC1_CMD",
231		"AP_MSDC1_DAT0",
232		"AP_MSDC1_DAT2",
233		"AP_MSDC1_DAT1",
234		"",
235		"",
236		"",
237		"",
238		"",
239		"",
240		"OTG_EN",
241		"DRVBUS",
242		"DISP_PWM",
243		"DSI_TE",
244		"LCM_RST_1V8",
245		"AP_CTS_WIFI_RTS",
246		"AP_RTS_WIFI_CTS",
247		"SOC_I2C5_1V8_SCL",
248		"SOC_I2C5_1V8_SDA",
249		"SOC_I2C3_1V8_SCL",
250		"SOC_I2C3_1V8_SDA",
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		"",
278		"",
279		"",
280		"SOC_I2C1_1V8_SDA",
281		"SOC_I2C0_1V8_SDA",
282		"SOC_I2C0_1V8_SCL",
283		"SOC_I2C1_1V8_SCL",
284		"AP_SPI_H1_MISO",
285		"AP_SPI_H1_CS_L",
286		"AP_SPI_H1_MOSI",
287		"AP_SPI_H1_CLK",
288		"I2S5_BCK",
289		"I2S5_LRCK",
290		"I2S5_DO",
291		"BOOTBLOCK_EN_L",
292		"MT8183_KPCOL0",
293		"SPI_AP_EC_MISO",
294		"UART_DBG_TX_AP_RX",
295		"UART_AP_TX_DBG_RX",
296		"I2S2_MCK",
297		"I2S2_BCK",
298		"CLK_5M_WCAM",
299		"CLK_2M_UCAM",
300		"I2S2_LRCK",
301		"I2S2_DI",
302		"SOC_I2C2_1V8_SCL",
303		"SOC_I2C2_1V8_SDA",
304		"SOC_I2C4_1V8_SCL",
305		"SOC_I2C4_1V8_SDA",
306		"",
307		"SCL8",
308		"SDA8",
309		"FCAM_PWDN_L",
310		"",
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		"I2S_PMIC",
336		"I2S_PMIC",
337		"I2S_PMIC",
338		"I2S_PMIC",
339		"I2S_PMIC",
340		"I2S_PMIC",
341		"I2S_PMIC",
342		"I2S_PMIC",
343		"",
344		"",
345		"",
346		"",
347		"",
348		"",
349		/*
350		 * AP_FLASH_WP_L is crossystem ABI. Rev1 schematics
351		 * call it BIOS_FLASH_WP_R_L.
352		 */
353		"AP_FLASH_WP_L",
354		"EC_AP_INT_ODL",
355		"IT6505_INT_ODL",
356		"H1_INT_OD_L",
357		"",
358		"",
359		"",
360		"",
361		"",
362		"",
363		"",
364		"AP_SPI_FLASH_MISO",
365		"AP_SPI_FLASH_CS_L",
366		"AP_SPI_FLASH_MOSI",
367		"AP_SPI_FLASH_CLK",
368		"DA7219_IRQ",
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		"",
394		"";
395
396	pp1200_mipibrdg_en: pp1200-mipibrdg-en {
397		pins1 {
398			pinmux = <PINMUX_GPIO54__FUNC_GPIO54>;
399			output-low;
400		};
401	};
402
403	pp1800_lcd_en: pp1800-lcd-en {
404		pins1 {
405			pinmux = <PINMUX_GPIO36__FUNC_GPIO36>;
406			output-low;
407		};
408	};
409
410	pp3300_panel_pins: pp3300-panel-pins {
411		panel_3v3_enable: panel-3v3-enable {
412			pinmux = <PINMUX_GPIO35__FUNC_GPIO35>;
413			output-low;
414		};
415	};
416
417	ppvarp_lcd_en: ppvarp-lcd-en {
418		pins1 {
419			pinmux = <PINMUX_GPIO66__FUNC_GPIO66>;
420			output-low;
421		};
422	};
423
424	ppvarn_lcd_en: ppvarn-lcd-en {
425		pins1 {
426			pinmux = <PINMUX_GPIO166__FUNC_GPIO166>;
427			output-low;
428		};
429	};
430
431	anx7625_pins: anx7625-pins {
432		pins1 {
433			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>,
434				 <PINMUX_GPIO73__FUNC_GPIO73>;
435			output-low;
436		};
437		pins2 {
438			pinmux = <PINMUX_GPIO4__FUNC_GPIO4>;
439			input-enable;
440			bias-pull-up;
441		};
442	};
443
444	touchscreen_pins: touchscreen-pins {
445		touch-int-odl {
446			pinmux = <PINMUX_GPIO155__FUNC_GPIO155>;
447			input-enable;
448			bias-pull-up;
449		};
450
451		touch-rst-l {
452			pinmux = <PINMUX_GPIO156__FUNC_GPIO156>;
453			output-high;
454		};
455	};
456
457	trackpad_pins: trackpad-pins {
458		trackpad-int {
459			pinmux = <PINMUX_GPIO7__FUNC_GPIO7>;
460			input-enable;
461			bias-disable; /* pulled externally */
462		};
463	};
464
465	vddio_mipibrdg_en: vddio-mipibrdg-en {
466		pins1 {
467			pinmux = <PINMUX_GPIO37__FUNC_GPIO37>;
468			output-low;
469		};
470	};
471
472	volume_button_pins: volume-button-pins {
473		voldn-btn-odl {
474			pinmux = <PINMUX_GPIO6__FUNC_GPIO6>;
475			input-enable;
476			bias-pull-up;
477		};
478
479		volup-btn-odl {
480			pinmux = <PINMUX_GPIO5__FUNC_GPIO5>;
481			input-enable;
482			bias-pull-up;
483		};
484	};
485};
486
487