1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun */
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun/dts-v1/;
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "rk3588-evb1-lp4.dtsi"
10*4882a593Smuzhiyun#include "rk3588-evb1-imx415.dtsi"
11*4882a593Smuzhiyun#include "rk3588-android.dtsi"
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/ {
14*4882a593Smuzhiyun	model = "Rockchip RK3588 EVB1 LP4 V10 Board + DSI DSC PANEL MV2100UZ1 DISPLAY Ext Board";
15*4882a593Smuzhiyun	compatible = "rockchip,rk3588-evb1-lp4-v10-dsi-dsc-MV2100UZ1", "rockchip,rk3588";
16*4882a593Smuzhiyun};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun&backlight {
19*4882a593Smuzhiyun	status = "okay";
20*4882a593Smuzhiyun	default-brightness-level = <20>;
21*4882a593Smuzhiyun};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun&dsi0 {
24*4882a593Smuzhiyun	status = "okay";
25*4882a593Smuzhiyun	rockchip,lane-rate = <1200000>;
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	dsi0_panel: panel@0 {
28*4882a593Smuzhiyun		status = "okay";
29*4882a593Smuzhiyun		compatible = "simple-panel-dsi";
30*4882a593Smuzhiyun		reg = <0>;
31*4882a593Smuzhiyun		backlight = <&backlight>;
32*4882a593Smuzhiyun		reset-delay-ms = <50>;
33*4882a593Smuzhiyun		enable-delay-ms = <50>;
34*4882a593Smuzhiyun		init-delay-ms = <20>;
35*4882a593Smuzhiyun		prepare-delay-ms = <50>;
36*4882a593Smuzhiyun		unprepare-delay-ms = <20>;
37*4882a593Smuzhiyun		disable-delay-ms = <20>;
38*4882a593Smuzhiyun		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST)>;
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun		dsi,format = <MIPI_DSI_FMT_RGB888>;
41*4882a593Smuzhiyun		dsi,lanes  = <4>;
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		compressed-data;
44*4882a593Smuzhiyun		slice-width = <1140>;
45*4882a593Smuzhiyun		slice-height = <2280>;
46*4882a593Smuzhiyun		version-major = <1>;
47*4882a593Smuzhiyun		version-minor = <1>;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun		panel-init-sequence = [
50*4882a593Smuzhiyun			/* PPS Setting */
51*4882a593Smuzhiyun			0A 00 58 11 00 00 89 30 80 08 E8 08 E8 08 E8 04 74 04 74 02 00 03 C9 00 20 F7 C5 00 0F 00 0F 00 0E 00 06 18 00 10 F0 03 0C 20 00 06 0B 0B 33 0E 1C 2A 38 46 54 62 69 70 77 79 7B 7D 7E 01 02 01 00 09 40 09 BE 19 FC 19 FA 19 F8 1A 38 1A 78 1A B6 2A F6 2B 34 2B 74 3B 74 6B F4
52*4882a593Smuzhiyun			39 00 02 FF 20
53*4882a593Smuzhiyun			39 00 02 E0 10
54*4882a593Smuzhiyun			39 00 02 7A 07
55*4882a593Smuzhiyun			39 00 02 7D 0C
56*4882a593Smuzhiyun			39 00 02 7E 0C
57*4882a593Smuzhiyun			39 00 02 FB 01
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun			39 00 02 FF E0
60*4882a593Smuzhiyun			39 00 02 66 00
61*4882a593Smuzhiyun			39 00 02 23 07
62*4882a593Smuzhiyun			39 00 02 FB 01
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun			/* CMD2 page 5 */
65*4882a593Smuzhiyun			39 00 02 FF 25
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun			/* OSC TRACE for MIPI H 4.748us */
68*4882a593Smuzhiyun			39 00 02 2F 20
69*4882a593Smuzhiyun			39 00 02 0D 07
70*4882a593Smuzhiyun			39 00 02 0E 6B
71*4882a593Smuzhiyun			39 00 02 11 11
72*4882a593Smuzhiyun			39 00 02 13 00
73*4882a593Smuzhiyun			39 00 02 14 01
74*4882a593Smuzhiyun			39 00 02 25 20
75*4882a593Smuzhiyun			39 00 02 0F 09
76*4882a593Smuzhiyun			39 00 02 10 A5
77*4882a593Smuzhiyun			39 00 02 12 17
78*4882a593Smuzhiyun			39 00 02 15 01
79*4882a593Smuzhiyun			39 00 02 0C 01
80*4882a593Smuzhiyun			39 00 02 09 10
81*4882a593Smuzhiyun			39 00 02 38 03
82*4882a593Smuzhiyun			39 00 02 0A 00
83*4882a593Smuzhiyun			39 00 02 07 02
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun			/* MIPI VFP */
86*4882a593Smuzhiyun			39 00 02 BC FF
87*4882a593Smuzhiyun			39 00 02 BD FF
88*4882a593Smuzhiyun			39 00 02 BE FF
89*4882a593Smuzhiyun			39 00 02 BF FF
90*4882a593Smuzhiyun			39 00 02 C0 FF
91*4882a593Smuzhiyun			39 00 02 C1 FF
92*4882a593Smuzhiyun			39 00 02 C2 FF
93*4882a593Smuzhiyun			39 00 02 C3 FF
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun			39 00 02 FB 01
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun			39 00 02 FF 10
98*4882a593Smuzhiyun			39 00 05 2A 00 00 08 E7
99*4882a593Smuzhiyun			39 00 05 2B 00 00 08 E7
100*4882a593Smuzhiyun			39 00 02 03 01
101*4882a593Smuzhiyun			39 00 02 BB 13
102*4882a593Smuzhiyun			39 00 02 C0 03
103*4882a593Smuzhiyun			39 00 11 C1 89 28 08 E8 F2 00 03 C9 F7 C5 00 0F 00 0E 00 06
104*4882a593Smuzhiyun			39 00 03 C2 10 F0
105*4882a593Smuzhiyun			39 00 02 35 00
106*4882a593Smuzhiyun			39 00 03 44 00 00
107*4882a593Smuzhiyun			39 00 02 51 FF
108*4882a593Smuzhiyun			39 00 02 53 24
109*4882a593Smuzhiyun			39 00 02 FB 01
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun			15 64 01 11
112*4882a593Smuzhiyun			15 14 01 29
113*4882a593Smuzhiyun		];
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun		panel-exit-sequence = [
116*4882a593Smuzhiyun			05 00 01 28
117*4882a593Smuzhiyun			05 00 01 10
118*4882a593Smuzhiyun		];
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun		disp_timings0: display-timings {
121*4882a593Smuzhiyun			native-mode = <&dsi0_timing0>;
122*4882a593Smuzhiyun			dsi0_timing0: timing0 {
123*4882a593Smuzhiyun				clock-frequency = <506000000>;
124*4882a593Smuzhiyun				hactive = <2280>;
125*4882a593Smuzhiyun				vactive = <2280>;
126*4882a593Smuzhiyun				hfront-porch = <52>;
127*4882a593Smuzhiyun				hsync-len = <20>;
128*4882a593Smuzhiyun				hback-porch = <52>;
129*4882a593Smuzhiyun				vfront-porch = <44>;
130*4882a593Smuzhiyun				vsync-len = <2>;
131*4882a593Smuzhiyun				vback-porch = <14>;
132*4882a593Smuzhiyun				hsync-active = <0>;
133*4882a593Smuzhiyun				vsync-active = <0>;
134*4882a593Smuzhiyun				de-active = <0>;
135*4882a593Smuzhiyun				pixelclk-active = <0>;
136*4882a593Smuzhiyun			};
137*4882a593Smuzhiyun		};
138*4882a593Smuzhiyun
139*4882a593Smuzhiyun		ports {
140*4882a593Smuzhiyun			#address-cells = <1>;
141*4882a593Smuzhiyun			#size-cells = <0>;
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun			port@0 {
144*4882a593Smuzhiyun				reg = <0>;
145*4882a593Smuzhiyun				panel_in_dsi: endpoint {
146*4882a593Smuzhiyun					remote-endpoint = <&dsi_out_panel>;
147*4882a593Smuzhiyun				};
148*4882a593Smuzhiyun			};
149*4882a593Smuzhiyun		};
150*4882a593Smuzhiyun	};
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun	ports {
153*4882a593Smuzhiyun		#address-cells = <1>;
154*4882a593Smuzhiyun		#size-cells = <0>;
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun		port@1 {
157*4882a593Smuzhiyun			reg = <1>;
158*4882a593Smuzhiyun			dsi_out_panel: endpoint {
159*4882a593Smuzhiyun				remote-endpoint = <&panel_in_dsi>;
160*4882a593Smuzhiyun			};
161*4882a593Smuzhiyun		};
162*4882a593Smuzhiyun	};
163*4882a593Smuzhiyun};
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun&dp0 {
166*4882a593Smuzhiyun	status = "disabled";
167*4882a593Smuzhiyun};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun&dp1 {
170*4882a593Smuzhiyun	status = "disabled";
171*4882a593Smuzhiyun};
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun&dp0_in_vp2 {
174*4882a593Smuzhiyun	status = "disabled";
175*4882a593Smuzhiyun};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun&dp1_in_vp2 {
178*4882a593Smuzhiyun	status = "disabled";
179*4882a593Smuzhiyun};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun&dsi0_in_vp2 {
182*4882a593Smuzhiyun	status = "okay";
183*4882a593Smuzhiyun};
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun&dsi0_in_vp3 {
186*4882a593Smuzhiyun	status = "disabled";
187*4882a593Smuzhiyun};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun&dsi1_in_vp2 {
190*4882a593Smuzhiyun	status = "disabled";
191*4882a593Smuzhiyun};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun&mipi_dcphy0 {
194*4882a593Smuzhiyun	status = "okay";
195*4882a593Smuzhiyun};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun&route_dsi0 {
198*4882a593Smuzhiyun	status = "okay";
199*4882a593Smuzhiyun	connect = <&vp2_out_dsi0>;
200*4882a593Smuzhiyun};
201