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