[PATCH] arm64: dts: rockchip: Add DSI LCD display on rk3576-evb1
From: Alexey Charkov <alchark@gmail.com>
Date: 2025-09-24 20:38:30
Also in:
linux-devicetree, linux-rockchip, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
Add support for the Rockchip W552793DBA-V10 LCD+touchscreen assembly which comes physically attached to Rockchip RK3576 EVB1 boards. The display part is driven by the on-chip MIPI DSI controller, and the touchscreen is connected over I2C. Signed-off-by: Alexey Charkov <alchark@gmail.com> --- Note that backlight support is left out for now, as it depends on PWM support [0] which has not yet been merged. A workaround is simply `gpioset -c 0 13=1` to set the respective GPIO pin high and thus to light up the display unconditionally. [0] https://lore.kernel.org/lkml/20250602-rk3576-pwm-v2-0-a6434b0ce60c@collabora.com/ (local) --- arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts | 89 ++++++++++++++++++++++++ 1 file changed, 89 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts b/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts
index db8fef7a4f1b9570cb517ccc9a857d1c93c9d2db..f20cd6f2c079e0a5bd79acc9ebcd56b499e0f72f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts@@ -125,6 +125,8 @@ vcc3v3_lcd_n: regulator-vcc3v3-lcd0-n { regulator-boot-on; enable-active-high; gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc3v3_lcd_s0_en>; vin-supply = <&vcc_3v3_s0>; };
@@ -264,6 +266,43 @@ &combphy1_psu { status = "okay"; }; +&dsi { + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&mipim1_pins>; + pinctrl-names = "default"; + status = "okay"; + + panel@0 { + compatible = "wanchanglong,w552793baa", "raydium,rm67200"; + reg = <0>; + + iovcc-supply = <&vcc3v3_lcd_n>; + reset-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc3v3_lcd_n>; + vsn-supply = <&vcc5v0_device>; + vsp-supply = <&vcc5v0_device>; + + port { + mipi_panel_in: endpoint { + remote-endpoint = <&dsi_out_panel>; + }; + }; + }; +}; + +&dsi_in { + dsi_in_vp1: endpoint { + remote-endpoint = <&vp1_out_dsi>; + }; +}; + +&dsi_out { + dsi_out_panel: endpoint { + remote-endpoint = <&mipi_panel_in>; + }; +}; + &gmac0 { clock_in_out = "output"; phy-mode = "rgmii-rxid";
@@ -319,6 +358,28 @@ &hdptxphy { status = "okay"; }; +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0m1_xfer>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + touchscreen@14 { + compatible = "goodix,gt1158"; + reg = <0x14>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>; + irq-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&tp_int>, <&tp_rst>; + reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; + touchscreen-size-x = <720>; + touchscreen-size-y = <1280>; + VDDIO-supply = <&vcc3v3_lcd_n>; + }; +}; + &i2c1 { status = "okay";
@@ -738,6 +799,10 @@ rgmii_phy1: ethernet-phy@1 { }; }; +&mipidcphy { + status = "okay"; +}; + &pcie0 { pinctrl-names = "default"; pinctrl-0 = <&pcie0_rst>;
@@ -788,6 +853,20 @@ host_wake_bt: host-wake-bt { }; }; + display { + vcc3v3_lcd_s0_en: vcc3v3-lcd-s0-en { + rockchip,pins = <0 RK_PC6 0 &pcfg_pull_none>; + }; + + tp_int: tp-int { + rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>; + }; + + tp_rst: tp-rst { + rockchip,pins = <0 RK_PD0 0 &pcfg_pull_none>; + }; + }; + hym8563 { rtc_int: rtc-int { rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -941,3 +1020,13 @@ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { remote-endpoint = <&hdmi_in_vp0>; }; }; + +&vp1 { + #address-cells = <1>; + #size-cells = <0>; + + vp1_out_dsi: endpoint@ROCKCHIP_VOP2_EP_MIPI0 { + reg = <ROCKCHIP_VOP2_EP_MIPI0>; + remote-endpoint = <&dsi_in_vp1>; + }; +};
--- base-commit: ce7f1a983b074f6cf8609068088ca3182c569ee4 change-id: 20250924-rk3576-evb1-dsi-e39f34833bf6 Best regards, -- Alexey Charkov [off-list ref]