// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
 *
 */

#include <dt-bindings/display/rockchip_vop.h>
#include "rk3568m-serdes-v1-evb-lp4x-v10.dtsi"
#include "rk3568-android.dtsi"

&backlight {
	pwms = <&pwm4 0 25000 0>;
	status = "okay";
};

&i2c1 {
	status = "okay";
	clock-frequency = <10000>;
};

&dsi1 {
	status = "disabled";
};

&dsi0_in_vp0 {
	status = "okay";
};

&dsi0_in_vp1 {
	status = "disabled";
};

/delete-node/ &dsi0_panel;

&pwm4 {
	pinctrl-names = "active";
	pinctrl-0 = <&pwm4_pins>;
	status = "okay";
};

&video_phy0 {
	status = "okay";
};

&dsi0 {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@1 {
			reg = <1>;
			dsi0_out_rkx110_x120: endpoint {
				remote-endpoint = <&rkx110_x120_in_dsi0>;
			};
		};
	};
};

&rkx110_x120 {
	remote1-addr = <0x54>;
};

&serdes_timing0 {
	clock-frequency = <132000000>;
	hactive = <2160>;
	vactive = <1920>;
	hfront-porch = <30>;
	hsync-len = <4>;
	hback-porch = <60>;
	vfront-porch = <15>;
	vsync-len = <2>;
	vback-porch = <15>;
	hsync-active = <0>;
	vsync-active = <0>;
	de-active = <0>;
	pixelclk-active = <1>;
};

