浏览代码

drm/mediatek: add dpi driver for mt2701 and mt7623

This patch adds dpi dirver suppot for both mt2701 and mt7623.
And also support other (existing or future) chips that use
the same binding and driver.

Signed-off-by: chunhui dai <chunhui.dai@mediatek.com>
Signed-off-by: CK Hu <ck.hu@mediatek.com>
chunhui dai 6 年之前
父节点
当前提交
d08b5ab972
共有 2 个文件被更改,包括 23 次插入0 次删除
  1. 21 0
      drivers/gpu/drm/mediatek/mtk_dpi.c
  2. 2 0
      drivers/gpu/drm/mediatek/mtk_drm_drv.c

+ 21 - 0
drivers/gpu/drm/mediatek/mtk_dpi.c

@@ -659,11 +659,29 @@ static unsigned int mt8173_calculate_factor(int clock)
 		return 3 << 1;
 		return 3 << 1;
 }
 }
 
 
+static unsigned int mt2701_calculate_factor(int clock)
+{
+	if (clock <= 64000)
+		return 16;
+	else if (clock <= 128000)
+		return 8;
+	else if (clock <= 256000)
+		return 4;
+	else
+		return 2;
+}
+
 static const struct mtk_dpi_conf mt8173_conf = {
 static const struct mtk_dpi_conf mt8173_conf = {
 	.cal_factor = mt8173_calculate_factor,
 	.cal_factor = mt8173_calculate_factor,
 	.reg_h_fre_con = 0xe0,
 	.reg_h_fre_con = 0xe0,
 };
 };
 
 
+static const struct mtk_dpi_conf mt2701_conf = {
+	.cal_factor = mt2701_calculate_factor,
+	.reg_h_fre_con = 0xb0,
+	.edge_sel_en = true,
+};
+
 static int mtk_dpi_probe(struct platform_device *pdev)
 static int mtk_dpi_probe(struct platform_device *pdev)
 {
 {
 	struct device *dev = &pdev->dev;
 	struct device *dev = &pdev->dev;
@@ -753,6 +771,9 @@ static int mtk_dpi_remove(struct platform_device *pdev)
 }
 }
 
 
 static const struct of_device_id mtk_dpi_of_ids[] = {
 static const struct of_device_id mtk_dpi_of_ids[] = {
+	{ .compatible = "mediatek,mt2701-dpi",
+	  .data = &mt2701_conf,
+	},
 	{ .compatible = "mediatek,mt8173-dpi",
 	{ .compatible = "mediatek,mt8173-dpi",
 	  .data = &mt8173_conf,
 	  .data = &mt8173_conf,
 	},
 	},

+ 2 - 0
drivers/gpu/drm/mediatek/mtk_drm_drv.c

@@ -424,6 +424,8 @@ static const struct of_device_id mtk_ddp_comp_dt_ids[] = {
 	  .data = (void *)MTK_DSI },
 	  .data = (void *)MTK_DSI },
 	{ .compatible = "mediatek,mt8173-dsi",
 	{ .compatible = "mediatek,mt8173-dsi",
 	  .data = (void *)MTK_DSI },
 	  .data = (void *)MTK_DSI },
+	{ .compatible = "mediatek,mt2701-dpi",
+	  .data = (void *)MTK_DPI },
 	{ .compatible = "mediatek,mt8173-dpi",
 	{ .compatible = "mediatek,mt8173-dpi",
 	  .data = (void *)MTK_DPI },
 	  .data = (void *)MTK_DPI },
 	{ .compatible = "mediatek,mt2701-disp-mutex",
 	{ .compatible = "mediatek,mt2701-disp-mutex",