1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2022 Google LLC
4 */
5
6/dts-v1/;
7#include "mt8186-corsola.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10
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
46&dsi_out {
47	remote-endpoint = <&anx7625_in>;
48};
49
50&i2c0 {
51	clock-frequency = <400000>;
52
53	anx_bridge: anx7625@58 {
54		compatible = "analogix,anx7625";
55		reg = <0x58>;
56		pinctrl-names = "default";
57		pinctrl-0 = <&anx7625_pins>;
58		enable-gpios = <&pio 96 GPIO_ACTIVE_HIGH>;
59		reset-gpios = <&pio 98 GPIO_ACTIVE_HIGH>;
60		vdd10-supply = <&pp1000_edpbrdg>;
61		vdd18-supply = <&pp1800_edpbrdg_dx>;
62		vdd33-supply = <&pp3300_edp_dx>;
63		analogix,lane0-swing = /bits/ 8 <0x70 0x30>;
64		analogix,lane1-swing = /bits/ 8 <0x70 0x30>;
65
66		ports {
67			#address-cells = <1>;
68			#size-cells = <0>;
69
70			port@0 {
71				reg = <0>;
72
73				anx7625_in: endpoint {
74					remote-endpoint = <&dsi_out>;
75					data-lanes = <0 1 2 3>;
76				};
77			};
78
79			port@1 {
80				reg = <1>;
81
82				anx7625_out: endpoint {
83					remote-endpoint = <&panel_in>;
84				};
85			};
86		};
87
88		aux-bus {
89			panel: panel {
90				compatible = "edp-panel";
91				power-supply = <&pp3300_disp_x>;
92				backlight = <&backlight_lcd0>;
93
94				port {
95					panel_in: endpoint {
96						remote-endpoint = <&anx7625_out>;
97					};
98				};
99			};
100		};
101	};
102};
103
104&i2c1 {
105	touchscreen: touchscreen@5d {
106		compatible = "goodix,gt7375p";
107		reg = <0x5d>;
108		interrupts-extended = <&pio 12 IRQ_TYPE_EDGE_FALLING>;
109		pinctrl-names = "default";
110		pinctrl-0 = <&touchscreen_pins>;
111		reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>;
112		vdd-supply = <&pp3300_s3>;
113		goodix,no-reset-during-suspend;
114	};
115};
116
117&i2c2 {
118	i2c-scl-internal-delay-ns = <22000>;
119
120	/* second source component */
121	trackpad@2c {
122		compatible = "hid-over-i2c";
123		reg = <0x2c>;
124		hid-descr-addr = <0x20>;
125		interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_LOW>;
126		vdd-supply = <&pp3300_s3>;
127		wakeup-source;
128	};
129};
130
131&keyboard_controller {
132	function-row-physmap = <
133		MATRIX_KEY(0x00, 0x02, 0)	/* T1 */
134		MATRIX_KEY(0x03, 0x02, 0)	/* T2 */
135		MATRIX_KEY(0x02, 0x02, 0)	/* T3 */
136		MATRIX_KEY(0x01, 0x02, 0)	/* T4 */
137		MATRIX_KEY(0x03, 0x04, 0)	/* T5 */
138		MATRIX_KEY(0x02, 0x04, 0)	/* T6 */
139		MATRIX_KEY(0x01, 0x04, 0)	/* T7 */
140		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
141		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
142		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */
143	>;
144
145	linux,keymap = <
146		MATRIX_KEY(0x00, 0x02, KEY_BACK)
147		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
148		MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
149		MATRIX_KEY(0x01, 0x02, KEY_SCALE)
150		MATRIX_KEY(0x03, 0x04, KEY_BRIGHTNESSDOWN)
151		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSUP)
152		MATRIX_KEY(0x01, 0x04, KEY_MICMUTE)
153		MATRIX_KEY(0x02, 0x09, KEY_MUTE)
154		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
155		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
156		CROS_STD_MAIN_KEYMAP
157	>;
158};
159
160&pio {
161	anx7625_pins: anx7625-pins {
162		pins-int {
163			pinmux = <PINMUX_GPIO9__FUNC_GPIO9>;
164			input-enable;
165			bias-disable;
166		};
167
168		pins-reset {
169			pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
170			output-low;
171		};
172
173		pins-power-en {
174			pinmux = <PINMUX_GPIO96__FUNC_GPIO96>;
175			output-low;
176		};
177	};
178
179	en_pp1000_edpbrdg: pp1000-edpbrdg-en-pins {
180		pins-vreg-en {
181			pinmux = <PINMUX_GPIO29__FUNC_GPIO29>;
182			output-low;
183		};
184	};
185
186	en_pp1800_edpbrdg: pp1800-edpbrdg-en-pins {
187		pins-vreg-en {
188			pinmux = <PINMUX_GPIO30__FUNC_GPIO30>;
189			output-low;
190		};
191	};
192
193	en_pp3300_edpbrdg: pp3300-edpbrdg-en-pins {
194		pins-vreg-en {
195			pinmux = <PINMUX_GPIO31__FUNC_GPIO31>;
196			output-low;
197		};
198	};
199};
200