[U-Boot] iMX6 IPU configuration by EDID

Hi all, I'm trying to configure IPU on a iMX6 based platform by reading EDID from the external monitor.
Everything seem to work fine except for the pixelclock. In particular my monitor has a standard resolution of 1280x1024@60 (108 MHz pixelclock).
When the function ipu_init_sync_panel (file ipu_disp.c) is called it correctly receive 108 MHz as pixelclock. but during the execution of this function it gets rounded to 130 MHz.
I can see that the function calls clk_round_rate to round the clock to 130 MHz but it's not clear for me how it works.
Can someone please tell me how to get the exact pixelclock I would like to achieve? I've carefully read the iMX6 manual but it's not very useful in this case.
Another doubt that I have regards the field "ext_clk" of parameter "ipu_di_signal_cfg_t sig". In this case, is it better to set it or not?
Thanks Regards Luca

Hi Luca,
On 03/17/2015 03:04 AM, Luca Ellero wrote:
Hi all,
I'm trying to configure IPU on a iMX6 based platform by reading EDID from the external monitor.
Everything seem to work fine except for the pixelclock. In particular my monitor has a standard resolution of 1280x1024@60 (108 MHz pixelclock).
When the function ipu_init_sync_panel (file ipu_disp.c) is called it correctly receive 108 MHz as pixelclock. but during the execution of this function it gets rounded to 130 MHz.
I can see that the function calls clk_round_rate to round the clock to 130 MHz but it's not clear for me how it works.
It's been a while since I've looked at this, but I believe there's a hidden fixed clock somewhere in the IPU driver.
http://lists.denx.de/pipermail/u-boot/2014-January/thread.html#170363
Can someone please tell me how to get the exact pixelclock I would like to achieve? I've carefully read the iMX6 manual but it's not very useful in this case.
Another doubt that I have regards the field "ext_clk" of parameter "ipu_di_signal_cfg_t sig". In this case, is it better to set it or not?
I believe this is supposed to be set for HDMI, such that the IPU clock is derived from the HDMI PHY clock and it's best to use the Linux driver as a guide.
Regards,
Eric

On 17/03/2015 15:25, Eric Nelson wrote:
Hi Luca,
On 03/17/2015 03:04 AM, Luca Ellero wrote:
Hi all,
I'm trying to configure IPU on a iMX6 based platform by reading EDID from the external monitor.
Everything seem to work fine except for the pixelclock. In particular my monitor has a standard resolution of 1280x1024@60 (108 MHz pixelclock).
When the function ipu_init_sync_panel (file ipu_disp.c) is called it correctly receive 108 MHz as pixelclock. but during the execution of this function it gets rounded to 130 MHz.
I can see that the function calls clk_round_rate to round the clock to 130 MHz but it's not clear for me how it works.
It's been a while since I've looked at this, but I believe there's a hidden fixed clock somewhere in the IPU driver.
http://lists.denx.de/pipermail/u-boot/2014-January/thread.html#170363
Can someone please tell me how to get the exact pixelclock I would like to achieve? I've carefully read the iMX6 manual but it's not very useful in this case.
Another doubt that I have regards the field "ext_clk" of parameter "ipu_di_signal_cfg_t sig". In this case, is it better to set it or not?
I believe this is supposed to be set for HDMI, such that the IPU clock is derived from the HDMI PHY clock and it's best to use the Linux driver as a guide.
Hi Eric, thank you for your reply. I'll try to investigate the Linux driver then. Kind regards Luca
participants (2)
-
Eric Nelson
-
Luca Ellero