OSDN Git Service

drm/msm/hdmi: Add basic HDMI support for msm8996
authorStephane Viau <sviau@codeaurora.org>
Tue, 15 Sep 2015 12:41:49 +0000 (08:41 -0400)
committerRob Clark <robdclark@gmail.com>
Thu, 22 Oct 2015 19:39:55 +0000 (15:39 -0400)
The HDMI controller is new in MDP5 v1.7. As of now, this change
doesn't reflect the novelty and only adds the basics so the probe
gets triggered.

Signed-off-by: Stephane Viau <sviau@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Documentation/devicetree/bindings/drm/msm/hdmi.txt
drivers/gpu/drm/msm/hdmi/hdmi.c

index e926239..379ee2e 100644 (file)
@@ -2,6 +2,7 @@ Qualcomm adreno/snapdragon hdmi output
 
 Required properties:
 - compatible: one of the following
+   * "qcom,hdmi-tx-8996"
    * "qcom,hdmi-tx-8994"
    * "qcom,hdmi-tx-8084"
    * "qcom,hdmi-tx-8974"
@@ -21,6 +22,7 @@ Required properties:
 Optional properties:
 - qcom,hdmi-tx-mux-en-gpio: hdmi mux enable pin
 - qcom,hdmi-tx-mux-sel-gpio: hdmi mux select pin
+- power-domains: reference to the power domain(s), if available.
 - pinctrl-names: the pin control state names; should contain "default"
 - pinctrl-0: the default pinctrl state (active)
 - pinctrl-1: the "sleep" pinctrl state
@@ -35,6 +37,7 @@ Example:
                reg-names = "core_physical";
                reg = <0x04a00000 0x1000>;
                interrupts = <GIC_SPI 79 0>;
+               power-domains = <&mmcc MDSS_GDSC>;
                clock-names =
                    "core_clk",
                    "master_iface_clk",
index 101b324..1f4a95e 100644 (file)
@@ -328,6 +328,9 @@ fail:
        .item ## _names = item ##_names_ ## entry, \
        .item ## _cnt   = ARRAY_SIZE(item ## _names_ ## entry)
 
+static const char *pwr_reg_names_none[] = {};
+static const char *hpd_reg_names_none[] = {};
+
 static struct hdmi_platform_config hdmi_tx_8660_config = {
                .phy_init = hdmi_phy_8x60_init,
 };
@@ -367,18 +370,26 @@ static struct hdmi_platform_config hdmi_tx_8084_config = {
                .hpd_freq      = hpd_clk_freq_8x74,
 };
 
-static const char *hpd_reg_names_8x94[] = {};
-
 static struct hdmi_platform_config hdmi_tx_8994_config = {
                .phy_init = NULL, /* nothing to do for this HDMI PHY 20nm */
                HDMI_CFG(pwr_reg, 8x74),
-               HDMI_CFG(hpd_reg, 8x94),
+               HDMI_CFG(hpd_reg, none),
+               HDMI_CFG(pwr_clk, 8x74),
+               HDMI_CFG(hpd_clk, 8x74),
+               .hpd_freq      = hpd_clk_freq_8x74,
+};
+
+static struct hdmi_platform_config hdmi_tx_8996_config = {
+               .phy_init = NULL,
+               HDMI_CFG(pwr_reg, none),
+               HDMI_CFG(hpd_reg, none),
                HDMI_CFG(pwr_clk, 8x74),
                HDMI_CFG(hpd_clk, 8x74),
                .hpd_freq      = hpd_clk_freq_8x74,
 };
 
 static const struct of_device_id dt_match[] = {
+       { .compatible = "qcom,hdmi-tx-8996", .data = &hdmi_tx_8996_config },
        { .compatible = "qcom,hdmi-tx-8994", .data = &hdmi_tx_8994_config },
        { .compatible = "qcom,hdmi-tx-8084", .data = &hdmi_tx_8084_config },
        { .compatible = "qcom,hdmi-tx-8974", .data = &hdmi_tx_8974_config },