]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: mediatek: mt8390-tungsten-smarc: add HDMI support
authorGary Bisson <bisson.gary@gmail.com>
Tue, 10 Mar 2026 15:20:13 +0000 (16:20 +0100)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Mon, 11 May 2026 11:57:25 +0000 (13:57 +0200)
Add HDMI display out support to both Tungsten510 & Tungsten700
platforms. HDMI audio is not covered by this patch, audio (HDMI & I2S)
will be added as a follow-up patch.

Signed-off-by: Gary Bisson <bisson.gary@gmail.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8390-tungsten-smarc.dtsi

index 2e68e997dff3aaa911e89dcde62a244bb8622ef1..9f5a0ec563e8c940089ac3be49def64a971f9a90 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&hdmi_ddc>;
+               hdmi-pwr-supply = <&hdmi_phy>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi0_out>;
+                       };
+               };
+       };
+
        firmware {
                optee {
                        compatible = "linaro,optee-tz";
        remote-endpoint = <&dsi0_in>;
 };
 
+&dpi1 {
+       status = "okay";
+};
+
+&dpi1_in {
+       remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+       remote-endpoint = <&hdmi0_in>;
+};
+
 &eth {
        phy-mode ="rgmii-id";
        phy-handle = <&ethernet_phy0>;
        };
 };
 
+&ethdr0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       ethdr0_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&vdosys1_ep_ext>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ethdr0_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&merge5_in>;
+                       };
+               };
+       };
+};
+
 &gamma0_out {
        remote-endpoint = <&postmask0_in>;
 };
        status = "okay";
 };
 
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_pins>;
+       status = "okay";
+};
+
+&hdmi0_in {
+       remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+       remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_vreg_pins>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;
        };
 };
 
+&merge5 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       merge5_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&ethdr0_out>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       merge5_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&dpi1_in>;
+                       };
+               };
+       };
+};
+
 &mfg0 {
        domain-supply = <&mt6359_vproc2_buck_reg>;
 };
        };
 };
 
+&vdosys1 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys1_ep_ext: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ethdr0_in>;
+               };
+       };
+};
+
 &watchdog {
        pinctrl-names = "default";
        pinctrl-0 = <&watchdog_pins>;