xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/rockchip/rk1808-evb-v10.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun#include <dt-bindings/display/drm_mipi_dsi.h>
8*4882a593Smuzhiyun#include "rk1808-evb.dtsi"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	model = "Rockchip RK1808 EVB V10 Board";
12*4882a593Smuzhiyun	compatible = "rockchip,rk1808-evb-v10", "rockchip,rk1808";
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	chosen {
15*4882a593Smuzhiyun		bootargs = "earlycon=uart8250,mmio32,0xff550000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait kpti=0 snd_aloop.index=7";
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	vad-sound {
19*4882a593Smuzhiyun		status = "okay";
20*4882a593Smuzhiyun		compatible = "rockchip,multicodecs-card";
21*4882a593Smuzhiyun		rockchip,card-name = "rockchip,rk1808-vad";
22*4882a593Smuzhiyun		rockchip,cpu = <&i2s0>;
23*4882a593Smuzhiyun		rockchip,codec = <&vad>;
24*4882a593Smuzhiyun	};
25*4882a593Smuzhiyun};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun&adc_key {
28*4882a593Smuzhiyun	vol-down-key {
29*4882a593Smuzhiyun		linux,code = <KEY_VOLUMEDOWN>;
30*4882a593Smuzhiyun		label = "volume down";
31*4882a593Smuzhiyun		press-threshold-microvolt = <300000>;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	vol-up-key {
35*4882a593Smuzhiyun		linux,code = <KEY_VOLUMEUP>;
36*4882a593Smuzhiyun		label = "volume up";
37*4882a593Smuzhiyun		press-threshold-microvolt = <18000>;
38*4882a593Smuzhiyun	};
39*4882a593Smuzhiyun};
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun&display_subsystem {
42*4882a593Smuzhiyun	status = "okay";
43*4882a593Smuzhiyun};
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun&dsi {
46*4882a593Smuzhiyun	status = "okay";
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	panel@0 {
49*4882a593Smuzhiyun		compatible = "sitronix,st7703", "simple-panel-dsi";
50*4882a593Smuzhiyun		reg = <0>;
51*4882a593Smuzhiyun		backlight = <&backlight>;
52*4882a593Smuzhiyun		enable-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
53*4882a593Smuzhiyun		power-supply = <&vcc5v0_sys>;
54*4882a593Smuzhiyun		prepare-delay-ms = <2>;
55*4882a593Smuzhiyun		reset-delay-ms = <1>;
56*4882a593Smuzhiyun		init-delay-ms = <20>;
57*4882a593Smuzhiyun		enable-delay-ms = <120>;
58*4882a593Smuzhiyun		disable-delay-ms = <50>;
59*4882a593Smuzhiyun		unprepare-delay-ms = <20>;
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun		width-mm = <68>;
62*4882a593Smuzhiyun		height-mm = <121>;
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun		dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
65*4882a593Smuzhiyun			      MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
66*4882a593Smuzhiyun		dsi,format = <MIPI_DSI_FMT_RGB888>;
67*4882a593Smuzhiyun		dsi,lanes = <4>;
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun		panel-init-sequence = [
70*4882a593Smuzhiyun			05 fa 01 11
71*4882a593Smuzhiyun			39 00 04 b9 f1 12 83
72*4882a593Smuzhiyun			39 00 1c ba 33 81 05 f9 0e 0e 00 00 00
73*4882a593Smuzhiyun				 00 00 00 00 00 44 25 00 91 0a
74*4882a593Smuzhiyun				 00 00 02 4f 01 00 00 37
75*4882a593Smuzhiyun			15 00 02 b8 25
76*4882a593Smuzhiyun			39 00 04 bf 02 11 00
77*4882a593Smuzhiyun			39 00 0b b3 0c 10 0a 50 03 ff 00 00 00
78*4882a593Smuzhiyun				 00
79*4882a593Smuzhiyun			39 00 0a c0 73 73 50 50 00 00 08 70 00
80*4882a593Smuzhiyun			15 00 02 bc 46
81*4882a593Smuzhiyun			15 00 02 cc 0b
82*4882a593Smuzhiyun			15 00 02 b4 80
83*4882a593Smuzhiyun			39 00 04 b2 c8 12 30
84*4882a593Smuzhiyun			39 00 0f e3 07 07 0b 0b 03 0b 00 00 00
85*4882a593Smuzhiyun				 00 ff 00 c0 10
86*4882a593Smuzhiyun			39 00 0d c1 53 00 1e 1e 77 e1 cc dd 67
87*4882a593Smuzhiyun				 77 33 33
88*4882a593Smuzhiyun			39 00 07 c6 00 00 ff ff 01 ff
89*4882a593Smuzhiyun			39 00 03 b5 09 09
90*4882a593Smuzhiyun			39 00 03 b6 87 95
91*4882a593Smuzhiyun			39 00 40 e9 c2 10 05 05 10 05 a0 12 31
92*4882a593Smuzhiyun				 23 3f 81 0a a0 37 18 00 80 01
93*4882a593Smuzhiyun				 00 00 00 00 80 01 00 00 00 48
94*4882a593Smuzhiyun				 f8 86 42 08 88 88 80 88 88 88
95*4882a593Smuzhiyun				 58 f8 87 53 18 88 88 81 88 88
96*4882a593Smuzhiyun				 88 00 00 00 01 00 00 00 00 00
97*4882a593Smuzhiyun				 00 00 00 00
98*4882a593Smuzhiyun			39 00 3e ea 00 1a 00 00 00 00 02 00 00
99*4882a593Smuzhiyun				 00 00 00 1f 88 81 35 78 88 88
100*4882a593Smuzhiyun				 85 88 88 88 0f 88 80 24 68 88
101*4882a593Smuzhiyun				 88 84 88 88 88 23 10 00 00 1c
102*4882a593Smuzhiyun				 00 00 00 00 00 00 00 00 00 00
103*4882a593Smuzhiyun				 00 00 00 00 00 30 05 a0 00 00
104*4882a593Smuzhiyun				 00 00
105*4882a593Smuzhiyun			39 00 23 e0 00 06 08 2a 31 3f 38 36 07
106*4882a593Smuzhiyun				 0c 0d 11 13 12 13 11 18 00 06
107*4882a593Smuzhiyun				 08 2a 31 3f 38 36 07 0c 0d 11
108*4882a593Smuzhiyun				 13 12 13 11 18
109*4882a593Smuzhiyun			05 32 01 29
110*4882a593Smuzhiyun		];
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun		panel-exit-sequence = [
113*4882a593Smuzhiyun			05 00 01 28
114*4882a593Smuzhiyun			05 00 01 10
115*4882a593Smuzhiyun		];
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun		display-timings {
118*4882a593Smuzhiyun			native-mode = <&timing0>;
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun			timing0: timing0 {
121*4882a593Smuzhiyun				clock-frequency = <64000000>;
122*4882a593Smuzhiyun				hactive = <720>;
123*4882a593Smuzhiyun				vactive = <1280>;
124*4882a593Smuzhiyun				hfront-porch = <40>;
125*4882a593Smuzhiyun				hsync-len = <10>;
126*4882a593Smuzhiyun				hback-porch = <40>;
127*4882a593Smuzhiyun				vfront-porch = <22>;
128*4882a593Smuzhiyun				vsync-len = <4>;
129*4882a593Smuzhiyun				vback-porch = <11>;
130*4882a593Smuzhiyun				hsync-active = <0>;
131*4882a593Smuzhiyun				vsync-active = <0>;
132*4882a593Smuzhiyun				de-active = <0>;
133*4882a593Smuzhiyun				pixelclk-active = <0>;
134*4882a593Smuzhiyun			};
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun		ports {
138*4882a593Smuzhiyun			#address-cells = <1>;
139*4882a593Smuzhiyun			#size-cells = <0>;
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun			port@0 {
142*4882a593Smuzhiyun				reg = <0>;
143*4882a593Smuzhiyun				panel_in_dsi: endpoint {
144*4882a593Smuzhiyun					remote-endpoint = <&dsi_out_panel>;
145*4882a593Smuzhiyun				};
146*4882a593Smuzhiyun			};
147*4882a593Smuzhiyun		};
148*4882a593Smuzhiyun	};
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun	ports {
151*4882a593Smuzhiyun		#address-cells = <1>;
152*4882a593Smuzhiyun		#size-cells = <0>;
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun		port@1 {
155*4882a593Smuzhiyun			reg = <1>;
156*4882a593Smuzhiyun			dsi_out_panel: endpoint {
157*4882a593Smuzhiyun				remote-endpoint = <&panel_in_dsi>;
158*4882a593Smuzhiyun			};
159*4882a593Smuzhiyun		};
160*4882a593Smuzhiyun	};
161*4882a593Smuzhiyun};
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun&i2c3 {
164*4882a593Smuzhiyun	status = "okay";
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun	clock-frequency = <100000>;
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun	ov5695: ov5695@36 {
169*4882a593Smuzhiyun		compatible = "ovti,ov5695";
170*4882a593Smuzhiyun		reg = <0x36>;
171*4882a593Smuzhiyun		clocks = <&cru SCLK_CIF_OUT>;
172*4882a593Smuzhiyun		clock-names = "xvclk";
173*4882a593Smuzhiyun		avdd-supply = <&vcc2v8_dvp>;
174*4882a593Smuzhiyun		dovdd-supply = <&vdd1v5_dvp>;
175*4882a593Smuzhiyun		dvdd-supply = <&vcc1v8_dvp>;
176*4882a593Smuzhiyun		pwdn-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
177*4882a593Smuzhiyun		pinctrl-names = "default";
178*4882a593Smuzhiyun		pinctrl-0 = <&cif_clkout_m0>;
179*4882a593Smuzhiyun		port {
180*4882a593Smuzhiyun			ucam_out: endpoint {
181*4882a593Smuzhiyun				remote-endpoint = <&mipi_in_ucam>;
182*4882a593Smuzhiyun				data-lanes = <1 2>;
183*4882a593Smuzhiyun			};
184*4882a593Smuzhiyun		};
185*4882a593Smuzhiyun	};
186*4882a593Smuzhiyun};
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun&i2s0 {
189*4882a593Smuzhiyun	status = "okay";
190*4882a593Smuzhiyun	#sound-dai-cells = <0>;
191*4882a593Smuzhiyun};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun&i2s1 {
194*4882a593Smuzhiyun	status = "okay";
195*4882a593Smuzhiyun	#sound-dai-cells = <0>;
196*4882a593Smuzhiyun};
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun&isp_mmu {
199*4882a593Smuzhiyun	status = "okay";
200*4882a593Smuzhiyun};
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun&mipi_dphy {
203*4882a593Smuzhiyun	status = "okay";
204*4882a593Smuzhiyun};
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun&mipi_dphy_rx {
207*4882a593Smuzhiyun	status = "okay";
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun	ports {
210*4882a593Smuzhiyun		#address-cells = <1>;
211*4882a593Smuzhiyun		#size-cells = <0>;
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun		port@0 {
214*4882a593Smuzhiyun			reg = <0>;
215*4882a593Smuzhiyun			#address-cells = <1>;
216*4882a593Smuzhiyun			#size-cells = <0>;
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun			mipi_in_ucam: endpoint@1 {
219*4882a593Smuzhiyun				reg = <1>;
220*4882a593Smuzhiyun				remote-endpoint = <&ucam_out>;
221*4882a593Smuzhiyun				data-lanes = <1 2>;
222*4882a593Smuzhiyun			};
223*4882a593Smuzhiyun		};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun		port@1 {
226*4882a593Smuzhiyun			reg = <1>;
227*4882a593Smuzhiyun			#address-cells = <1>;
228*4882a593Smuzhiyun			#size-cells = <0>;
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun			dphy_rx0_out: endpoint@0 {
231*4882a593Smuzhiyun				reg = <0>;
232*4882a593Smuzhiyun				remote-endpoint = <&isp0_mipi_in>;
233*4882a593Smuzhiyun			};
234*4882a593Smuzhiyun		};
235*4882a593Smuzhiyun	};
236*4882a593Smuzhiyun};
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun&rk_rga {
239*4882a593Smuzhiyun	status =  "okay";
240*4882a593Smuzhiyun};
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun&rk809_sound {
243*4882a593Smuzhiyun	status = "okay";
244*4882a593Smuzhiyun};
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun&rkisp1 {
247*4882a593Smuzhiyun	status = "okay";
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun	port {
250*4882a593Smuzhiyun		#address-cells = <1>;
251*4882a593Smuzhiyun		#size-cells = <0>;
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun		isp0_mipi_in: endpoint@0 {
254*4882a593Smuzhiyun			reg = <0>;
255*4882a593Smuzhiyun			remote-endpoint = <&dphy_rx0_out>;
256*4882a593Smuzhiyun		};
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun};
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun&rng {
261*4882a593Smuzhiyun	status = "okay";
262*4882a593Smuzhiyun};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun&rockchip_suspend {
265*4882a593Smuzhiyun	status = "okay";
266*4882a593Smuzhiyun	rockchip,sleep-debug-en = <1>;
267*4882a593Smuzhiyun};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun&route_dsi {
270*4882a593Smuzhiyun	status = "disabled";
271*4882a593Smuzhiyun};
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun&tsadc {
274*4882a593Smuzhiyun	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
275*4882a593Smuzhiyun	rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
276*4882a593Smuzhiyun	pinctrl-names = "gpio", "otpout";
277*4882a593Smuzhiyun	pinctrl-0 = <&tsadc_otp_gpio>;
278*4882a593Smuzhiyun	pinctrl-1 = <&tsadc_otp_out>;
279*4882a593Smuzhiyun	status = "okay";
280*4882a593Smuzhiyun};
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun&vad {
283*4882a593Smuzhiyun	status = "okay";
284*4882a593Smuzhiyun	rockchip,audio-src = <&i2s0>;
285*4882a593Smuzhiyun	rockchip,buffer-time-ms = <200>;
286*4882a593Smuzhiyun	rockchip,det-channel = <0>;
287*4882a593Smuzhiyun	rockchip,mode = <1>;
288*4882a593Smuzhiyun	#sound-dai-cells = <0>;
289*4882a593Smuzhiyun};
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun&vop_lite {
292*4882a593Smuzhiyun	status = "okay";
293*4882a593Smuzhiyun};
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun&vopl_mmu {
296*4882a593Smuzhiyun	status = "okay";
297*4882a593Smuzhiyun};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun&vpu_mmu {
300*4882a593Smuzhiyun	status = "okay";
301*4882a593Smuzhiyun};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun&vpu_service {
304*4882a593Smuzhiyun	status = "okay";
305*4882a593Smuzhiyun};
306