Re: [PATCH v2 5/5] arm64: dts: renesas: Add LCDC overlays for RZ/T2H and RZ/N2H EVKs with ADV7513

Geert Uytterhoeven <[email protected]>
Newsgroups org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <CAMuHMdUrD22vs+HyuxSRfgrGqugoNp4wfvet-1tRo2qF_CsFzQ@mail.gmail.com>
Hi Prabhakar,

On Mon, 15 Jun 2026 at 13:55, Prabhakar <[email protected]> wrote:
> From: Lad Prabhakar <[email protected]>
>
> Add DT overlay support enabling the DU/LCDC pipeline on the RZ/T2H
> (r9a09g077) and RZ/N2H (r9a09g087) evaluation kits when fitted with a
> CN15/CN20 ADV7513 HDMI transmitter.
>
> Move the LED8 and LED9 preprocessor conditionals inside the node
> definitions so that the nodes remain present in the base DTS. This
> allows the LCDC overlay to reference and disable them when their pins
> are reassigned to display functions.
>
> According to the hardware manual, the LCDC pins should use slew-rate
> setting 1 (fast). However, testing on the RZ/T2H and RZ/N2H EVKs with
> the ADV7513 HDMI transmitter showed unstable display output with visible
> screen flicker when configured for fast slew-rate operation. Configure
> the LCDC pins with slew-rate setting 0 (slow) instead, which provides
> stable display output on the evaluation platforms.
>
> Signed-off-by: Lad Prabhakar <[email protected]>

Thanks for your patch!

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a09g077m44-evk-cn15-lcdc.dtso

> +/*
> + * RZ/T2H LCDC configuration:
> + * ----------------------------------------------------------
> + * Function        Pin     SW Setting
> + * ----------------------------------------------------------
> + * LCDC_DATG0     P11_0, SW6[3]: OFF, SW6[4]: ON, SW6[5]: OFF
> + * LCDC_DATB1     P18_0, SW8[3]: OFF, SW8[4]: ON
> + * LCDC_DATB2     P18_1, SW8[1]: OFF, SW8[2]: ON
> + * HEADER_IRQ8    P22_6, SW2[1]: ON, SW2[2]: OFF

What is IRQ8 connected to on the display board?
It is not described in the .dts[io].

BTW, r9a09g077m44-rzt2h-evk.dts uses a mix of "SWx[y]" and "SWx-y" (and
tables), which makes it harder than needed to see which functionality
is affected by a given switch.

> + */
> +#include "rzt2h-n2h-evk-du-adv7513.dtsi"

In case of dynamic overlays, any conflicting pins must be disabled
first, so please move this #include to the end of this file.

> +
> +&{/leds/led-4} {
> +       /* P18_0 is used for DU function LCDC_DATB1. */
> +       status = "disabled";
> +};
> +
> +&{/leds/led-5} {
> +       /* P18_1 is used for DU function LCDC_DATB2. */
> +       status = "disabled";
> +};
> +
> +/*
> + * Disable SDHI0 as SW2 settings for eMMC/SD card conflict with DU pin
> + * settings.
> + */
> +&sdhi0 {
> +       status = "disabled";
> +};

> --- /dev/null
> +++ b/arch/arm64/boot/dts/renesas/r9a09g087m44-evk-cn20-lcdc.dtso

> +/*
> + * RZ/N2H LCDC configuration:
> + * ----------------------------------------------------------
> + * Function        Pin     SW Setting
> + * ----------------------------------------------------------
> + * LCDC_DATG0     P11_0, DSW12[3]: ON, DSW12[4]: OFF
> + * LCDC_DATG3     P14_3, DSW18[5]: OFF, DSW18[6]: ON

and DSW19[3]: OFF, DSW19[4]: ON?

> + * LCDC_DATG6     P14_6, DSW15[8]: ON, DSW15[9]: OFF, DSW15[10]: OFF
> + * LCDC_DATB2     P18_1, DSW18[9]: OFF, DSW18[10]: ON
> + * I2C_SDA1       P03_3, DSW7[1]: ON, DSW7[2]: OFF
> + * I2C_SCL1       P03_4, DSW7[3]: ON, DSW7[4]: OFF

I2C_SDA1 and I2C_SCL1 are exchanged?

BTW, r9a09g087m44-rzn2h-evk.dts uses a mix of "SWx[y]" and "SWx-y" (and
tables), which makes it harder than needed to see which functionality
is affected by a given switch.

> + * ------------------------------------------------
> + */
> +
> +#include "rzt2h-n2h-evk-du-adv7513.dtsi"

In case of dynamic overlays, any conflicting pins must be disabled
first, so please move this #include to the end of this file.

> +
> +&{/keys/key-1} {
> +       /* P18_2 is used for DU function LCDC_DATB3. */
> +       status = "disabled";
> +};
> +
> +&{/leds/led-4} {
> +       /* P18_1 is used for DU function LCDC_DATB2. */
> +       status = "disabled";
> +};
> +
> +&{/leds/led-7} {
> +       /* P14_3 is used for DU function LCDC_DATG3. */
> +       status = "disabled";
> +};
> +
> +&{/leds/led-8} {
> +       /* P14_6 is used for DU function LCDC_DATG6. */
> +       status = "disabled";
> +};
> +
> +&i2c0 {
> +       status = "disabled";

Needs the same comment as led-8 above?

The rest LGTM.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.