Browse Source

dts:riscv:jh7110: add display driver nodes

update dts node to support vout driver

Signed-off-by: keith.zhao<keith.zhao@statfivetech.com>
keith.zhao 1 year ago
parent
commit
ae8f47850c
3 changed files with 457 additions and 97 deletions
  1. 119 92
      arch/riscv/dts/jh7110.dtsi
  2. 175 1
      arch/riscv/dts/starfive_evb.dts
  3. 163 4
      arch/riscv/dts/starfive_visionfive2.dts

+ 119 - 92
arch/riscv/dts/jh7110.dtsi

@@ -659,6 +659,19 @@
 			status = "disabled";
 		};
 
+		i2c2: i2c@10050000 {
+			compatible = "snps,designware-i2c";
+			reg = <0x0 0x10050000 0x0 0x10000>;
+			clocks = <&clkgen JH7110_I2C2_CLK_CORE>,
+				 <&clkgen JH7110_I2C2_CLK_APB>;
+			clock-names = "ref", "pclk";
+			resets = <&rstgen RSTN_U2_DW_I2C_APB>;
+			interrupts = <37>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "disabled";
+		};
+
 		i2c5: i2c5@12050000 {
 			compatible = "snps,designware-i2c";
 			reg = <0x0 0x12050000 0x0 0x10000>;
@@ -1278,126 +1291,140 @@
 			reg = <0 0x295B0000 0 0x90>;
 		};
 
