Enable DU1, DSI and ADV7535 on RZ/G3E SMARC EVK including the newly
added r9a09g047e57-smarc-du1-adv7535.dtsi

Signed-off-by: Tommaso Merciai <[email protected]>
---
 .../r9a09g047e57-smarc-du1-adv7535.dtsi       | 124 ++++++++++++++++++
 .../boot/dts/renesas/r9a09g047e57-smarc.dts   |   1 +
 2 files changed, 125 insertions(+)
 create mode 100644 
arch/arm64/boot/dts/renesas/r9a09g047e57-smarc-du1-adv7535.dtsi

diff --git a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc-du1-adv7535.dtsi 
b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc-du1-adv7535.dtsi
new file mode 100644
index 000000000000..4444c9634d3e
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc-du1-adv7535.dtsi
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the R9A09G047E57 SMARC SoM board with
+ * ADV7535 MIPI DSI to HDMI transmitter connected to DU1 enabled.
+ *
+ * Copyright (C) 2025 Renesas Electronics Corp.
+ */
+
+/ {
+       osc1: cec-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
+
+       reg_1p8v_adv: regulator-1p8v-adv {
+               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;
+       };
+
+       dsi-to-hdmi-out {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       dsi_to_hdmi_out: endpoint {
+                               remote-endpoint = <&adv7535_out>;
+                       };
+               };
+       };
+};
+
+&dsi {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       dsi_in1: endpoint {
+                               remote-endpoint = <&du1_out_dsi0>;
+                       };
+               };
+
+               port@2 {
+                       dsi_out: endpoint {
+                               remote-endpoint = <&adv7535_in>;
+                               data-lanes = <1 2 3 4>;
+                       };
+               };
+       };
+};
+
+&du1 {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       du1_out_dsi0: endpoint {
+                               remote-endpoint = <&dsi_in1>;
+                       };
+               };
+       };
+};
+
+&i2c7 {
+       pinctrl-0 = <&i2c7_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+       clock-frequency = <400000>;
+
+       adv7535: hdmi1@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>;
+
+               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>;
+                               };
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       i2c7_pins: i2c7 {
+               pinmux = <RZG3E_PORT_PINMUX(A, 4, 4)>, /* SCL */
+                        <RZG3E_PORT_PINMUX(A, 5, 4)>; /* SDA */
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts 
b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
index 08e814c03fa8..74cf36586636 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
@@ -28,6 +28,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/renesas,r9a09g047-pinctrl.h>
 #include "r9a09g047e57.dtsi"
+#include "r9a09g047e57-smarc-du1-adv7535.dtsi"
 #include "rzg3e-smarc-som.dtsi"
 #include "renesas-smarc2.dtsi"
 
-- 
2.43.0

Reply via email to