Re: [PATCH v6 21/21] arm64: dts: renesas: r9a09g047e57-smarc: Enable DU0 and DSI support

From: Geert Uytterhoeven

Date: Wed Apr 08 2026 - 09:13:19 EST


Hi Tommaso,

On Wed, 8 Apr 2026 at 12:40, Tommaso Merciai
<tommaso.merciai.xr@xxxxxxxxxxxxxx> wrote:
> Enable DU0, DSI and ADV7535 on RZ/G3E SMARC EVK.
>
> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx>

Thanks for your patch!

> --- a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> +++ b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> @@ -33,6 +33,7 @@ aliases {
> ethernet0 = &eth0;
> ethernet1 = &eth1;
> i2c2 = &i2c2;
> + i2c7 = &i2c7;
> mmc0 = &sdhi0;
> mmc2 = &sdhi2;
> };
> @@ -77,12 +78,47 @@ reg_vdd0p8v_others: regulator-vdd0p8v-others {
> regulator-always-on;
> };
>
> + reg_1p8v_adv: regulator-1p8v-adv {

Please preserve sort order (alphabetical, by node name).

> + compatible = "regulator-fixed";
> + regulator-name = "fixed-1.8V";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + reg_3p3v_adv: regulator-3p3v-adv {
> + compatible = "regulator-fixed";
> + regulator-name = "fixed-3.3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };

Why not reusing the existing reg_1p8v and reg_3p3v?
Note that reg_1p8v driving eMMC and QSPI are also not the same
physical power rail.

> +
> + osc1: cec-clock {

Please preserve sort order (alphabetical, by node name).

> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <12000000>;
> + };
> +
> /* 32.768kHz crystal */
> x3: x3-clock {
> compatible = "fixed-clock";
> #clock-cells = <0>;
> clock-frequency = <32768>;
> };
> +
> + dsi-to-hdmi-out {

hdmi-out?

Please preserve sort order (alphabetical, by node name).

> + compatible = "hdmi-connector";
> + type = "d";
> +
> + port {
> + dsi_to_hdmi_out: endpoint {
> + remote-endpoint = <&adv7535_out>;
> + };
> + };
> + };
> };
>
> &audio_extal_clk {
> @@ -107,6 +143,37 @@ &eth1 {
> status = "okay";
> };
>
> +&dsi {

Please preserve sort-order (alphabetical, by label).

> + status = "okay";
> +
> + ports {
> + port@0 {
> + dsi_in0: endpoint {
> + remote-endpoint = <&du0_out_dsi>;
> + };
> + };
> +
> + port@2 {
> + dsi_out: endpoint {
> + remote-endpoint = <&adv7535_in>;
> + data-lanes = <1 2 3 4>;
> + };
> + };
> + };
> +};
> +
> +&du0 {
> + status = "okay";
> +
> + ports {
> + port@0 {
> + du0_out_dsi: endpoint {
> + remote-endpoint = <&dsi_in0>;
> + };
> + };
> + };
> +};
> +
> &gpu {
> status = "okay";
> mali-supply = <&reg_vdd0p8v_others>;
> @@ -132,6 +199,48 @@ raa215300: pmic@12 {
> };
> };
>
> +&i2c7 {
> + pinctrl-0 = <&i2c7_pins>;
> + pinctrl-names = "default";
> + status = "okay";
> + clock-frequency = <400000>;
> +
> + adv7535: hdmi@3d {
> + compatible = "adi,adv7535";
> + reg = <0x3d>, <0x4d>, <0x2d>, <0x5d>;
> + reg-names = "main", "edid", "cec", "packet";
> + clocks = <&osc1>;
> + clock-names = "cec";
> + avdd-supply = <&reg_1p8v_adv>;
> + dvdd-supply = <&reg_1p8v_adv>;
> + pvdd-supply = <&reg_1p8v_adv>;
> + a2vdd-supply = <&reg_1p8v_adv>;
> + v3p3-supply = <&reg_3p3v_adv>;
> + v1p2-supply = <&reg_1p8v_adv>;
> + adi,dsi-lanes = <4>;
> + interrupts-extended = <&pinctrl RZG3E_GPIO(L, 4) IRQ_TYPE_EDGE_FALLING>;
> +
> + 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_out>;
> + };
> + };
> + };
> + };
> +};
> +
> &i3c {
> pinctrl-0 = <&i3c_pins>;
> pinctrl-names = "default";

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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