imx8mm MIPI DSI clock dividers

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8mm MIPI DSI clock dividers

Jump to solution
1,139 Views
steveschefter
Contributor III

Hi.

There are two different registers which have settings for the P, M and S dividers associated with the MIPI DSI interface PLL:

GPR_MIPI_M_PLLPMS (part of DISPLAY_BLK_CTRL at base address 32E2_8000h) has PMS_P, PMS_M, PMS_S.

DSI_PLLCTRL (part of MIPI_DSI at base address 31E1_0000h) has PMS.

First question: how do these two registers relate to one another?

 

I would like to use spread spectrum with the display interface.  The Linux driver drivers/gpu/drm/bridge/sec-dsim.c uses the second of the two registers indicated above to set PMS.  However, the SSCG_EN bit to enable spread spectrum is part of GPR_MIPI_M_PLLCTL_LOW.

Second question: If setting the SSCG_EN bit, do the PLL divisors have to be set up using the DISPLAY_BLK_CTRL block, or can SSCG_EN be set in GPR_MIPI_M_PLLCTL_LOW while the above driver sets up the rest of the PLL?

Or more generally, how does one initialize the PLL when using spread spectrum?

Thanks,
    Steve

Labels (1)
0 Kudos
1 Solution
1,113 Views
steveschefter
Contributor III

For P, M, S, we stuck with DSI_PLLCTRL as is written by the Linux driver drivers/gpu/drm/bridge/sec-dsim.c.

For the spread spectrum part we found that using the GPR_MIPI_M_PLLCTL_LOW and _HIGH registers does not work.  No dither was observed.  However, one of the other guys figured out that using DSI_PLLCTRL1 and DSI_PLLCTRL2 (32E1_0098, 32E1_009C) does work.  The RM does not detail the bits in those registers, but using the arrangement described for GPR_MIPI_M_PLLCTL_LOW and GPR_MIPI_M_PLLCTL_HIGH worked.

View solution in original post

0 Kudos
2 Replies
1,114 Views
steveschefter
Contributor III

For P, M, S, we stuck with DSI_PLLCTRL as is written by the Linux driver drivers/gpu/drm/bridge/sec-dsim.c.

For the spread spectrum part we found that using the GPR_MIPI_M_PLLCTL_LOW and _HIGH registers does not work.  No dither was observed.  However, one of the other guys figured out that using DSI_PLLCTRL1 and DSI_PLLCTRL2 (32E1_0098, 32E1_009C) does work.  The RM does not detail the bits in those registers, but using the arrangement described for GPR_MIPI_M_PLLCTL_LOW and GPR_MIPI_M_PLLCTL_HIGH worked.

0 Kudos
1,119 Views
joanxie
NXP TechSupport
NXP TechSupport

if you need set P, M,S, set the GPR register, I mean GPR_MIPI_M_PLLPMS

0 Kudos