-		hdmi_output: hdmi-output {
-			compatible = "verisilicon,hdmi-encoder";
-			verisilicon,dss-syscon = <&dssctrl>;
-			verisilicon,mux-mask = <0x70 0x380>;
-			verisilicon,mux-val = <0x40 0x280>;
-			status = "disabled";
-		};
-
 		dc8200: dc8200@29400000 {
-			compatible = "verisilicon,dc8200";
+			compatible = "starfive,sf-dc8200";
 			reg = <0x0 0x29400000 0x0 0x100>,
-			      <0x0 0x29400800 0x0 0x2000>,
-			      <0x0 0x17030000 0x0 0x1000>;
-			interrupts = <95>;
-			status = "disabled";
-			clocks = <&clkgen JH7110_NOC_BUS_CLK_CPU_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_AXICFG0_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_GPU_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_VDEC_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_VENC_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_DISP_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_ISP_AXI>,
-				 <&clkgen JH7110_NOC_BUS_CLK_STG_AXI>,
-				 <&clkgen JH7110_VOUT_SRC>,
-				 <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AXI>,
-				 <&clkgen JH7110_AHB1>,
-				 <&clkgen JH7110_VOUT_TOP_CLK_VOUT_AHB>,
-				 <&clkgen JH7110_VOUT_TOP_CLK_HDMITX0_MCLK>,
-				 <&clkgen JH7110_I2STX_4CH0_BCLK_MST>,
-				 <&clkvout JH7110_U0_DC8200_CLK_PIX0>,
-				 <&clkvout JH7110_U0_DC8200_CLK_PIX1>,
-				 <&clkvout JH7110_U0_DC8200_CLK_AXI>,
-				 <&clkvout JH7110_U0_DC8200_CLK_CORE>,
-				 <&clkvout JH7110_U0_DC8200_CLK_AHB>;
-			clock-names = "noc_cpu","noc_cfg0","noc_gpu","noc_vdec","noc_venc",
-					"noc_disp","noc_isp","noc_stg","vout_src",
-					"top_vout_axi","ahb1","top_vout_ahb",
-					"top_vout_hdmiTX0","i2stx","pix_clk","vout_pix1",
-					"axi_clk","core_clk","vout_ahb";
+			      <0x0 0x29400800 0x0 0x2000>;
+			reg-names = "hi", "low";
+			status = "okay";
 
+			clocks = <&clkgen JH7110_NOC_BUS_CLK_DISP_AXI>,
+			<&clkgen JH7110_VOUT_SRC>,
+			<&clkgen JH7110_VOUT_TOP_CLK_VOUT_AXI>,
+			<&clkgen JH7110_VOUT_TOP_CLK_VOUT_AHB>,
+			<&clkvout JH7110_U0_DC8200_CLK_PIX0>,
+			<&clkvout JH7110_U0_DC8200_CLK_PIX1>,
+			<&clkvout JH7110_U0_DC8200_CLK_AXI>,
+			<&clkvout JH7110_U0_DC8200_CLK_CORE>,
+			<&clkvout JH7110_U0_DC8200_CLK_AHB>,
+			<&clkvout JH7110_DOM_VOUT_TOP_LCD_CLK>,
+			<&hdmitx0_pixelclk>,
+			<&clkvout JH7110_DC8200_PIX0>,
+			<&clkvout JH7110_U0_DC8200_CLK_PIX0_OUT>,
+			<&clkvout JH7110_U0_DC8200_CLK_PIX1_OUT>;
+			clock-names = "disp_axi","vout_src",
+			   "top_vout_axi","top_vout_ahb",
+			   "dc_pix0","dc_pix1",
+			   "dc_axi","dc_core","dc_ahb",
+			   "top_vout_lcd","hdmitx0_pixelclk","dc8200_pix0",
+			   "dc8200_pix0_out","dc8200_pix1_out";
 			resets = <&rstgen RSTN_U0_DOM_VOUT_TOP_SRC>,
 				 <&rstgen RSTN_U0_DC8200_AXI>,
 				 <&rstgen RSTN_U0_DC8200_AHB>,
 				 <&rstgen RSTN_U0_DC8200_CORE>,
-				 <&rstgen RSTN_U0_NOC_BUS_CPU_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_AXICFG0_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_APB_BUS_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_GPU_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_VDEC_AXI_N>,
-				 <&rstgen RSTN_U0_JTAG2APB_PRESETN>,
-				 <&rstgen RSTN_U0_NOC_BUS_DISP_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_ISP_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_STG_AXI_N>,
-				 <&rstgen RSTN_U0_NOC_BUS_DDRC_N>;
+				 <&rstgen RSTN_U0_NOC_BUS_DISP_AXI_N>;
 			reset-names = "rst_vout_src","rst_axi","rst_ahb","rst_core",
-					"rst_noc_cpu","rst_noc_axicfg0","rst_noc_apb",
-					"rst_noc_gpu","rst_noc_vdec","rst_jtag2apb",
-					"rst_noc_disp","rst_noc_isp","rst_noc_stg","rst_noc_ddrc";
+					"rst_noc_disp";
+
+			vopb_out: port {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				vopb_out_mipi: endpoint@0 {
+					reg = <0>;
+					remote-endpoint = <&mipi_in_vopb>;
+				};
+
+				vopb_out_hdmi: endpoint@1 {
+					reg = <1>;
+					remote-endpoint = <&hdmi_in_vopb>;
+				};
+
+			};
 		};
 
