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
>;
};
Solved! Go to Solution.
Oh ! My screen resolution is not in the support list, but I can fix it like this, it looks like the work is fine.
Hi Li
so was lcd was correctly detected and hdmi driver reported its resolution based
on EDID information. Please try with Demo Images on
It may be debugged using driver sources described in attached Linux Manual.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Since I don't have a sabresd, but my HDMI screen is correct, I can recognize the EDID on my computer and read EDID on my board via i2cdump.
In order to confirm that there is no problem, I also changed the monitor.(Sony Monitor also not OK!)
I compared the latested HDMI driver source, that is the same.
had linux correctly recognized lcd model through edid and reported model and used resolution.
I try to set different U-Boot parameters:
video=mxcfb0:dev=hdmi,640x480@60,if=RGB24,bpp=24 => HDMI Display 640*480,But My HDMI Display 1024*768.
ideo=mxcfb1:dev=hdmi,640x480@60,if=RGB24,bpp=24 => HDMI Not Display anything,LCD Display 800*480 correct ,verify by fbset.
video=mxcfb0:dev=hdmi,640x480@60,if=RGB24,bpp=24 video=mxcfb1:dev=hdmi,640x480@60,if=RGB24,bpp=24 => HDMI Display 640*480,same as the first.