Commit 0afbe59e authored by Stephane Viau's avatar Stephane Viau Committed by Rob Clark

drm/msm/hdmi: Add basic HDMI support for msm8996

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: default avatarStephane Viau <sviau@codeaurora.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent d40325b4
...@@ -2,6 +2,7 @@ Qualcomm adreno/snapdragon hdmi output ...@@ -2,6 +2,7 @@ Qualcomm adreno/snapdragon hdmi output
Required properties: Required properties:
- compatible: one of the following - compatible: one of the following
* "qcom,hdmi-tx-8996"
* "qcom,hdmi-tx-8994" * "qcom,hdmi-tx-8994"
* "qcom,hdmi-tx-8084" * "qcom,hdmi-tx-8084"
* "qcom,hdmi-tx-8974" * "qcom,hdmi-tx-8974"
...@@ -21,6 +22,7 @@ Required properties: ...@@ -21,6 +22,7 @@ Required properties:
Optional properties: Optional properties:
- qcom,hdmi-tx-mux-en-gpio: hdmi mux enable pin - qcom,hdmi-tx-mux-en-gpio: hdmi mux enable pin
- qcom,hdmi-tx-mux-sel-gpio: hdmi mux select 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-names: the pin control state names; should contain "default"
- pinctrl-0: the default pinctrl state (active) - pinctrl-0: the default pinctrl state (active)
- pinctrl-1: the "sleep" pinctrl state - pinctrl-1: the "sleep" pinctrl state
...@@ -35,6 +37,7 @@ Example: ...@@ -35,6 +37,7 @@ Example:
reg-names = "core_physical"; reg-names = "core_physical";
reg = <0x04a00000 0x1000>; reg = <0x04a00000 0x1000>;
interrupts = <GIC_SPI 79 0>; interrupts = <GIC_SPI 79 0>;
power-domains = <&mmcc MDSS_GDSC>;
clock-names = clock-names =
"core_clk", "core_clk",
"master_iface_clk", "master_iface_clk",
......
...@@ -328,6 +328,9 @@ int hdmi_modeset_init(struct hdmi *hdmi, ...@@ -328,6 +328,9 @@ int hdmi_modeset_init(struct hdmi *hdmi,
.item ## _names = item ##_names_ ## entry, \ .item ## _names = item ##_names_ ## entry, \
.item ## _cnt = ARRAY_SIZE(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 = { static struct hdmi_platform_config hdmi_tx_8660_config = {
.phy_init = hdmi_phy_8x60_init, .phy_init = hdmi_phy_8x60_init,
}; };
...@@ -367,18 +370,26 @@ static struct hdmi_platform_config hdmi_tx_8084_config = { ...@@ -367,18 +370,26 @@ static struct hdmi_platform_config hdmi_tx_8084_config = {
.hpd_freq = hpd_clk_freq_8x74, .hpd_freq = hpd_clk_freq_8x74,
}; };
static const char *hpd_reg_names_8x94[] = {};
static struct hdmi_platform_config hdmi_tx_8994_config = { static struct hdmi_platform_config hdmi_tx_8994_config = {
.phy_init = NULL, /* nothing to do for this HDMI PHY 20nm */ .phy_init = NULL, /* nothing to do for this HDMI PHY 20nm */
HDMI_CFG(pwr_reg, 8x74), 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(pwr_clk, 8x74),
HDMI_CFG(hpd_clk, 8x74), HDMI_CFG(hpd_clk, 8x74),
.hpd_freq = hpd_clk_freq_8x74, .hpd_freq = hpd_clk_freq_8x74,
}; };
static const struct of_device_id dt_match[] = { 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-8994", .data = &hdmi_tx_8994_config },
{ .compatible = "qcom,hdmi-tx-8084", .data = &hdmi_tx_8084_config }, { .compatible = "qcom,hdmi-tx-8084", .data = &hdmi_tx_8084_config },
{ .compatible = "qcom,hdmi-tx-8974", .data = &hdmi_tx_8974_config }, { .compatible = "qcom,hdmi-tx-8974", .data = &hdmi_tx_8974_config },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment