Hi @Zhiming_Liu
Thanks for the help I did below modification to get clock around 227.8 MHz but the clock is still 1049 MHz.
--- a/drivers/video/nxp/imx/sec_mipi_dsim.c
+++ b/drivers/video/nxp/imx/sec_mipi_dsim.c
@@ -191,7 +191,7 @@
#define PLLCTRL_DPDNSWAP_CLK BIT(25)
#define PLLCTRL_DPDNSWAP_DAT BIT(24)
#define PLLCTRL_PLLEN BIT(23)
-#define PLLCTRL_SET_PMS(x) REG_PUT(x, 19, 1)
+//#define PLLCTRL_SET_PMS(x) REG_PUT(x, 19, 1)
#define PHYTIMING_SET_M_TLPXCTL(x) REG_PUT(x, 15,
#define PHYTIMING_SET_M_THSEXITCTL(x) REG_PUT(x, 7, 0)
@@ -271,6 +271,10 @@
#define MIPI_HBP_PKT_OVERHEAD 6
#define MIPI_HSA_PKT_OVERHEAD 6
+#define PLLCTRL_SET_PMS(x) REG_PUT(x, 18, 0)
+#define PLLCTRL_SET_P(x) REG_PUT(x, 18, 13)
+#define PLLCTRL_SET_M(x) REG_PUT(x, 12, 4)
+#define PLLCTRL_SET_S(x) REG_PUT(x, 2, 1)
/* DSIM PLL configuration from spec:
*
@@ -821,7 +825,7 @@ static int sec_mipi_dsim_bridge_clk_set(struct sec_mipi_dsim *dsim_host)
* Only support '1080p@60Hz' for now,
* add other modes support later
*/
- dsim_host->pms = 0x4210;
+ dsim_host->pms = PLLCTRL_SET_P(5) | PLLCTRL_SET_M(69) | PLLCTRL_SET_S(0);
}
debug("%s: bitclk %llu pixclk %llu\n", __func__, dsim_host->bit_clk, dsim_host->pix_clk);
--- a/arch/arm/mach-imx/imx8m/clock_imx8mm.c
+++ b/arch/arm/mach-imx/imx8m/clock_imx8mm.c
@@ -359,7 +359,7 @@ void enable_display_clk(unsigned char enable)
#ifdef CONFIG_IMX8MN
clock_set_target_val(DISPLAY_DSI_PHY_REF_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(7) |CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV22));
#else
- clock_set_target_val(MIPI_DSI_PHY_REF_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(7) |CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV22));
+ clock_set_target_val(MIPI_DSI_PHY_REF_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(7) |CLK_ROOT_POST_DIV(CLK_ROOT_POST_DIV18));
#endif
clock_enable(CCGR_DISPMIX, true);
} else {
Please verify the changes and let me know what else changes need to be done.
Regards,
Kaushal Verma