diff --git a/src/soc/mediatek/common/dsi_common.c b/src/soc/mediatek/common/dsi_common.c index 008817ade9..3ff8c5b049 100644 --- a/src/soc/mediatek/common/dsi_common.c +++ b/src/soc/mediatek/common/dsi_common.c @@ -481,8 +481,7 @@ int mtk_dsi_init(u32 mode_flags, u32 format, u32 lanes, const struct edid *edid, mtk_dsi_reset(dsi); struct mtk_phy_timing phy_timing = {}; if (CONFIG(MEDIATEK_DSI_CPHY) && is_cphy) - /* Dual channel is not implemented for CPHY. */ - mtk_dsi_cphy_timing(data_rate, &phy_timing); + mtk_dsi_cphy_timing(dsi, data_rate, &phy_timing); else mtk_dsi_dphy_timing(dsi, data_rate, &phy_timing); diff --git a/src/soc/mediatek/common/include/soc/dsi_common.h b/src/soc/mediatek/common/include/soc/dsi_common.h index 57961d10bb..626e8414b6 100644 --- a/src/soc/mediatek/common/include/soc/dsi_common.h +++ b/src/soc/mediatek/common/include/soc/dsi_common.h @@ -174,7 +174,8 @@ void mtk_dsi_override_phy_timing(struct mtk_phy_timing *timing); void mtk_dsi_cphy_enable(struct mipi_tx_regs *mipi_tx_reg); void mtk_dsi_cphy_enable_cmdq_6byte(struct dsi_regs *dsi_reg); void mtk_dsi_cphy_lane_sel_setting(struct mipi_tx_regs *mipi_tx_reg); -void mtk_dsi_cphy_timing(u32 data_rate, struct mtk_phy_timing *timing); +void mtk_dsi_cphy_timing(struct dsi_regs *dsi_reg, u32 data_rate, + struct mtk_phy_timing *timing); void mtk_dsi_cphy_vdo_timing(const u32 lanes, const struct edid *edid, const struct mtk_phy_timing *phy_timing, const u32 bytes_per_pixel, const u32 hbp, const u32 hfp, diff --git a/src/soc/mediatek/common/mtk_mipi_cphy.c b/src/soc/mediatek/common/mtk_mipi_cphy.c index 3e78376951..ecf7915f67 100644 --- a/src/soc/mediatek/common/mtk_mipi_cphy.c +++ b/src/soc/mediatek/common/mtk_mipi_cphy.c @@ -42,7 +42,8 @@ void mtk_dsi_cphy_enable_cmdq_6byte(struct dsi_regs *dsi_reg) clrbits32(&dsi_reg->dsi_cmd_type1_hs, CMD_CPHY_6BYTE_EN); } -void mtk_dsi_cphy_timing(u32 data_rate, struct mtk_phy_timing *timing) +void mtk_dsi_cphy_timing(struct dsi_regs *dsi_reg, u32 data_rate, + struct mtk_phy_timing *timing) { u32 cycle_time, value; @@ -72,14 +73,14 @@ void mtk_dsi_cphy_timing(u32 data_rate, struct mtk_phy_timing *timing) value = timing->lpx | timing->da_hs_prepare << 8 | timing->da_hs_zero << 16 | timing->da_hs_trail << 24; - write32(&dsi0->dsi_phy_timecon0, value); + write32(&dsi_reg->dsi_phy_timecon0, value); value = timing->ta_go | timing->ta_sure << 8 | timing->ta_get << 16 | timing->da_hs_exit << 24; - write32(&dsi0->dsi_phy_timecon1, value); + write32(&dsi_reg->dsi_phy_timecon1, value); - write32(&dsi0->dsi_cphy_con0, 0x012C0003); - write32(&dsi0->dsi_bllp_wc, 16 * 3); + write32(&dsi_reg->dsi_cphy_con0, 0x012C0003); + write32(&dsi_reg->dsi_bllp_wc, 16 * 3); } void mtk_dsi_cphy_vdo_timing(const u32 lanes,