drm/mediatek: dpi: Add output bus formats to driver data
authorRex-BC Chen <rex-bc.chen@mediatek.com>
Wed, 26 May 2021 08:52:18 +0000 (16:52 +0800)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Fri, 4 Jun 2021 00:24:55 +0000 (08:24 +0800)
For each SoC, dpi support different output bus formats, so
add these information into driver data.

Signed-off-by: Jitao Shi <jitao.shi@mediatek.com>
Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_dpi.c

index 7cf5e1d2a6101a4ea0322cf8fbe7a31cd628b946..7e8b7932e3181ceb151975712211cf84f05537fc 100644 (file)
@@ -123,6 +123,8 @@ struct mtk_dpi_conf {
        u32 reg_h_fre_con;
        u32 max_clock_khz;
        bool edge_sel_en;
+       const u32 *output_fmts;
+       u32 num_output_fmts;
 };
 
 static void mtk_dpi_mask(struct mtk_dpi *dpi, u32 offset, u32 val, u32 mask)
@@ -702,10 +704,21 @@ static unsigned int mt8183_calculate_factor(int clock)
                return 2;
 }
 
+static const u32 mt8173_output_fmts[] = {
+       MEDIA_BUS_FMT_RGB888_1X24,
+};
+
+static const u32 mt8183_output_fmts[] = {
+       MEDIA_BUS_FMT_RGB888_2X12_LE,
+       MEDIA_BUS_FMT_RGB888_2X12_BE,
+};
+
 static const struct mtk_dpi_conf mt8173_conf = {
        .cal_factor = mt8173_calculate_factor,
        .reg_h_fre_con = 0xe0,
        .max_clock_khz = 300000,
+       .output_fmts = mt8173_output_fmts,
+       .num_output_fmts = ARRAY_SIZE(mt8173_output_fmts),
 };
 
 static const struct mtk_dpi_conf mt2701_conf = {
@@ -713,18 +726,24 @@ static const struct mtk_dpi_conf mt2701_conf = {
        .reg_h_fre_con = 0xb0,
        .edge_sel_en = true,
        .max_clock_khz = 150000,
+       .output_fmts = mt8173_output_fmts,
+       .num_output_fmts = ARRAY_SIZE(mt8173_output_fmts),
 };
 
 static const struct mtk_dpi_conf mt8183_conf = {
        .cal_factor = mt8183_calculate_factor,
        .reg_h_fre_con = 0xe0,
        .max_clock_khz = 100000,
+       .output_fmts = mt8183_output_fmts,
+       .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts),
 };
 
 static const struct mtk_dpi_conf mt8192_conf = {
        .cal_factor = mt8183_calculate_factor,
        .reg_h_fre_con = 0xe0,
        .max_clock_khz = 150000,
+       .output_fmts = mt8173_output_fmts,
+       .num_output_fmts = ARRAY_SIZE(mt8173_output_fmts),
 };
 
 static int mtk_dpi_probe(struct platform_device *pdev)