&serdes_panel {
	dsi-rx,lanes = <4>;
	//dsi-rx,video-mode;
	local-port0 = <RK_SERDES_DSI_RX0>;
	remote0-port0 = <RK_SERDES_DSI_TX0>;
	remote1-port0 = <RK_SERDES_DSI_TX0>;
	split-mode;
	dsi-tx,format = "rgb888";
	dsi-tx,lanes  = <4>;
	dsi-tx,video-mode;

	backlight = <&backlight>;
	enable-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
	reset-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&panel_reset_ser0_gpio &panel_enable_ser0_gpio>;

	panel-init-sequence = [
		23 00 02 FE 21
		23 00 02 04 00
		23 00 02 00 64
		23 00 02 2A 00
		23 00 02 26 64
		23 00 02 54 00
		23 00 02 50 64
		23 00 02 7B 00
		23 00 02 77 64
		23 00 02 A2 00
		23 00 02 9D 64
		23 00 02 C9 00
		23 00 02 C5 64
		23 00 02 01 71
		23 00 02 27 71
		23 00 02 51 71
		23 00 02 78 71
		23 00 02 9E 71
		23 00 02 C6 71
		23 00 02 02 89
		23 00 02 28 89
		23 00 02 52 89
		23 00 02 79 89
		23 00 02 9F 89
		23 00 02 C7 89
		23 00 02 03 9E
		23 00 02 29 9E
		23 00 02 53 9E
		23 00 02 7A 9E
		23 00 02 A0 9E
		23 00 02 C8 9E
		23 00 02 09 00
		23 00 02 05 B0
		23 00 02 31 00
		23 00 02 2B B0
		23 00 02 5A 00
		23 00 02 55 B0
		23 00 02 80 00
		23 00 02 7C B0
		23 00 02 A7 00
		23 00 02 A3 B0
		23 00 02 CE 00
		23 00 02 CA B0
		23 00 02 06 C0
		23 00 02 2D C0
		23 00 02 56 C0
		23 00 02 7D C0
		23 00 02 A4 C0
		23 00 02 CB C0
		23 00 02 07 CF
		23 00 02 2F CF
		23 00 02 58 CF
		23 00 02 7E CF
		23 00 02 A5 CF
		23 00 02 CC CF
		23 00 02 08 DD
		23 00 02 30 DD
		23 00 02 59 DD
		23 00 02 7F DD
		23 00 02 A6 DD
		23 00 02 CD DD
		23 00 02 0E 15
		23 00 02 0A E9
		23 00 02 36 15
		23 00 02 32 E9
		23 00 02 5F 15
		23 00 02 5B E9
		23 00 02 85 15
		23 00 02 81 E9
		23 00 02 AD 15
		23 00 02 A9 E9
		23 00 02 D3 15
		23 00 02 CF E9
		23 00 02 0B 14
		23 00 02 33 14
		23 00 02 5C 14
		23 00 02 82 14
		23 00 02 AA 14
		23 00 02 D0 14
		23 00 02 0C 36
		23 00 02 34 36
		23 00 02 5D 36
		23 00 02 83 36
		23 00 02 AB 36
		23 00 02 D1 36
		23 00 02 0D 6B
		23 00 02 35 6B
		23 00 02 5E 6B
		23 00 02 84 6B
		23 00 02 AC 6B
		23 00 02 D2 6B
		23 00 02 13 5A
		23 00 02 0F 94
		23 00 02 3B 5A
		23 00 02 37 94
		23 00 02 64 5A
		23 00 02 60 94
		23 00 02 8A 5A
		23 00 02 86 94
		23 00 02 B2 5A
		23 00 02 AE 94
		23 00 02 D8 5A
		23 00 02 D4 94
		23 00 02 10 D1
		23 00 02 38 D1
		23 00 02 61 D1
		23 00 02 87 D1
		23 00 02 AF D1
		23 00 02 D5 D1
		23 00 02 11 04
		23 00 02 39 04
		23 00 02 62 04
		23 00 02 88 04
		23 00 02 B0 04
		23 00 02 D6 04
		23 00 02 12 05
		23 00 02 3A 05
		23 00 02 63 05
		23 00 02 89 05
		23 00 02 B1 05
		23 00 02 D7 05
		23 00 02 18 AA
		23 00 02 14 36
		23 00 02 42 AA
		23 00 02 3D 36
		23 00 02 69 AA
		23 00 02 65 36
		23 00 02 8F AA
		23 00 02 8B 36
		23 00 02 B7 AA
		23 00 02 B3 36
		23 00 02 DD AA
		23 00 02 D9 36
		23 00 02 15 74
		23 00 02 3F 74
		23 00 02 66 74
		23 00 02 8C 74
		23 00 02 B4 74
		23 00 02 DA 74
		23 00 02 16 9F
		23 00 02 40 9F
		23 00 02 67 9F
		23 00 02 8D 9F
		23 00 02 B5 9F
		23 00 02 DB 9F
		23 00 02 17 DC
		23 00 02 41 DC
		23 00 02 68 DC
		23 00 02 8E DC
		23 00 02 B6 DC
		23 00 02 DC DC
		23 00 02 1D FF
		23 00 02 19 03
		23 00 02 47 FF
		23 00 02 43 03
		23 00 02 6E FF
		23 00 02 6A 03
		23 00 02 94 FF
		23 00 02 90 03
		23 00 02 BC FF
		23 00 02 B8 03
		23 00 02 E2 FF
		23 00 02 DE 03
		23 00 02 1A 35
		23 00 02 44 35
		23 00 02 6B 35
		23 00 02 91 35
		23 00 02 B9 35
		23 00 02 DF 35
		23 00 02 1B 45
		23 00 02 45 45
		23 00 02 6C 45
		23 00 02 92 45
		23 00 02 BA 45
		23 00 02 E0 45
		23 00 02 1C 55
		23 00 02 46 55
		23 00 02 6D 55
		23 00 02 93 55
		23 00 02 BB 55
		23 00 02 E1 55
		23 00 02 22 FF
		23 00 02 1E 68
		23 00 02 4C FF
		23 00 02 48 68
		23 00 02 73 FF
		23 00 02 6F 68
		23 00 02 99 FF
		23 00 02 95 68
		23 00 02 C1 FF
		23 00 02 BD 68
		23 00 02 E7 FF
		23 00 02 E3 68
		23 00 02 1F 7E
		23 00 02 49 7E
		23 00 02 70 7E
		23 00 02 96 7E
		23 00 02 BE 7E
		23 00 02 E4 7E
		23 00 02 20 97
		23 00 02 4A 97
		23 00 02 71 97
		23 00 02 97 97
		23 00 02 BF 97
		23 00 02 E5 97
		23 00 02 21 B5
		23 00 02 4B B5
		23 00 02 72 B5
		23 00 02 98 B5
		23 00 02 C0 B5
		23 00 02 E6 B5
		23 00 02 25 F0
		23 00 02 23 E8
		23 00 02 4F F0
		23 00 02 4D E8
		23 00 02 76 F0
		23 00 02 74 E8
		23 00 02 9C F0
		23 00 02 9A E8
		23 00 02 C4 F0
		23 00 02 C2 E8
		23 00 02 EA F0
		23 00 02 E8 E8
		23 00 02 24 FF
		23 00 02 4E FF
		23 00 02 75 FF
		23 00 02 9B FF
		23 00 02 C3 FF
		23 00 02 E9 FF
		23 00 02 FE 3D
		23 00 02 00 04
		23 00 02 FE 23
		23 00 02 08 82
		23 00 02 0A 00
		23 00 02 0B 00
		23 00 02 0C 01
		23 00 02 16 00
		23 00 02 18 02
		23 00 02 1B 04
		23 00 02 19 04
		23 00 02 1C 81
		23 00 02 1F 00
		23 00 02 20 03
		23 00 02 23 04
		23 00 02 21 01
		23 00 02 54 63
		23 00 02 55 54
		23 00 02 6E 45
		23 00 02 6D 36
		23 00 02 FE 3D
		23 00 02 55 78
		23 00 02 FE 20
		23 00 02 26 30
		23 00 02 FE 3D
		23 00 02 20 71
		23 00 02 50 8F
		23 00 02 51 8F
		23 00 02 FE 00
		23 00 02 35 00
		05 78 01 11
		05 1E 01 29
	];

	panel-exit-sequence = [
		05 00 01 28
		05 00 01 10
	];

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			rkx110_x120_in_dsi0: endpoint {
				remote-endpoint = <&dsi0_out_rkx110_x120>;
			};
		};
	};
};

/* vp0 for HDMI, vp2 for rgb */
&vp0 {
	rockchip,plane-mask = <(1 << ROCKCHIP_VOP2_CLUSTER0 | 1 << ROCKCHIP_VOP2_ESMART0 |
				1 << ROCKCHIP_VOP2_SMART0)>;
	rockchip,primary-plane = <ROCKCHIP_VOP2_ESMART0>;
};

&vp2 {
	rockchip,plane-mask = <(1 << ROCKCHIP_VOP2_CLUSTER1 | 1 << ROCKCHIP_VOP2_ESMART1 |
				1 << ROCKCHIP_VOP2_SMART1)>;
	rockchip,primary-plane = <ROCKCHIP_VOP2_ESMART1>;
};

