Re: [PATCH] arm64: dts: rockchip: Add DSI LCD display on rk3576-evb1
From: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Date: 2025-10-21 15:08:41
Also in:
linux-devicetree, linux-rockchip, lkml
On Monday, 20 October 2025 14:31:12 Central European Summer Time Heiko Stuebner wrote:
Am Montag, 20. Oktober 2025, 10:50:58 Mitteleuropäische Sommerzeit schrieb Alexey Charkov:quoted
On Mon, Oct 20, 2025 at 12:31 PM Heiko Stuebner [off-list ref] wrote:quoted
Am Montag, 20. Oktober 2025, 10:19:51 Mitteleuropäische Sommerzeit schrieb Alexey Charkov:quoted
On Thu, Sep 25, 2025 at 12:38 AM Alexey Charkov [off-list ref] wrote:quoted
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(+)Hi Heiko, Any thoughts about this one? Can we perhaps get it merged for -next?Does the gpio-backlight work on that device? That would make the gpioset hack unnecessary.I've got a local patch using pwm-gpio and pwm-backlight as a stop-gap solution, but I don't think it's worth merging upstream, because the backlight is supposed to be driven by the hardware PWM on the same pin (not bit-banging the GPIO line). After all, Nicolas has been working on adding a proper hardware PWM driver for RK3576. The display itself works without PWM support, and so does the touchscreen.Right now, I don't think we have an actual timeline if/when Nicolas will be able to work on the pwm again.
Soon(TM), I've locally reworked the PWM output stuff and core driver into an MFD. I just need to rework the counter driver now and set up a proper way to test that the counter works. I'm hoping to have something next week. If not, then the week after that.
So my idea was if we want to integrate the baclight as you described below, to have an actual usable display and then when the new pwm has landed switch over to that one?
But Heikooooo, DTs should describe hardware, not the lack of Linux drivers! ;) For what it's worth, the implementation move to MFD didn't change the bindings as we don't leak that into the DT at all. If it took any longer for me to get it done I'd have suggested picking the bindings and then adding a stub GPIO PWM driver that binds to it as an interim solution, but it's not worth the ickyness when I'm basically just a day's work away from having this done. Kind regards, Nicolas Frattaroli
Heikoquoted
My temp patch goes like this: --- arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+)diff --git a/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dtsb/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts index f20cd6f2c079..5c27fff03569 100644--- a/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts@@ -58,6 +58,14 @@ button-vol-up { }; }; + backlight: backlight { + compatible = "pwm-backlight"; + brightness-levels = <20 220>; + default-brightness-level = <100>; + num-interpolated-steps = <200>; + pwms = <&lcd_bl_pwm 0 25000 0>; + }; + hdmi-con { compatible = "hdmi-connector"; type = "a";@@ -78,6 +86,12 @@ work_led: led-0 { }; }; + lcd_bl_pwm: pwm { + #pwm-cells = <3>; + compatible = "pwm-gpio"; + gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; + }; + vbus5v0_typec: regulator-vbus5v0-typec { compatible = "regulator-fixed"; regulator-name = "vbus5v0_typec";@@ -277,6 +291,7 @@ panel@0 { compatible = "wanchanglong,w552793baa", "raydium,rm67200"; reg = <0>; + backlight = <&backlight>; iovcc-supply = <&vcc3v3_lcd_n>; reset-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>; vdd-supply = <&vcc3v3_lcd_n>;