HDMI CEC not working in IMX6Q timing is not correct

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

HDMI CEC not working in IMX6Q timing is not correct

Jump to solution
2,407 Views
agnel_terry
Contributor III

HI

I have a custom board with IMX6Q , in which I am trying to use the HDMI CEC

Bellow mentioned are my configurations :

Device tree

pinctrl_hdmi_cec: hdmicecgrp {
            fsl,pins = <
                MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x108b0
            >;
        };

&hdmi_cec {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_hdmi_cec>;
    status = "okay";
};

Kernel version : 4.9.123

Application : trying NXP unit test app  " mxc_cec_test.c

When probed I see the data in the CEC line , but no response from the TV, On further debugging found the the timing between the CMD pulse is 2.7ms which is violating the CEC spec of 3.6ms -3.8ms.

Any help why the data is not in the correct timing.

I tried the above test with a different custom board which has IMX6SOLO , Same configuration, same Kernel,  The CEC works with IMX6SOLO, I am able to query the CEC version of the same TV used with IMX6Q board

surprisingly the timing here matches CEC SPEC, which is 3.6ms.

Silicon version of the IMX6Q  : 1.5

Can anyone help me with this issue,

Thanks and regards

Terry

Labels (1)
0 Kudos
Reply
1 Solution
2,321 Views
igorpadykov
NXP Employee
NXP Employee

Hi Terry

>with this I conclude that my board needs external 32khz crystal to make CEC work.

>if this finding correct ? could you please provide your feedback on this finding.

yes this is correct understanding.

Best regards
igor

View solution in original post

0 Kudos
Reply
7 Replies
2,321 Views
igorpadykov
NXP Employee
NXP Employee

Hi Terry

as described on below link Kernel 4.9.123 does not support i.MX6S/Q

so it may not work properly

Embedded Linux for i.MX Applications Processors | NXP 

For i.MX6S may be recommended ti check sect.5 Enabling Solo Emulation

Linux Guide included in  Documentation

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply
2,321 Views
agnel_terry
Contributor III

HI Igor,

Thank you for the reply, I am not using YOCTO, instead using Build root with kernel version 4.9.123.

We started shipping the product with IMX6Q + 4.9.123 , other functionality  we require work except the HDMI CEC,

1. I added maxcpus=1 in the uboot , as a cmdline to Kernel, still its not working.

2. Is there any other help you can provide to make it work on the kernel version 4.9.123 for IMX6Q.

Thanks and Regards

Terry

0 Kudos
Reply
2,321 Views
igorpadykov
NXP Employee
NXP Employee

Hi Terry

one can try unit test

mxc_cec_test.c\mxc_cec_test\test - imx-test - i.MX Driver Test Application Software 

for linux versions not officially supported by nxp may be recommended

to proceed with extended support of 

Commercial Support and Engineering Services | NXP 

 

Best regards
igor

0 Kudos
Reply
2,321 Views
agnel_terry
Contributor III

HI Igor,

Thanks again , on the link you had shared for the mxc_cec_test.c , say its not supported for the IMX6Q,  Since the  mxc_cec_test uses the IMX-lib package the version of the imx-lib i use is IMX_LIB_VERSION = 5.4

I have the following questions with the information you provided :

1. Was the CEC issue I face with the timing is it related to the Kernel version I use ?

2. Or is it with the IMX-lib version I use.

Is there any information related to this which you can provide. Or could you please point me a direct to look in the code.

Thanks

Terry

0 Kudos
Reply
2,321 Views
agnel_terry
Contributor III

HI Igor,

I tried porting the kernel version 4.9.88.2.0.ga to my custom board and I still get the same timing issue.

As I mentioned in my previous posts , I use buildroot and not yocto, so is there any additional firmware-imx packages needed from the yocto build for me to fix the timing issue ?

The current version of firmware-imx  I use is 8.1.1,

Thanks and regards

Terry

0 Kudos
Reply
2,321 Views
agnel_terry
Contributor III

HI @Igor,

I did some  debugging at my end along with a sabresd eval board and found this bellow info.

EVAL baord works for CEC because it uses an external 32khz crystal connected to the RTC_XTALI, which will be used by the low frequency clk (ckil_sync_clk_root).

My custom board didn't work because it was designed to use the internal clk oscillator , further investigation found an errata related internal oscillator not precise. (ERR007926 - ROM: 32 kHz internal oscillator timing inaccuracy may affect).

I tested by removing the external crystal from EVAL board , once removed the sabresd board also failed with the timing similar to my custom board.

with this I conclude that my board needs external 32khz crystal to make CEC work. if this finding correct ? could you please provide your feedback on this finding.

Thanks and regards

Terry@

0 Kudos
Reply
2,322 Views
igorpadykov
NXP Employee
NXP Employee

Hi Terry

>with this I conclude that my board needs external 32khz crystal to make CEC work.

>if this finding correct ? could you please provide your feedback on this finding.

yes this is correct understanding.

Best regards
igor

0 Kudos
Reply