]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output
authorLouis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Wed, 17 Dec 2025 10:19:09 +0000 (11:19 +0100)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 8 Jan 2026 12:41:55 +0000 (13:41 +0100)
Add a definition for the on-board HDMI connector, enable and add
the relevant configuration for the HDMI PHY and controller, and
define the pins used by those.

Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi

index 2b7167804e71d0ced33c048ecb2040667b5fece1..345fc5ac9e039de8660ae325f36ae6265ef3a7c8 100644 (file)
                stdout-path = "serial0:921600n8";
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&hdmitx_ddc>;
+               hdmi-pwr-supply = <&hdmi_phy>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi0_out>;
+                       };
+               };
+       };
+
        firmware {
                optee {
                        compatible = "linaro,optee-tz";
        wakeup-delay-ms = <200>;
 };
 
+&dpi1 {
+       status = "okay";
+};
+
+&dpi1_in {
+       remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+       remote-endpoint = <&hdmi0_in>;
+};
+
 &dsi0 {
        #address-cells = <1>;
        #size-cells = <0>;
        };
 };
 
+&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 = <&dither0_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";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        pinctrl-0 = <&i2c1_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 = <&mt6315_7_vbuck1>;
 };
                };
        };
 
+       hdmi_vreg_pins: hdmi-vreg-pins {
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO31__FUNC_HDMITX20_PWR5V>;
+                       bias-disable;
+               };
+       };
+
+       hdmi_pins: hdmi-pins {
+               pins-hotplug {
+                       pinmux = <PINMUX_GPIO32__FUNC_HDMITX20_HTPLG>;
+                       bias-pull-down;
+               };
+
+               pins-ddc {
+                       pinmux = <PINMUX_GPIO34__FUNC_HDMITX20_SCL>,
+                                <PINMUX_GPIO35__FUNC_HDMITX20_SDA>;
+                       drive-strength = <10>;
+               };
+
+               pins-cec {
+                       pinmux = <PINMUX_GPIO33__FUNC_HDMITX20_CEC>;
+                       bias-disable;
+               };
+       };
+
        i2c0_pins: i2c0-pins {
                pins {
                        pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
        };
 };
 
+&vdosys1 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys1_ep_ext: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ethdr0_in>;
+               };
+       };
+};
+
 &xhci0 {
        status = "okay";
 };