Colibri iMX8 RGB LCD Display using DC0 / Spread Spectrum

Dear Support,

we are currently trying to enable SSC (Spread Spectrum) for our RGB Display on iMX8.

I followed the guidances from below to enable the SSC via SCFW Porting Kit and could successfully build the SCU firmware. I could integrate it into Tezi Image and install it on the device (anyhow I cannot verify the the modified scu firmware is running).

Now from looking at the /sys/kernel/debug/clk/clk_summary I found that RGB clock is not derived from DC0_PLLx but from elcdif_pll (which is not affected by the SSC changes when I am right).

Is it possible to switch LCD clock to be derived from any of the modified PLLs? Can this be done via Device-Tree or also SCU-Firmware?


attached clk_summary output:

clk_summary.txt (33.6 KB)


did you check this one here?

Best Regards,

Matthias Gohlke

Hi @matthias.tx ,
Yes I already did. The main question is about the clock tree, not how to enable the Spread Spectrum.
I could build the new SCU firmware but don’t see any changes.
As far as I understood the SSC will only effect the DC0-PLLs but the RGB clock is not derived from these. That is the point where I want to change the clock tree.

Marco Behr

Hi Matthias,

could you have a look at this topic? Is it possible to route the clocks in such way?

Adding more information about the hardware / software configuration:
Colibri iMX8 QuadXPlus 2GB IT
custom carrier board - using 24bit RGB signals for display interface
Toradex BSP 5 (dunfell branch)

Hello @mbehr,
I was looking through this ticket and I would like to ask you:
What device-tree overlay are you using to enable the RGB interface? I ask because the iMX8X has two separate controllers that can drive the RGB interface, and if I understood the documentation correctly, only one of the controllers can derive the pixel clock from the one that you want (DC0).

I think that to be able to derive your clock from the DC0 PLL you need to be using the display_lcdif device tree node that is present on our colibri-imx8x_parallel-rgb-lvds_overlay.dts instead of the adma_lcdif that’s present on the colibri-imx8x_parallel-rgb_overlay.dts.

I found the information about where the clocks are derived from in the sc_fw_api_qx_b0.pdf document that is part of the imx-scfw-porting-kit provided by NXP. The table that I refer to is in chapter 7.

Hi @mbehr !

Do you have any updates regarding this topic?

Did @rafael.tx’s answer help you?

Best regards,

Hi @rafael.tx , @henrique.tx ,

actually I did not find much time to test around this issue because the feature is not needed anymore at this time. Anyhow in future we might have the same demand again so I still want to understand this topic.

I had a look at the overlays.txt file - the colibri-imx8x_parallel-rgb-lvds_overlay.dts is used already.

But when checking the corresponding nodes under /proc/device-tree/:

$ cat display\@disp1/status

$ cat bus\@5a180000/lcdif\@5a180000/status

I can see that display_lcdif is disabled but adma_lcdif is enabled.

So it looks like the device tree overlay you suggested is also using adma_lcdif?

Hello @mbehr,

Could you please:

  1. Paste the content of the overlays.txt file?
  2. Share the boot log of the uboot that loads the device tree overlay (You need a serial connection to access this during the boot)?