* [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC
@ 2026-10-01 9:40 Biju
2026-10-01 9:40 ` [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Biju @ 2026-10-01 9:40 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, David Airlie,
Simona Vetter, Philipp Zabel, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bartosz Golaszewski, Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Luca Ceresoli, Tommaso Merciai, dri-devel, devicetree,
linux-kernel, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Hi All,
This patch series aims to add DSI, LVDS and LCD support for the RZ/G3L
SMARC EVK. The RZ/G3L LCDC is similar to the one found on RZ/G2L, but has
LVDS support.
The LVDS series [1] is merged here to get an overall picture.
[1] https://lore.kernel.org/all/20260625172359.292631-1-biju.das.jz@bp.renesas.com/
v4->v5:
* Collected tag.
* Restored mode_clock_min to 5440 kHz.
* Replaced static resets array in probe with global resets array.
* Updated rzg3l_lvds_atomic_disable() to fix the
PM_RUNTIME_ACQUIRE_IF_ENABLED guard that prevents synchronous suspend.
* Updated rzg3l_lvds_atomic_enable() to fix refcount underflow in
atomic_disable due to early return in atomic_enable.
* Dropped dotclk from struct rzg3l_lvds.
v3->v4:
* Collected tag.
* Dropped pwrrdy variable from struct rzg2l_mipi_dsi_hw_info and instead
using feature flag RZ_MIPI_DSI_FEATURE_PWRRDY
* Dropped rzg2l_mipi_dsi_pwrrdy_off() as it is taken care by
devm_pwrseq_get().
* Updated mode_clock_min from 5440->5400 kHz.
* Added resets in pair for simplification.
* Added comment in probe() for asserting resets.
* Updated commit description for patch#8 and #9.
* Updated license header for patch#8 and #9.
* Added HDMI audio support.
* Dropped reg_1v8 and reg_3v3 nodes as they are redundant.
* Renamed it6263 node name from it6263 to hdmi.
v2->v3:
* Dropped binding patches as it is accepted.
v1->v2:
* Dropped renesas,sysc-pwrrdy property as it is modelled as power
sequence.
* Switched to power sequence for handling pwrrdy signal.
* Dropped header file regmap.h and mfd/syscon.h
* Added header file pwrseq/consumer.h
* Replaced syscon_field->pwrrdy in struct rzg3l_mipi_dsi_info.
* Restored ports in DU bindings.
* Replaced endpoint with port in ports node.
* Dropped the macro RZG2L_DU_FEATURE_SMUX2_DSI_CLK and RZG2L_DU_MAX_LVDS.
* Dropped the variable rcdu from struct rzg2l_du_encoder.
* Dropped the variable lvds from struct rzg2l_du_device.
* Dropped renesas,sysc-pwrrdy from dsi node.
Biju Das (9):
drm: renesas: rzg2l_mipi_dsi: Add dphyctrl0_init_val to hw_info
drm: renesas: rzg2l_mipi_dsi: Add activation_dly to hw_info
drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info
struct
drm: renesas: rzg2l_mipi_dsi: Add support for DSI PWRRDY
drm: renesas: rzg2l_mipi_dsi: Add RZ/G3L MIPI DSI support
drm: renesas: rz-du: Add RZ/G3L (R9A08G046) DU support
drm: renesas: rz-du: Add support for RZ/G3L LVDS encoder
arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535
arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with
ITE6263
arch/arm64/boot/dts/renesas/Makefile | 6 +
.../r9a08g046l48-smarc-dsi-adv7535.dtso | 138 +++++++++
.../r9a08g046l48-smarc-lvds-ite6263.dtso | 86 ++++++
drivers/gpu/drm/renesas/rz-du/Kconfig | 13 +
drivers/gpu/drm/renesas/rz-du/Makefile | 1 +
drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 24 +-
drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h | 3 +-
.../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c | 24 ++
.../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 162 ++++++++++-
drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c | 275 ++++++++++++++++++
.../gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h | 25 ++
11 files changed, 749 insertions(+), 8 deletions(-)
create mode 100644 arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
create mode 100644 arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c
create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535
2026-10-01 9:40 [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
@ 2026-10-01 9:40 ` Biju
2026-10-01 10:46 ` sashiko-bot
2026-10-01 9:40 ` [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju
2026-10-01 10:56 ` [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju Das
2 siblings, 1 reply; 6+ messages in thread
From: Biju @ 2026-10-01 9:40 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Add a Device Tree overlay (r9a08g046l48-smarc-dsi-adv7535.dtso) for the
RZ/G3L (R9A08G046) SMARC EVK board to support DSI-to-HDMI output via the
Analog Devices ADV7535 HDMI transmitter.
The overlay enables the DSI controller with a 4-lane data path, the
display unit (DU/LCDC), HDMI audio and configures the ADV7535 on I2C2.
Update the Makefile to build the overlay as both a standalone .dtbo and
a composite .dtb (base DTB + overlay).
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* No change.
v3->v4:
* Updated commit description.
* Updated license header.
* Added HDMI audio support.
v2->v3:
* No change.
v1->v2:
* No change.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
.../r9a08g046l48-smarc-dsi-adv7535.dtso | 138 ++++++++++++++++++
2 files changed, 141 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index c6f3718cd19f..b9dad3f44ac0 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -264,6 +264,9 @@ r9a08g045s33-smarc-pmod1-type-3a-dtbs := r9a08g045s33-smarc.dtb r9a08g045s33-sma
dtb-$(CONFIG_ARCH_R9A08G045) += r9a08g045s33-smarc-pmod1-type-3a.dtb
dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc.dtb
+dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtbo
+r9a08g046l48-smarc-dsi-adv7535-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-dsi-adv7535.dtbo
+dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtb
dtb-$(CONFIG_ARCH_R9A09G011) += r9a09g011-v2mevk2.dtb
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
new file mode 100644
index 000000000000..1e1ebafe2439
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree overlay for the RZ/G3L SMARC EVK with ADV7535
+ * connected to DSI and LCDC enabled.
+ *
+ * Copyright (C) 2026 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/renesas,r9a08g046-cpg.h>
+#include <dt-bindings/pinctrl/renesas,r9a08g046-pinctrl.h>
+
+&{/} {
+ osc1: cec-clock {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <12000000>;
+ };
+
+ dsi-to-hdmi-out {
+ compatible = "hdmi-connector";
+ type = "d";
+
+ port {
+ dsi_to_hdmi_con_out: endpoint {
+ remote-endpoint = <&adv7535_out>;
+ };
+ };
+ };
+
+ sound-card {
+ compatible = "audio-graph-card";
+ label = "HDMI-Audio";
+ dais = <&i2s2_port>;
+ };
+};
+
+&dsi {
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+ dsi_out: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&adv7535_in>;
+ };
+ };
+ };
+};
+
+&du {
+ status = "okay";
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ adv7535: hdmi@3d {
+ compatible = "adi,adv7535";
+ reg = <0x3d>;
+
+ interrupts-extended = <&pinctrl RZG3L_GPIO(K, 3) IRQ_TYPE_EDGE_FALLING>;
+ clocks = <&osc1>;
+ clock-names = "cec";
+ avdd-supply = <®_1p8v>;
+ dvdd-supply = <®_1p8v>;
+ pvdd-supply = <®_1p8v>;
+ a2vdd-supply = <®_1p8v>;
+ v3p3-supply = <®_3p3v>;
+ v1p2-supply = <®_1p8v>;
+
+ adi,dsi-lanes = <4>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ adv7535_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ adv7535_out: endpoint {
+ remote-endpoint = <&dsi_to_hdmi_con_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ codec_endpoint: endpoint {
+ remote-endpoint = <&i2s2_cpu_endpoint>;
+ };
+ };
+ };
+ };
+};
+
+&pinctrl {
+ ssi2_pins: ssi2 {
+ pinmux = <RZG3L_PORT_PINMUX(7, 0, 9)>, /* SSIF2_RXD */
+ <RZG3L_PORT_PINMUX(7, 1, 9)>, /* SSIF2_BCK */
+ <RZG3L_PORT_PINMUX(7, 2, 9)>, /* SSIF2_RCK */
+ <RZG3L_PORT_PINMUX(7, 3, 9)>; /* SSIF2_TXD */
+ };
+};
+
+&ssi2 {
+ clocks = <&cpg CPG_MOD R9A08G046_SSI2_PCLK2>,
+ <&cpg CPG_MOD R9A08G046_SSI2_PCLK_SFR>,
+ <&versa3 2>, <&versa3 3>;
+ pinctrl-0 = <&ssi2_pins>;
+ pinctrl-names = "default";
+
+ status = "okay";
+
+ i2s2_port: port {
+ i2s2_cpu_endpoint: endpoint {
+ remote-endpoint = <&codec_endpoint>;
+ dai-format = "i2s";
+
+ bitclock-master = <&i2s2_cpu_endpoint>;
+ frame-master = <&i2s2_cpu_endpoint>;
+ };
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263
2026-10-01 9:40 [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
2026-10-01 9:40 ` [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
@ 2026-10-01 9:40 ` Biju
2026-10-01 10:58 ` sashiko-bot
2026-10-01 10:56 ` [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju Das
2 siblings, 1 reply; 6+ messages in thread
From: Biju @ 2026-10-01 9:40 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Add a Device Tree overlay (r9a08g046l48-smarc-lvds-ite6263.dtso) for the
RZ/G3L (R9A08G046) SMARC EVK board to support LVDS-to-HDMI output via the
ITE 6263 HDMI transmitter.
The overlay enables the LVDS controller and the display unit (DU/LCDC),
and configures the ITE6263 on I2C2.
Update the Makefile to build the overlay as both a standalone .dtbo and
a composite .dtb (base DTB + overlay).
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v4->v5:
* No change.
v3->v4:
* Updated license header.
* Dropped reg_1v8 and reg_3v3 nodes as they are redundant.
* Renamed it6263 node name from it6263 to hdmi.
v2->v3:
* No change.
v1->v2:
* No change.
---
arch/arm64/boot/dts/renesas/Makefile | 3 +
.../r9a08g046l48-smarc-lvds-ite6263.dtso | 86 +++++++++++++++++++
2 files changed, 89 insertions(+)
create mode 100644 arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index b9dad3f44ac0..05df4c642e4e 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -267,6 +267,9 @@ dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc.dtb
dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtbo
r9a08g046l48-smarc-dsi-adv7535-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-dsi-adv7535.dtbo
dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtb
+dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-lvds-ite6263.dtbo
+r9a08g046l48-smarc-lvds-ite6263-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-lvds-ite6263.dtbo
+dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-lvds-ite6263.dtb
dtb-$(CONFIG_ARCH_R9A09G011) += r9a09g011-v2mevk2.dtb
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
new file mode 100644
index 000000000000..3c64db8d22e9
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree overlay for the RZ/G3L SMARC EVK with ITE6263
+ * connected to LVDS and LCDC enabled.
+ *
+ * Copyright (C) 2026 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pinctrl/renesas,r9a08g046-pinctrl.h>
+
+&{/} {
+ lvds-to-hdmi-out {
+ compatible = "hdmi-connector";
+ type = "d";
+
+ port {
+ lvds_to_hdmi_con_out: endpoint {
+ remote-endpoint = <&it6263_out>;
+ };
+ };
+ };
+};
+
+&du {
+ status = "okay";
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ it6263: hdmi@4c {
+ compatible = "ite,it6263";
+ reg = <0x4c>;
+ data-mapping = "vesa-24";
+ ivdd-supply = <®_1p8v>;
+ ovdd-supply = <®_3p3v>;
+ txavcc18-supply = <®_1p8v>;
+ txavcc33-supply = <®_3p3v>;
+ pvcc1-supply = <®_1p8v>;
+ pvcc2-supply = <®_1p8v>;
+ avcc-supply = <®_3p3v>;
+ anvdd-supply = <®_1p8v>;
+ apvdd-supply = <®_1p8v>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&lvds_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ it6263_out: endpoint {
+ remote-endpoint = <&lvds_to_hdmi_con_out>;
+ };
+ };
+ };
+ };
+};
+
+&lvds {
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+ lvds_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ };
+ };
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535
2026-10-01 9:40 ` [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
@ 2026-10-01 10:46 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-01 10:46 UTC (permalink / raw)
To: Biju; +Cc: conor+dt, wsa+renesas, robh, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dts: build failure due to undefined dsi and du labels
--
commit 045dc46eb4705fb5d6a8e9c2c09ae5baac2cfba9
Author: Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535
This commit adds a Device Tree overlay for the RZ/G3L SMARC EVK board to
support DSI-to-HDMI output via the ADV7535 transmitter. It enables the DSI
controller, display unit (DU), HDMI audio, and updates the Makefile to build
the standalone and composite DTBs.
> diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
> index 8bf155badd111..8c6a448907151 100644
> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
[ ... ]
> @@ -187,6 +187,9 @@ r9a08g045s33-smarc-pmod1-type-3a-dtbs := r9a08g045s33-smarc.dtb r9a08g045s33-sma
> dtb-$(CONFIG_ARCH_R9A08G045) += r9a08g045s33-smarc-pmod1-type-3a.dtb
>
> dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc.dtb
> +dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtbo
> +r9a08g046l48-smarc-dsi-adv7535-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-dsi-adv7535.dtbo
> +dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtb
[Severity: Low]
Will this composite DTB rule break the build?
Running make dtbs with CONFIG_ARCH_R9A08G046 attempts to generate the
composite DTB using fdtoverlay. Since the base DTB lacks the dsi and du labels
referenced in the overlay, fdtoverlay will fail with an unresolved reference
error and abort the build process.
> diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
> new file mode 100644
> index 0000000000000..1e1ebafe24398
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
[ ... ]
> +&dsi {
> + status = "okay";
[Severity: Low]
Does the base device tree define the dsi label?
It appears this label reference is missing from the base SoC device tree,
which causes the overlay application to fail when building the composite DTB.
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@1 {
> + reg = <1>;
> + dsi_out: endpoint {
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&adv7535_in>;
> + };
> + };
> + };
> +};
> +
> +&du {
> + status = "okay";
> +};
[Severity: Low]
Similarly, does the base device tree define the du label?
This unresolved reference will also contribute to the build aborting during
fdtoverlay.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261001094041.135697-1-biju.das.jz@bp.renesas.com?part=8
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC
2026-10-01 9:40 [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
2026-10-01 9:40 ` [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
2026-10-01 9:40 ` [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju
@ 2026-10-01 10:56 ` Biju Das
2 siblings, 0 replies; 6+ messages in thread
From: Biju Das @ 2026-10-01 10:56 UTC (permalink / raw)
To: biju.das.au, Andrzej Hajda, Neil Armstrong, Robert Foss,
David Airlie, Simona Vetter, Philipp Zabel, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
Geert Uytterhoeven, magnus.damm
Cc: laurent.pinchart, Jonas Karlman, Jernej Skrabec, Luca Ceresoli,
Tommaso Merciai, dri-devel@lists.freedesktop.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, Prabhakar Mahadev Lad,
biju.das.au
Hi All,
> -----Original Message-----
> From: Biju <biju.das.au@gmail.com>
> Sent: 01 October 2026 10:40
> Subject: [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC
>
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Hi All,
>
> This patch series aims to add DSI, LVDS and LCD support for the RZ/G3L SMARC EVK. The RZ/G3L LCDC is
> similar to the one found on RZ/G2L, but has LVDS support.
>
> The LVDS series [1] is merged here to get an overall picture.
>
> [1] https://lore.kernel.org/all/20260625172359.292631-1-biju.das.jz@bp.renesas.com/
>
> v4->v5:
> * Collected tag.
> * Restored mode_clock_min to 5440 kHz.
> * Replaced static resets array in probe with global resets array.
> * Updated rzg3l_lvds_atomic_disable() to fix the
> PM_RUNTIME_ACQUIRE_IF_ENABLED guard that prevents synchronous suspend.
> * Updated rzg3l_lvds_atomic_enable() to fix refcount underflow in
> atomic_disable due to early return in atomic_enable.
> * Dropped dotclk from struct rzg3l_lvds.
> v3->v4:
> * Collected tag.
> * Dropped pwrrdy variable from struct rzg2l_mipi_dsi_hw_info and instead
> using feature flag RZ_MIPI_DSI_FEATURE_PWRRDY
> * Dropped rzg2l_mipi_dsi_pwrrdy_off() as it is taken care by
> devm_pwrseq_get().
> * Updated mode_clock_min from 5440->5400 kHz.
> * Added resets in pair for simplification.
> * Added comment in probe() for asserting resets.
> * Updated commit description for patch#8 and #9.
> * Updated license header for patch#8 and #9.
> * Added HDMI audio support.
> * Dropped reg_1v8 and reg_3v3 nodes as they are redundant.
> * Renamed it6263 node name from it6263 to hdmi.
> v2->v3:
> * Dropped binding patches as it is accepted.
> v1->v2:
> * Dropped renesas,sysc-pwrrdy property as it is modelled as power
> sequence.
> * Switched to power sequence for handling pwrrdy signal.
> * Dropped header file regmap.h and mfd/syscon.h
> * Added header file pwrseq/consumer.h
> * Replaced syscon_field->pwrrdy in struct rzg3l_mipi_dsi_info.
> * Restored ports in DU bindings.
> * Replaced endpoint with port in ports node.
> * Dropped the macro RZG2L_DU_FEATURE_SMUX2_DSI_CLK and RZG2L_DU_MAX_LVDS.
> * Dropped the variable rcdu from struct rzg2l_du_encoder.
> * Dropped the variable lvds from struct rzg2l_du_device.
> * Dropped renesas,sysc-pwrrdy from dsi node.
>
> Biju Das (9):
> drm: renesas: rzg2l_mipi_dsi: Add dphyctrl0_init_val to hw_info
> drm: renesas: rzg2l_mipi_dsi: Add activation_dly to hw_info
> drm: renesas: rzg2l_mipi_dsi: Move global timings into hardware info
> struct
> drm: renesas: rzg2l_mipi_dsi: Add support for DSI PWRRDY
> drm: renesas: rzg2l_mipi_dsi: Add RZ/G3L MIPI DSI support
> drm: renesas: rz-du: Add RZ/G3L (R9A08G046) DU support
> drm: renesas: rz-du: Add support for RZ/G3L LVDS encoder
> arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535
> arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with
> ITE6263
>
> arch/arm64/boot/dts/renesas/Makefile | 6 +
> .../r9a08g046l48-smarc-dsi-adv7535.dtso | 138 +++++++++
> .../r9a08g046l48-smarc-lvds-ite6263.dtso | 86 ++++++
> drivers/gpu/drm/renesas/rz-du/Kconfig | 13 +
> drivers/gpu/drm/renesas/rz-du/Makefile | 1 +
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c | 24 +-
> drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h | 3 +-
> .../gpu/drm/renesas/rz-du/rzg2l_du_encoder.c | 24 ++
> .../gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 162 ++++++++++-
> drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c | 275 ++++++++++++++++++
> .../gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h | 25 ++
> 11 files changed, 749 insertions(+), 8 deletions(-) create mode 100644
> arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-dsi-adv7535.dtso
> create mode 100644 arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
> create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c
> create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h
>
> --
> 2.43.0
Applied patches 1..7 on drm-misc-next.
Cheers,
Biju
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263
2026-10-01 9:40 ` [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju
@ 2026-10-01 10:58 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-01 10:58 UTC (permalink / raw)
To: Biju; +Cc: robh, conor+dt, devicetree, wsa+renesas
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] drm: rz-du: rzg3l_lvds: pm runtime usage counter leak on error paths
- [Low] dts: build failure due to unresolved du and lvds node references
--
commit 7ca002208d8868213743e7114cf32df2e06ea2b6
Author: Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263
Add a Device Tree overlay (r9a08g046l48-smarc-lvds-ite6263.dtso) for the
RZ/G3L (R9A08G046) SMARC EVK board to support LVDS-to-HDMI output via the
ITE 6263 HDMI transmitter.
> diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
> index 8c6a448907151..3cecc40204e90 100644
> --- a/arch/arm64/boot/dts/renesas/Makefile
> +++ b/arch/arm64/boot/dts/renesas/Makefile
[ ... ]
> @@ -190,6 +190,9 @@ dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc.dtb
> dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtbo
> r9a08g046l48-smarc-dsi-adv7535-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-dsi-adv7535.dtbo
> dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-dsi-adv7535.dtb
> +dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-lvds-ite6263.dtbo
> +r9a08g046l48-smarc-lvds-ite6263-dtbs := r9a08g046l48-smarc.dtb r9a08g046l48-smarc-lvds-ite6263.dtbo
> +dtb-$(CONFIG_ARCH_R9A08G046) += r9a08g046l48-smarc-lvds-ite6263.dtb
[Severity: Low]
Does this rule cause a build failure?
When attempting to merge the composite DTB here, fdtoverlay will fail to
resolve the &du and &lvds targets because they are missing from the base
device tree.
This results in an FDT_ERR_NOTFOUND error.
> diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
> new file mode 100644
> index 0000000000000..3c64db8d22e9e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc-lvds-ite6263.dtso
[ ... ]
> +&du {
> + status = "okay";
> +};
[Severity: Low]
Is the du label defined in the base device tree (r9a08g046.dtsi or board
dts)?
Referencing this undefined label here will cause an fdtoverlay resolution
failure.
[ ... ]
> +&lvds {
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
[Severity: Low]
Similarly, is the lvds label defined in the base device tree?
This missing label will also cause an fdtoverlay resolution failure.
Also, reviewing the DRM driver in drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c:
drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c:rzg3l_lvds_atomic_enable() {
...
if (WARN_ON(pm_runtime_get_sync(lvds->dev) < 0))
return;
...
}
[Severity: High]
Does this error path leak the PM usage counter?
pm_runtime_get_sync() increments the device's PM usage counter even if it
returns an error (< 0).
Returning early here without dropping the reference (e.g. via
pm_runtime_put_noidle()) leaves the counter permanently incremented, which
can prevent the power domain from suspending.
drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c:rzg3l_lvds_atomic_enable() {
...
bridge_state = drm_atomic_get_new_bridge_state(state, bridge);
if (WARN_ON(!bridge_state))
return;
...
}
[Severity: High]
Does this early return also leak the PM usage counter?
If drm_atomic_get_new_bridge_state() returns NULL, the function hits the
WARN_ON and returns without calling pm_runtime_put_sync() to decrement the
usage counter acquired earlier.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261001094041.135697-1-biju.das.jz@bp.renesas.com?part=9
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-01 10:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-01 9:40 [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju
2026-10-01 9:40 ` [PATCH v5 8/9] arm64: dts: renesas: Add DSI overlay for RZ/G3L SMARC EVK with ADV7535 Biju
2026-10-01 10:46 ` sashiko-bot
2026-10-01 9:40 ` [PATCH v5 9/9] arm64: dts: renesas: Add LVDS overlay for RZ/G3L SMARC EVK with ITE6263 Biju
2026-10-01 10:58 ` sashiko-bot
2026-10-01 10:56 ` [PATCH v5 0/9] Add support for DU, LVDS and DSI on the Renesas RZ/G3L SoC Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox