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