mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
drm/msm/hdmi: HDMI 8996 PHY/PLL support
Add support for the HDMI PHY/PLL found in MSM8996/APQ8096. Unlike the previous PHYs supported in the driver, this doesn't need the powerup/powerdown ops. The PLL prepare/unprepare clock ops enable/disable the phy itself. Signed-off-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
@@ -54,6 +54,7 @@ msm-y := \
|
||||
msm-$(CONFIG_DRM_FBDEV_EMULATION) += msm_fbdev.o
|
||||
msm-$(CONFIG_COMMON_CLK) += mdp/mdp4/mdp4_lvds_pll.o
|
||||
msm-$(CONFIG_COMMON_CLK) += hdmi/hdmi_pll_8960.o
|
||||
msm-$(CONFIG_COMMON_CLK) += hdmi/hdmi_phy_8996.o
|
||||
|
||||
msm-$(CONFIG_DRM_MSM_DSI) += dsi/dsi.o \
|
||||
mdp/mdp4/mdp4_dsi_encoder.o \
|
||||
|
||||
@@ -147,6 +147,7 @@ enum hdmi_phy_type {
|
||||
MSM_HDMI_PHY_8x60,
|
||||
MSM_HDMI_PHY_8960,
|
||||
MSM_HDMI_PHY_8x74,
|
||||
MSM_HDMI_PHY_8996,
|
||||
MSM_HDMI_PHY_MAX,
|
||||
};
|
||||
|
||||
@@ -163,6 +164,7 @@ struct hdmi_phy_cfg {
|
||||
extern const struct hdmi_phy_cfg hdmi_phy_8x60_cfg;
|
||||
extern const struct hdmi_phy_cfg hdmi_phy_8960_cfg;
|
||||
extern const struct hdmi_phy_cfg hdmi_phy_8x74_cfg;
|
||||
extern const struct hdmi_phy_cfg hdmi_phy_8996_cfg;
|
||||
|
||||
struct hdmi_phy {
|
||||
struct platform_device *pdev;
|
||||
@@ -192,11 +194,17 @@ void __exit hdmi_phy_driver_unregister(void);
|
||||
|
||||
#ifdef CONFIG_COMMON_CLK
|
||||
int hdmi_pll_8960_init(struct platform_device *pdev);
|
||||
int hdmi_pll_8996_init(struct platform_device *pdev);
|
||||
#else
|
||||
int hdmi_pll_8960_init(struct platform_device *pdev);
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
int hdmi_pll_8996_init(struct platform_device *pdev)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
@@ -127,6 +127,9 @@ static int hdmi_phy_pll_init(struct platform_device *pdev,
|
||||
case MSM_HDMI_PHY_8960:
|
||||
ret = hdmi_pll_8960_init(pdev);
|
||||
break;
|
||||
case MSM_HDMI_PHY_8996:
|
||||
ret = hdmi_pll_8996_init(pdev);
|
||||
break;
|
||||
/*
|
||||
* we don't have PLL support for these, don't report an error for now
|
||||
*/
|
||||
@@ -202,6 +205,8 @@ static const struct of_device_id hdmi_phy_dt_match[] = {
|
||||
.data = &hdmi_phy_8x74_cfg },
|
||||
{ .compatible = "qcom,hdmi-phy-8084",
|
||||
.data = &hdmi_phy_8x74_cfg },
|
||||
{ .compatible = "qcom,hdmi-phy-8996",
|
||||
.data = &hdmi_phy_8996_cfg },
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
766
drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
Normal file
766
drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user