-		mipi_dphy: mipi-dphy@295e0000{
-			compatible = "starfive,jh7100-mipi-dphy-tx";
-			reg = <0x0 0x295e0000 0x0 0x10000>;
-			clocks = <&clkvout JH7110_U0_MIPITX_DPHY_CLK_TXESC>;
-			clock-names = "dphy_txesc";
-			resets = <&rstgen RSTN_U0_MIPITX_DPHY_SYS>,
-				 <&rstgen RSTN_U0_MIPITX_DPHY_TXBYTEHS>;
-			reset-names = "dphy_sys", "dphy_txbytehs";
-			#phy-cells = <0>;
-			status = "disabled";
+		hdmi: hdmi@29590000 {
+			compatible = "starfive,inno-hdmi";
+			reg = <0x0 0x29590000 0x0 0x4000>;
+			status = "okay";
+			clocks = <&clkvout JH7110_U0_HDMI_TX_CLK_SYS>,
+				 <&clkvout JH7110_U0_HDMI_TX_CLK_MCLK>,
+				 <&clkvout JH7110_U0_HDMI_TX_CLK_BCLK>;
+			clock-names = "sysclk", "mclk","bclk";
+			resets = <&rstgen RSTN_U0_HDMI_TX_HDMI>;
+			reset-names = "hdmi_tx";
+
+			ports {
+				hdmi_in: port {
+					#address-cells = <1>;
+					#size-cells = <0>;
+					hdmi_in_vopb: endpoint@0 {
+						reg = <0>;
+						remote-endpoint = <&vopb_out_hdmi>;
+					};
+				};
+			};
 		};
 
-		 mipi_dsi: mipi@295d0000 {
-			compatible = "cdns,dsi";
-			reg = <0x0 0x295d0000 0x0 0x10000>;
-			reg-names = "dsi";
+		mipi_dsi0: mipi@295d0000 {
+			compatible = "starfive,sf_mipi_dsi";
+			reg = <0x0 0x295d0000 0x0 0x10000>,
+				<0x0 0x295e0000 0x0 0x10000>,
+				<0x0 0x17010000 0x0 0x1000>;
+			reg-names = "dsi", "phy", "syscon";
 			clocks = <&clkvout JH7110_U0_CDNS_DSITX_CLK_SYS>,
 				 <&clkvout JH7110_U0_CDNS_DSITX_CLK_APB>,
 				 <&clkvout JH7110_U0_CDNS_DSITX_CLK_TXESC>,
-				 <&clkvout JH7110_U0_CDNS_DSITX_CLK_DPI>;
-			clock-names = "sys", "apb", "txesc", "dpi";
+				 <&clkvout JH7110_U0_CDNS_DSITX_CLK_DPI>,
+				 <&clkvout JH7110_U0_MIPITX_DPHY_CLK_TXESC>;
+			clock-names = "sys", "apb", "txesc", "dpi","dphy_txesc";
 			resets = <&rstgen RSTN_U0_CDNS_DSITX_DPI>,
 				 <&rstgen RSTN_U0_CDNS_DSITX_APB>,
 				 <&rstgen RSTN_U0_CDNS_DSITX_RXESC>,
 				 <&rstgen RSTN_U0_CDNS_DSITX_SYS>,
 				 <&rstgen RSTN_U0_CDNS_DSITX_TXBYTEHS>,
-				 <&rstgen RSTN_U0_CDNS_DSITX_TXESC>;
+				 <&rstgen RSTN_U0_CDNS_DSITX_TXESC>,
+				 <&rstgen RSTN_U0_MIPITX_DPHY_SYS>,
+				 <&rstgen RSTN_U0_MIPITX_DPHY_TXBYTEHS>;
 			reset-names = "dsi_dpi", "dsi_apb", "dsi_rxesc",
-					"dsi_sys", "dsi_txbytehs", "dsi_txesc";
-			phys = <&mipi_dphy>;
-			phy-names = "dphy";
-			status = "disabled";
+					"dsi_sys", "dsi_txbytehs", "dsi_txesc",
+					"dphy_sys", "dphy_txbytehs";
 
-			port {
-				dsi_out_port: endpoint {
-					/*remote-endpoint = <&panel_dsi_port>;*/
+			status = "disabled";
+			ports {
+				mipi_in: port {
+					#address-cells = <1>;
+					#size-cells = <0>;
+					mipi_in_vopb: endpoint@0 {
+						reg = <0>;
+						remote-endpoint = <&vopb_out_mipi>;
+					};
 				};
 			};
+		};
 
-			mipi_panel: panel@0 {
-				/*compatible = "";*/
-				status = "disabled";
-			};
+		dsi_host: dsi-host {
+			compatible = "starfive,mipi-dsi";
+			status = "okay";
 		};
 
-		hdmi: hdmi@29590000 {
-			compatible = "rockchip,rk3036-inno-hdmi";
-			reg = <0x0 0x29590000 0x0 0x4000>;
-			/*interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;*/
-			/*clocks = <&cru  PCLK_HDMI>;*/
-			/*clock-names = "pclk";*/
-			/*pinctrl-names = "default";*/
-			/*pinctrl-0 = <&hdmi_ctl>;*/
+		hdmi_output: hdmi-output {
+			compatible = "verisilicon,hdmi-encoder";
+			verisilicon,dss-syscon = <&dssctrl>;
+			verisilicon,mux-mask = <0x70 0x380>;
+			verisilicon,mux-val = <0x40 0x280>;
+			status = "disabled";
+		};
+
+		mipi_dphy: mipi-dphy@295e0000{
+			compatible = "starfive,jh7100-mipi-dphy-tx";
+			reg = <0x0 0x295e0000 0x0 0x10000>;
+			clocks = <&clkvout JH7110_U0_MIPITX_DPHY_CLK_TXESC>;
+			clock-names = "dphy_txesc";
+			resets = <&rstgen RSTN_U0_MIPITX_DPHY_SYS>,
+				 <&rstgen RSTN_U0_MIPITX_DPHY_TXBYTEHS>;
+			reset-names = "dphy_sys", "dphy_txbytehs";
+			#phy-cells = <0>;
 			status = "disabled";
-			clocks = <&clkvout JH7110_U0_HDMI_TX_CLK_SYS>,
-				 <&clkvout JH7110_U0_HDMI_TX_CLK_MCLK>,
-				 <&clkvout JH7110_U0_HDMI_TX_CLK_BCLK>;
-			clock-names = "sysclk", "mclk", "bclk";
-			resets = <&rstgen RSTN_U0_HDMI_TX_HDMI>;
-			reset-names = "hdmi_tx";
 		};
 
 		sound: snd-card {

+ 175 - 1
arch/riscv/dts/starfive_evb.dts

@@ -106,6 +106,63 @@
 			slew-rate = <0>;
 		};
 	};
+
+	i2c2_pins: i2c2-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(11, GPOUT_LOW,
+				  GPOEN_SYS_I2C2_CLK,
+				  GPI_SYS_I2C2_CLK)>,
+				 <GPIOMUX(9, GPOUT_LOW,
+				  GPOEN_SYS_I2C2_DATA,
+				  GPI_SYS_I2C2_DATA)>;
+			bias-disable; /* external pull-up */
+			input-enable;
+			input-schmitt-enable;
+		};
+	};
+
+	i2c5_pins: i2c5-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(19, GPOUT_LOW,
+				  GPOEN_SYS_I2C5_CLK,
+				  GPI_SYS_I2C5_CLK)>,
+				 <GPIOMUX(20, GPOUT_LOW,
+				  GPOEN_SYS_I2C5_DATA,
+				  GPI_SYS_I2C5_DATA)>;
+			bias-disable; /* external pull-up */
+			input-enable;
+			input-schmitt-enable;
+		};
+	};
+
+	hdmi_pins: hdmi-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(7, GPOUT_SYS_HDMI_DDC_SCL,
+				  GPOEN_SYS_HDMI_DDC_SCL,
+				  GPI_SYS_HDMI_DDC_SCL)>,
+				 <GPIOMUX(8, GPOUT_SYS_HDMI_DDC_SDA,
+				  GPOEN_SYS_HDMI_DDC_SDA,
+				  GPI_SYS_HDMI_DDC_SDA)>;
+			bias-pull-up;
+			input-enable;
+		};
+
+		cec-pins {
+			pinmux = <GPIOMUX(14, GPOUT_SYS_HDMI_CEC_SDA,
+				  GPOEN_SYS_HDMI_CEC_SDA,
+				  GPI_SYS_HDMI_CEC_SDA)>;
+			bias-pull-up;
+			input-enable;
+		};
+
+		hpd-pins {
+			pinmux = <GPIOMUX(15, GPOUT_LOW,
+				  GPOEN_DISABLE,
+				  GPI_SYS_HDMI_HPD)>;
+			input-enable;
+		};
+	};
+
 	pcie0_perst_default: pcie0_perst_default {
 		perst-pins {
 			pinmux = <GPIOMUX(26, GPOUT_HIGH, GPOEN_ENABLE, GPI_NONE)>;
@@ -274,16 +331,133 @@
 };
 
 &clkvout {
-	status = "disabled";
+	status = "okay";
 };
 
 &pdm {
 	status = "disabled";
 };
 
+&mipi_dsi0 {
+	status = "okay";
+	rockchip,panel = <&rm68200_panel>;
+	data-lanes-num = <1>;
+	display-timings {
+		timing0 {
+		bits-per-pixel = <24>;
+		clock-frequency = <160000000>;
+		hfront-porch = <120>;
+		hsync-len = <20>;
+		hback-porch = <21>;
+		hactive = <1200>;
+		vfront-porch = <21>;
+		vsync-len = <3>;
+		vback-porch = <18>;
+		vactive = <1920>;
+		hsync-active = <0>;
+		vsync-active = <0>;
+		de-active = <1>;
+		pixelclk-active = <0>;
+		};
+	};
+
+};
+
+&hdmi{
+	pinctrl-names = "default";
+	pinctrl-0 = <&hdmi_pins>;
+	status = "okay";
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	i2c-sda-hold-time-ns = <300>;
+	i2c-sda-falling-time-ns = <3000>;
+	i2c-scl-falling-time-ns = <3000>;
+	auto_calc_scl_lhcnt;
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
+	status = "okay";
+
+	rm68200_panel: rm68200_panel@45 {
+		compatible = "raydium,rm68200";
+		reg = <0x45>;
+
+	};
+
+
+};
+
+
 &i2c5 {
+	clock-frequency = <100000>;
+	i2c-sda-hold-time-ns = <300>;
+	i2c-sda-falling-time-ns = <3000>;
+	i2c-scl-falling-time-ns = <3000>;
+	auto_calc_scl_lhcnt;
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c5_pins>;
+	status = "okay";
+
 	pmic_axp15060: axp15060_reg@36 {
                compatible = "stf,axp15060-regulator";
                reg = <0x36>;
 	};
+
+	pmic: jh7110_evb_reg@50 {
+		compatible = "starfive,jh7110-evb-regulator";
+		reg = <0x50>;
+
+		regulators {
+			hdmi_1p8: ldo1 {
+				regulator-name = "lp8733-ldo1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipitx_1p8: ldo2 {
+				regulator-name = "lp8733-ldo2";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipirx_1p8: ldo3 {
+				regulator-name = "lp8733-ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			hdmi_0p9: ldo4 {
+				regulator-name = "lp8733-ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipitx_0p9: ldo5 {
+				regulator-name = "lp8733-ldo5";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipirx_0p9: ldo6 {
+				regulator-name = "lp8733-ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			sdio_vdd: ldo7 {
+				regulator-name = "lp8733-ldo7";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
+	};
 };

+ 163 - 4
arch/riscv/dts/starfive_visionfive2.dts

@@ -244,6 +244,62 @@
 			slew-rate = <0>;
 		};
 	};
+
+	i2c2_pins: i2c2-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(11, GPOUT_LOW,
+				  GPOEN_SYS_I2C2_CLK,
+				  GPI_SYS_I2C2_CLK)>,
+				 <GPIOMUX(9, GPOUT_LOW,
+				  GPOEN_SYS_I2C2_DATA,
+				  GPI_SYS_I2C2_DATA)>;
+			bias-disable; /* external pull-up */
+			input-enable;
+			input-schmitt-enable;
+		};
+	};
+
+	i2c5_pins: i2c5-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(19, GPOUT_LOW,
+				  GPOEN_SYS_I2C5_CLK,
+				  GPI_SYS_I2C5_CLK)>,
+				 <GPIOMUX(20, GPOUT_LOW,
+				  GPOEN_SYS_I2C5_DATA,
+				  GPI_SYS_I2C5_DATA)>;
+			bias-disable; /* external pull-up */
+			input-enable;
+			input-schmitt-enable;
+		};
+	};
+
+	hdmi_pins: hdmi-0 {
+		i2c-pins {
+			pinmux = <GPIOMUX(7, GPOUT_SYS_HDMI_DDC_SCL,
+				  GPOEN_SYS_HDMI_DDC_SCL,
+				  GPI_SYS_HDMI_DDC_SCL)>,
+				 <GPIOMUX(8, GPOUT_SYS_HDMI_DDC_SDA,
+				  GPOEN_SYS_HDMI_DDC_SDA,
+				  GPI_SYS_HDMI_DDC_SDA)>;
+			bias-pull-up;
+			input-enable;
+		};
+
+		cec-pins {
+			pinmux = <GPIOMUX(14, GPOUT_SYS_HDMI_CEC_SDA,
+				  GPOEN_SYS_HDMI_CEC_SDA,
+				  GPI_SYS_HDMI_CEC_SDA)>;
+			bias-pull-up;
+			input-enable;
+		};
+
+		hpd-pins {
+			pinmux = <GPIOMUX(15, GPOUT_LOW,
+				  GPOEN_DISABLE,
+				  GPI_SYS_HDMI_HPD)>;
+			input-enable;
+		};
+	};
 };
 
 &sdio0 {
@@ -312,9 +368,61 @@
 		pagesize = <16>;
 	};
 
