xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/rockchip/rk3562-evb1-lp4x-v10-mcu-k350c4516t.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
4 *
5 */
6
7#include <dt-bindings/display/media-bus-format.h>
8#include "rk3562-evb1-lp4x-v10.dtsi"
9#include "rk3562-android.dtsi"
10#include "rk3562-rk817.dtsi"
11
12/ {
13	model = "Rockchip RK3562 EVB1 LP4X V10 Board + RK EVB MCU PANLE DISPLAY Ext Board";
14	compatible = "rockchip,rk3562-evb1-lp4x-v10-mcu-k350c4516t", "rockchip,rk3562";
15};
16
17&backlight {
18	status = "okay";
19	pwms = <&pwm9 0 25000 0>;
20};
21
22&dsi {
23	status = "disabled";
24};
25
26&dsi_in_vp0 {
27	status = "disabled";
28};
29
30/*
31 * The pins of gmac0/pcie2x1 and rgb are multiplexed
32 */
33&gmac0 {
34	status = "disabled";
35};
36
37&pcie2x1 {
38	status = "disabled";
39};
40
41&pwm9 {
42	status = "okay";
43};
44
45&rgb {
46	status = "okay";
47	rockchip,data-sync-bypass;
48	pinctrl-names = "default";
49	/*
50	 * rgb3x8_pins_m0/rgb3x8_pins_m1 for serial mcu
51	 * rgb565_pins for parallel mcu
52	 */
53	pinctrl-0 = <&rgb565_pins>;
54
55	/*
56	 * 320x480 RGB/MCU screen K350C4516T
57	 */
58	mcu_panel: mcu-panel {
59		/*
60		 * MEDIA_BUS_FMT_RGB888_3X8  for serial mcu
61		 * MEDIA_BUS_FMT_RGB565_1X16 for parallel mcu
62		 */
63		bus-format = <MEDIA_BUS_FMT_RGB565_1X16>;
64		backlight = <&backlight>;
65		enable-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
66		enable-delay-ms = <20>;
67		reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
68		reset-value = <0>;
69		reset-delay-ms = <10>;
70		prepare-delay-ms = <20>;
71		unprepare-delay-ms = <20>;
72		disable-delay-ms = <20>;
73		width-mm = <217>;
74		height-mm = <136>;
75
76		// type:0 is cmd, 1 is data
77		panel-init-sequence = [
78			//type delay num val1 val2 val3
79			  00   00  01  e0
80			  01   00  01  00
81			  01   00  01  07
82			  01   00  01  0f
83			  01   00  01  0d
84			  01   00  01  1b
85			  01   00  01  0a
86			  01   00  01  3c
87			  01   00  01  78
88			  01   00  01  4a
89			  01   00  01  07
90			  01   00  01  0e
91			  01   00  01  09
92			  01   00  01  1b
93			  01   00  01  1e
94			  01   00  01  0f
95			  00   00  01  e1
96			  01   00  01  00
97			  01   00  01  22
98			  01   00  01  24
99			  01   00  01  06
100			  01   00  01  12
101			  01   00  01  07
102			  01   00  01  36
103			  01   00  01  47
104			  01   00  01  47
105			  01   00  01  06
106			  01   00  01  0a
107			  01   00  01  07
108			  01   00  01  30
109			  01   00  01  37
110			  01   00  01  0f
111
112			  00   00  01  c0
113			  01   00  01  10
114			  01   00  01  10
115
116			  00   00  01  c1
117			  01   00  01  41
118
119			  00   00  01  c5
120			  01   00  01  00
121			  01   00  01  22
122			  01   00  01  80
123
124			  00   00  01  36
125			  01   00  01  48
126
127			  00   00  01  3a  //interface pixel format
128			  01   00  01  55  // bpp    cfg
129					   //  3      11
130					   //  16     55
131					   //  18     66
132					   //  24     77
133
134			  00   00  01  b0  //interface mode control
135			  01   00  01  00
136
137			  00   00  01  b1  //frame rate 60hz
138			  01   00  01  a0
139			  01   00  01  11
140			  00   00  01  b4
141			  01   00  01  02
142			  00   00  01  B6
143			  01   00  01  02
144			  01   00  01  02
145
146			  00   00  01  b7
147			  01   00  01  c6
148
149			  00   00  01  be
150			  01   00  01  00
151			  01   00  01  04
152
153			  00   00  01  e9
154			  01   00  01  00
155
156			  00   00  01  f7
157			  01   00  01  a9
158			  01   00  01  51
159			  01   00  01  2c
160			  01   00  01  82
161
162			  00   78  01  11
163			  00   32  01  29
164			  00   00  01  2c
165		];
166
167		panel-exit-sequence = [
168			//type delay num val1 val2 val3
169			00   0a  01  28
170			00   78  01  10
171		];
172
173		display-timings {
174			native-mode = <&kd050fwfba002_timing>;
175
176			kd050fwfba002_timing: timing0 {
177				clock-frequency = <94081500>;
178				hactive = <320>;
179				vactive = <480>;
180				hback-porch = <10>;
181				hfront-porch = <5>;
182				vback-porch = <10>;
183				vfront-porch = <5>;
184				hsync-len = <10>;
185				vsync-len = <10>;
186				hsync-active = <0>;
187				vsync-active = <0>;
188				de-active = <0>;
189				pixelclk-active = <1>;
190			};
191		};
192
193		port {
194			panel_in_rgb: endpoint {
195				remote-endpoint = <&rgb_out_panel>;
196			};
197		};
198	};
199
200	ports {
201		rgb_out: port@1 {
202			reg = <1>;
203			#address-cells = <1>;
204			#size-cells = <0>;
205
206			rgb_out_panel: endpoint@0 {
207				reg = <0>;
208				remote-endpoint = <&panel_in_rgb>;
209			};
210		};
211	};
212};
213
214&rgb_in_vp0 {
215	status = "okay";
216};
217
218&route_rgb {
219	status = "okay";
220	connect = <&vp0_out_rgb>;
221};
222
223/*
224 * The pins of sai0/vcc_mipicsi0 and rgb are multiplexed
225 */
226&sai0 {
227	status = "disabled";
228};
229
230&vcc_mipicsi0 {
231	status = "disabled";
232};
233
234&video_phy {
235	status = "disabled";
236};
237
238&vop {
239	status = "okay";
240};
241
242&vp0 {
243	mcu-timing {
244		mcu-pix-total = <9>;
245		mcu-cs-pst = <1>;
246		mcu-cs-pend = <8>;
247		mcu-rw-pst = <2>;
248		mcu-rw-pend = <5>;
249
250		mcu-hold-mode = <0>; // default set to 0
251	};
252};
253