AnsweredAssumed Answered

i.MX6Q HDMI can't trigger interrupt

Question asked by Li Tater on May 29, 2018
Latest reply on May 29, 2018 by Li Tater

1) Motherboard is my own design and layout, I tested the HDMI HDP pin can receive 3.3V high signal. The screen is no problem, I have tested the screen on the Raspberry Pi and the computer.
2) source code from Yocto (https://source.codeaurora.org/external/imx/linux-imx.git version: c27010d99a3d91703ea2d1a3f9630a9dedc3f86f From:./meta-fsl-bsp-release/imx/meta-bsp/recipes-kernel/linux/linux-imx_4.9.11.bb fsl-arm-yocto-bsp.git - i.MX Linux BSP Release Yocto Project manifests ), LCD can display, HDMI is temporarily not working properly.check /proc/interrupts tell me zero interrupt trigger times.
3) When I check /sys/devices/soc0/soc/20e0000.hdmi_video/cable_state, always show plugout
4) HDMI.PHY_STAT0.HPD check, found to be 1 when plugin screen, 0 when plugout.
5) HDMI.IH_PHY_STAT0.HDP check, always 0.
6) HDMI.IH_MUTE_PHY_STAT0.HDP check is always 1, write 0 can't trigger the interrupt.
7) HDMI.IH_MUTE is always 0x00
8) HDMI.PHY_MASK0.HPD is always 1, write 0 is not useful.

 

My design:

 

 

My Kernel Log:

 

[ 0.550486] mxc_hdmi 20e0000.hdmi_video: hdcp disable
[ 0.550709] 20e0000.hdmi_video supply HDMI not found, using dummy regulator
[ 0.690810] mxc_hdmi 20e0000.hdmi_video: mxc_hdmi_disp_init
[ 0.690828] mxc_hdmi 20e0000.hdmi_video: mxc_hdmi_disp_init - default mode (null) bpp=24
[ 0.690894] mxc_hdmi 20e0000.hdmi_video: Enabled HDMI clocks
[ 0.690907] mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
[ 0.691039] mxc_hdmi 20e0000.hdmi_video: mxc_hdmi_disp_init exit
[ 0.691049] mxc_sdc_fb fb@1: registered mxc display driver hdmi
[ 2.225238] mxc_hdmi_cec soc:hdmi_cec@00120000: HDMI CEC initialized
[ 3.888591] fsl-hdmi-dai soc:hdmi_audio@00120000: failed to probe. Load HDMI-video first.
[ 3.895505] fsl-hdmi-dai: probe of soc:hdmi_audio@00120000 failed with error -12
[ 3.904789] imx-audio-hdmi sound-hdmi: initialize HDMI-audio failed. load HDMI-video first!

 

My dts Configure:

 

aliases {
mxcfb0 = &mxcfb1;
mxcfb1 = &mxcfb2;
};

 

mxcfb2: fb@1 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "hdmi";
interface_pix_fmt = "RGB24";
default_bpp = <24>;
int_clk = <0>;
late_init = <0>;
status = "okay";

};

 

&dcic1 {
dcic_id = <0>;
dcic_mux = "dcic-hdmi";
status = "okay";
};

 

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

&hdmi_core {
ipu_id = <0>;
disp_id = <0>;
status = "okay";
};

 

&hdmi_video {
fsl,phy_reg_vlev = <0x0294>;
fsl,phy_reg_cksymtx = <0x800d>;
status = "okay";
};

 

&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";

hdmi_edid: edid@50 {
compatible = "fsl,imx6-hdmi-i2c";
reg = <0x50>;
};
};

 

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

pinctrl_hdmi_hdcp: hdmihdcpgrp {
fsl,pins = <
MX6QDL_PAD_KEY_COL3__HDMI_TX_DDC_SCL 0x4001b8b1
MX6QDL_PAD_KEY_ROW3__HDMI_TX_DDC_SDA 0x4001b8b1
>;
};

Outcomes