-	pmic: axp15060_reg@36 {
-               compatible = "stf,axp15060-regulator";
-               reg = <0x36>;
+	pmic: jh7110_evb_reg@50 {
+		compatible = "starfive,jh7110-evb-regulator";
+		reg = <0x50>;
+
+		regulators {
+			hdmi_1p8: ldo1 {
+				regulator-name = "lp8733-ldo1";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipitx_1p8: ldo2 {
+				regulator-name = "lp8733-ldo2";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipirx_1p8: ldo3 {
+				regulator-name = "lp8733-ldo3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			hdmi_0p9: ldo4 {
+				regulator-name = "lp8733-ldo4";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipitx_0p9: ldo5 {
+				regulator-name = "lp8733-ldo5";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			mipirx_0p9: ldo6 {
+				regulator-name = "lp8733-ldo6";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <900000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+			sdio_vdd: ldo7 {
+				regulator-name = "lp8733-ldo7";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-boot-on;
+				regulator-always-on;
+			};
+		};
 	};
 };
 
@@ -357,9 +465,60 @@
 };
 
 &clkvout {
-	status = "disabled";
+	status = "okay";
 };
 
 &pdm {
 	status = "disabled";
 };
+
+&mipi_dsi0 {
+	status = "okay";
+	rockchip,panel = <&rm68200_panel>;
+	data-lanes-num = <1>;
+	display-timings {
+		timing0 {
+		bits-per-pixel = <24>;
+		clock-frequency = <160000000>;
+		hfront-porch = <120>;
+		hsync-len = <20>;
+		hback-porch = <21>;
+		hactive = <1200>;
+		vfront-porch = <21>;
+		vsync-len = <3>;
+		vback-porch = <18>;
+		vactive = <1920>;
+		hsync-active = <0>;
+		vsync-active = <0>;
+		de-active = <1>;
+		pixelclk-active = <0>;
+		};
+	};
+
+};
+
+&hdmi{
+	pinctrl-names = "default";
+	pinctrl-0 = <&hdmi_pins>;
+	status = "okay";
+};
+
+&i2c2 {
+	clock-frequency = <100000>;
+	i2c-sda-hold-time-ns = <300>;
+	i2c-sda-falling-time-ns = <3000>;
+	i2c-scl-falling-time-ns = <3000>;
+	auto_calc_scl_lhcnt;
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
+	status = "okay";
+
+	rm68200_panel: rm68200_panel@45 {
+		compatible = "raydium,rm68200";
+		reg = <0x45>;
+
+	};
+
+
+};
+