(I think my previous post was marked as spam and got stuck in the filter, so I will try to post again)
Hello,
I am attempting to run an ADV7535 HDMI bridge with an i.mx 8m mini processor. I am using the i.MX Linux kernel code base, specifically branch imx_5.4.47_2.2.0.
I have been attempting to get the HDMI to display a resolution of 640x480p 60Hz, but have encountered difficulties with this. I traced the source of the issue to the adv7511_drv.c driver file in the linux source code (path is root/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c). That file has an array of valid_clocks, and if the desired pixel clock is not in that array, the driver will not output the requested resolution. It turns out that the pixel clock for 640x480p 60Hz is not on that list, which is causing my issues.
The addition of this array of "valid clocks" appears to be tied to internal NXP ticket MLK-21958. I also found this forum post that talks about applying the patch: https://community.nxp.com/t5/i-MX-Processors/LVDS-panel-flicker-issues-on-imx8mq/m-p/947267. However, the restriction of clocks is now causing my issue. Can someone explain what issue this was solving? Given this new restriction of "valid clocks", is there a recommended way to get lower resolutions?
I also made a post about this on the analog forums: ez [dot] analog [dot] com/linux-software-drivers/f/q-a/562332/adv7511_drv-c-valid-clocks/ .
you need to add new pll clock in the "imx_pll1443x_tbl" from
"https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/clk/imx/clk-pll14xx.c?h=lf-5.15.y"
then assign this new clock to the adv7511 in the dtsi file