Yes, the edid is different because it fails to read edid from your monitor when using your carrier board.
What is the hardware difference between your board and devkit in this part?
[ 4.498614] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.502714] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.506816] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.510909] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.515027] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.519125] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.523234] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.527317] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.531441] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.535537] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.539631] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.543726] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.547821] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.551913] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.556023] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.560119] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.564213] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.568330] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.572434] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.576532] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.580630] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.584738] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.588833] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.592928] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.597019] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.601115] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.605215] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.609316] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.613416] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.617517] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.621622] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.625717] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.629814] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.633910] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.638001] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.642099] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.646214] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.650345] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.654446] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.658560] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.662677] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.666779] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.670904] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.674977] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.679086] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.683176] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.687275] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.691371] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.695481] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.699575] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.703670] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.707759] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.711859] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.715962] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.720063] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.724155] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.728252] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.732352] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.736448] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.740543] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.744647] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.748743] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.752838] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.756949] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.761046] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.765140] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.769237] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.773336] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.777432] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.781529] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.785635] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.789736] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.793831] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.793923] random: nonblocking pool is initialized
[ 4.797928] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.802032] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.806127] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.810312] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.814383] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.818447] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.822544] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.826657] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.830763] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.834872] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.838965] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.843057] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.847164] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.851261] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.855353] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.859462] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.863555] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.867647] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.871743] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.875834] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.879926] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.884024] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.888124] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.892233] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.896343] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.900441] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[ 4.901103] tegradc 15210000.nvdisplay: hdmi: edid read failed
[ 4.901159] tegradc 15210000.nvdisplay: hdmi: using fallback edid
tpd12s521 will work as ESD as well as level shifter also.
please note we are getting proper edid,hdmi-0 configuration in xorg.log,tegradc log in dmesg log after doing rework on i2c lane. which are same as devkit
now logs are exactly same as devkit log.
hardware design is also same only difference is that we have hdmi 1.4 where as on Devkit it is hdmi 2.0
is there any way to downgrade from 2.0 to 1.4 from software side ???
According to previous discussion, your hardware design does not match our OEM design guide. Could you confirm that first?
Also, what does that mean you have a hdmi1.4 port here? Sorry in advanced I am not a hardware guy, so need some explanations.
Even on devkit, the node “/sys/kernel/debug/tegra_hdmi/hotplug” seems not give the hpd state. Thus, to debug your issue from sw, I think dumping dmesg should be sufficient. Hotplug should trigger the driver to print log in dmesg. If it does not print, then I would think it is a hardware issue.
we have followed OEM design guide, attached schematic.
hdmi 1.4 port means, in our design the hdmi lines coming out from tx2i module are connected to hdmi 1.4 connector port while in case of devkit those lines are connected to hdmi 2.0 connector port.
we tested the hot-plug detection status from “/sys/kernel/debug/tegra_hdmi/hotplug” on devkit by removing and connecting the hdmi cable & we observed the toggling of states while on our carrier card this behavior not observed.
Did you measure the HPD signal close to HDMI connector? Is there a level change on it? If you can see the level change, is it same high/low to devkit? If not, you need to change the value of hotplug detection in dts.
Also I don’t see the Rpd and beads to ground on data lines in your schematic.
UPDATE: I found that the HPD was active low, and if we just used TPD12S016 as is, it performs logic level translation perfectly but it is active high. I did some rework to make it active low and it works now.