Hi All,
I am working on customer imx6q board and getting issue with HDMI.
I am getting HDMI panel detection kernel log but no display on HDMI panel.
I am using rootfs which i have created by busybox.
So my question, Is there any need of "mxc hdmi cec" lib or application in user space to enable HDMI in kernel ?
or HDMI display should start by default ?
Kernel Logs:---------------------------------
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver hdmi
mxc_hdmi mxc_hdmi: Detected HDMI controller 0x13:0xa:0xa0:0xc1
fbcvt: 1920x1080@60: CVT Name - 2.073M9
imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
mxc_sdc_fb mxc_sdc_fb.1: Can't get fb option for mxcfb1!
mxc_sdc_fb mxc_sdc_fb.2: Can't get fb option for mxcfb2!
mxc_sdc_fb mxc_sdc_fb.3: Can't get fb option for mxcfb3!
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
mxc_hdmi mxc_hdmi: mxc_hdmi_set_mode: setting to default=1920x1080M@60 bpp=16
fbcvt: 1920x1080@60: CVT Name - 2.073M9
mxc_hdmi mxc_hdmi: mxc_hdmi_set_mode: New video mode
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
console [ttymxc1] enabled, bootconsole disabled
console [ttymxc1] enabled, bootconsole disabled
loop: module loaded
解決済! 解決策の投稿を見る。
Hi Jimmychan,
I have just found that:-
TMDS data/clk lines from imx6 should be directly connected to HDMI port and Corresponding TMDS data/clk lines of CM2020 should be connected with imx6 HDMI TMDS data lines to provide ESD protection etc as below schematic
Take one example TDMI_D1+ from imx6 is connected to pin 7, then pin 32 of CM2020 and then connected to HDMI Port. Sabre SD board do like that.
But in my board TDMI_D1+ from imx6 is connected to pin 7 of CM2020 only and pin 32 of CM2020 is connected to HDMI Port. Means there is no connection from pin 7 to pin 32.
Means TDMI data/clk lines from imx6 are not connected to HDMI port so there will be no HDMI data display.
Am I right in this case? Could you please verify?
You can find data sheet of CM2020 from link. Sabre Sd use same Chip.
http://www.onsemi.com/pub_link/Collateral/CM2020-01TR-D.PDF
I have some observation
1) HDMI display is working fine with sabre-sd and sabre-lite with my kernel but not on my board (My board HDMI hw is based on sabre-sd hw but missing 100om resistance and 0.1uF capacitor for SHELL1, SHELL2, SHELL3 and SHELL4 are there to give ground)
2) I disabled pad mux for CEC line and I2C and in this case sabre-sd board works for HDMI display fine also
a) Means now HDMI depends on HDMI TMDS data only.
3) I have checked in sabre-sd board there are 100om resistance and 0.1uF capacitor for SHELL1, SHELL2, SHELL3 and SHELL4 are there to give ground (not sure why this is for ) ?. this hw thing is not in my board. Is it may effect ?
4) TDMS_GND of CM2020 are internally connected with ground but these are externally ground also for sabre-sd baord. is it may effect ?
5) HDMI TMDS pins are dedicated to HDMI display only and there is no need of pin mux as these pins are by default configured ?
6) Is this possible HDMI display can work with HDMI TMDS data lines only , no CEC line and no I2C lines as it is working on sabre-sd case ? (Means i just changed the pin mux for CEC and I2C lines).
Sorry if any query is not clear.
Hi Anil Kumar
Please confirm this point
6) Is this possible HDMI display can work with HDMI TMDS data lines only , no CEC line and no I2C lines as it is working on sabre-sd case ? (Means i just changed the pin mux for CEC and I2C lines).
I guessed, it worked well without CEC and I2C line.
From the SDP schematic (SPF-27392_C3.pdf), there is HDMI_HPD and HDMI_CEC_IN. When you plug the HDMI cable, please check the status of these two pins. What is the voltage of HDMI_HPD?
The voltage level of HDMI_CEC_IN should be changed. it will trigger the interrupt and then the HDMI signal will be came out.
It is better to add the 100om resistance and 0.1uF capacitor as they are the circuit protection between chassis and digital GND if there may has any improper voltage input when connecting the cable or touching the SHELL.
Hi Jimmychan,
I have just found that:-
TMDS data/clk lines from imx6 should be directly connected to HDMI port and Corresponding TMDS data/clk lines of CM2020 should be connected with imx6 HDMI TMDS data lines to provide ESD protection etc as below schematic
Take one example TDMI_D1+ from imx6 is connected to pin 7, then pin 32 of CM2020 and then connected to HDMI Port. Sabre SD board do like that.
But in my board TDMI_D1+ from imx6 is connected to pin 7 of CM2020 only and pin 32 of CM2020 is connected to HDMI Port. Means there is no connection from pin 7 to pin 32.
Means TDMI data/clk lines from imx6 are not connected to HDMI port so there will be no HDMI data display.
Am I right in this case? Could you please verify?
You can find data sheet of CM2020 from link. Sabre Sd use same Chip.
http://www.onsemi.com/pub_link/Collateral/CM2020-01TR-D.PDF
Hi All,
HDMI Display issue has fixed. Issue was in HW as i posted in my last comment. Done correction in CM2020 HW layout as it data sheets say.
Thanks all of you
Anil
jimmychan can you continue the follow up on this case?
Checked resolution hdmi u-boot?
My configuration u-boot is:
vid_dev0=hdmi,1280x960M@75,if=RGB24
i passing it by boot arg as
video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24
Hi, tryed others resolutions?
Example:
setenv vid_dev0 hdmi,1920x1080P@60,if=RGB24
setenv vid_dev0 hdmi,1920x1080p@60,if=RGB24
setenv vid_dev0 hdmi,1920x1080i@75,if=RGB24
setenv vid_dev0 hdmi,1920x1080i@60,if=RGB24
setenv vid_dev0 hdmi,1920x1080M@75,if=RGB24
Remeber... execute saveenv to change resolution and reboot. :-)
No update from customer
have you check the cec signal?
are you using different type of hdmi connector?
have you try it on other hdmi display?
CEC signal is required ? I thing this signal is used to control multiple HDMI display.
and no need to implement but hw must be there for CEC
i tried already
'echo 0 > /sys/class/graphics/fb0/blank'
No result.
i am suspecting on cec driver in kernel because it need control by cec lib and cec application in user space to enable HDMI thing but i do not have cec lib and cec application in user space. Is it may be the issue ?
I don't think you need anything in user space for it, as my HDMI monitor fires up while kernel is still booting - right after the driver is loaded. And loading looks pretty much the same like yours.
I would also edit config files and kill all the unused framebuffers, as you've already disabled the output to them in u-boot. But this is unlikely to help. Maybe you have a HW fault - The TMDS lines are auto-sensing, so in general hot-plug means nothing for detection - TMDS lines should sense the proper termination impedance on their ends. Otherwise HDMI will not fire up even if there is a valid hotplug.
are you booting with android fs ?
No, just bare linux.
yes it is custom board and using HDMI protection IC CM2020 as like sabre sd
Hmm... I see from the datasheet that TMDS lines are just clamped and go through - the level shifting is done only for control signals. Which means that this cannot be culprit.
If there's no more circuitry in path of TMDS lines, that means they are properly terminated at the other end. I would try the following. When system boots up, try executing 'echo 0 > /sys/class/graphics/fb0/blank'. Maybe it's blanked for some reason.
Yes plugging/unplugging HDMI cable is working fine and getting EDID data also
Ok, EDID works over i2c, it has nothing to do with hi-speed stuff. Is this a custom board? Do you maybe have some level shifters or similar on TMDS lines?