]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: msm8998: add HDMI nodes
authorArnaud Vrac <avrac@freebox.fr>
Wed, 24 Jul 2024 15:01:39 +0000 (17:01 +0200)
committerBjorn Andersson <andersson@kernel.org>
Sun, 6 Oct 2024 01:53:26 +0000 (20:53 -0500)
Add HDMI controller and PHY nodes, ported from vendor code.

Signed-off-by: Arnaud Vrac <avrac@freebox.fr>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr>
Link: https://lore.kernel.org/r/20240724-hdmi-tx-v7-6-e44a20553464@freebox.fr
[bjorn: Updated commit message]
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/msm8998.dtsi

index 80da334e9982df27edfe1f960807179580d1e02d..4952da36ba5935b1ed135cf2bbab1dc9b669868e 100644 (file)
                                 <&mdss_dsi0_phy 0>,
                                 <&mdss_dsi1_phy 1>,
                                 <&mdss_dsi1_phy 0>,
-                                <0>,
+                                <&mdss_hdmi_phy 0>,
                                 <0>,
                                 <0>,
                                 <&gcc GCC_MMSS_GPLL0_DIV_CLK>;
                                                        remote-endpoint = <&mdss_dsi1_in>;
                                                };
                                        };
+
+                                       port@2 {
+                                               reg = <2>;
+
+                                               dpu_intf3_out: endpoint {
+                                                       remote-endpoint = <&hdmi_in>;
+                                               };
+                                       };
                                };
                        };
 
 
                                status = "disabled";
                        };
+
+                       mdss_hdmi: hdmi-tx@c9a0000 {
+                               compatible = "qcom,hdmi-tx-8998";
+                               reg =   <0x0c9a0000 0x50c>,
+                                       <0x00780000 0x6220>,
+                                       <0x0c9e0000 0x2c>;
+                               reg-names = "core_physical",
+                                           "qfprom_physical",
+                                           "hdcp_physical";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <8>;
+
+                               clocks = <&mmcc MDSS_MDP_CLK>,
+                                        <&mmcc MDSS_AHB_CLK>,
+                                        <&mmcc MDSS_HDMI_CLK>,
+                                        <&mmcc MDSS_HDMI_DP_AHB_CLK>,
+                                        <&mmcc MDSS_EXTPCLK_CLK>,
+                                        <&mmcc MDSS_AXI_CLK>,
+                                        <&mmcc MNOC_AHB_CLK>,
+                                        <&mmcc MISC_AHB_CLK>;
+                               clock-names =
+                                       "mdp_core",
+                                       "iface",
+                                       "core",
+                                       "alt_iface",
+                                       "extp",
+                                       "bus",
+                                       "mnoc",
+                                       "iface_mmss";
+
+                               phys = <&mdss_hdmi_phy>;
+                               #sound-dai-cells = <1>;
+
+                               pinctrl-0 = <&hdmi_hpd_default>,
+                                           <&hdmi_ddc_default>,
+                                           <&hdmi_cec_default>;
+                               pinctrl-1 = <&hdmi_hpd_sleep>,
+                                           <&hdmi_ddc_default>,
+                                           <&hdmi_cec_default>;
+                               pinctrl-names = "default", "sleep";
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               hdmi_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf3_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               hdmi_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_hdmi_phy: hdmi-phy@c9a0600 {
+                               compatible = "qcom,hdmi-phy-8998";
+                               reg = <0x0c9a0600 0x18b>,
+                                     <0x0c9a0a00 0x38>,
+                                     <0x0c9a0c00 0x38>,
+                                     <0x0c9a0e00 0x38>,
+                                     <0x0c9a1000 0x38>,
+                                     <0x0c9a1200 0x0e8>;
+                               reg-names = "hdmi_pll",
+                                           "hdmi_tx_l0",
+                                           "hdmi_tx_l1",
+                                           "hdmi_tx_l2",
+                                           "hdmi_tx_l3",
+                                           "hdmi_phy";
+
+                               #clock-cells = <0>;
+                               #phy-cells = <0>;
+
+                               clocks = <&mmcc MDSS_AHB_CLK>,
+                                        <&gcc GCC_HDMI_CLKREF_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface",
+                                             "ref",
+                                             "xo";
+
+                               status = "disabled";
+                       };
                };
 
                venus: video-codec@cc00000 {