Xavier NX : Read EDID failed

Hi,
I am using a Jetson Xavier NX emmc model, i am trying to get the edid of the display i connected my xavier nx with, however i am getting this error always,

[ 1185.835541] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.841552] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.847917] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.853853] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.859630] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.866105] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.871965] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.878108] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.883831] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.889864] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.896141] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.902058] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.908230] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.914098] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.920287] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.926351] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.932375] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.938387] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.944179] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.950190] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.956638] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.962349] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.968581] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.974663] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.980701] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.986474] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.992724] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1185.998499] tegra-i2c 3190000.i2c: un-recovered arbitration lost
[ 1186.001239] tegradc 15200000.display: hdmi: edid read failed

I tried using i2cdetect -y -r 3

then i got this error

[ 3154.032367] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.140334] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.244419] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.348328] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.452412] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.556433] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.664354] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.772298] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.880308] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3154.988351] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.100525] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.204346] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.312404] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.416416] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.524373] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.632403] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.736388] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.840387] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3155.948339] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.052386] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.156491] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.264323] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.372333] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.476382] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.580329] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.688454] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.796321] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3156.904354] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.008408] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.112393] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.216325] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.324353] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.432327] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.540357] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.648327] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.752324] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.860375] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3157.964395] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.068386] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.172321] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.280316] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.388372] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.492374] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.596350] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.704338] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.812314] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3158.920376] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.024377] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.132373] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.236330] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.344381] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.448322] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.556386] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.664465] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.768431] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.872379] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3159.984377] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.088352] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.200428] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.304406] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.416395] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.520448] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.624441] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.732328] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.836433] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3160.940438] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.048326] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.152330] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.260365] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.364332] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.472345] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.580377] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.688390] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.800388] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3161.904395] tegra-i2c 3190000.i2c: I2C transfer timed out
[ 3162.008380] tegra-i2c 3190000.i2c: I2C transfer timed out

my dtsi file section is like tegra194-soc-i2c.dtsi

dp_aux_ch1_i2c: i2c@3190000 { #address-cells = <1>; #size-cells = <0>; iommus = <&smmu TEGRA_SID_GPCDMA_0>; dma-coherent; compatible = “nvidia,tegra194-i2c”; reg = <0x0 0x3190000 0x0 0x100>; nvidia,hw-instance-id = <0x3>; interrupts = <0 TEGRA194_IRQ_I2C4 0x04>; status = “disabled”; clock-frequency = <100000>; clocks = <&bpmp_clks TEGRA194_CLK_I2C4 &bpmp_clks TEGRA194_CLK_PLLP_OUT0>; clock-names = “div-clk”, “parent”; resets = <&bpmp_resets TEGRA194_RESET_I2C4>; reset-names = “i2c”; dmas = <&gpcdma 26>, <&gpcdma 26>; dma-names = “rx”, “tx”; };

do we need to add this sda-gpio and scl-gpio? from the pinmux configuration table it is not specified

Edit Table

DP1_AUX_P100DP_AUX_CH1_PE52unused_DP_AUX_CH1_PDP_AUX_CH1_PI2C4_CLKDP1_AUX_N98DP_AUX_CH1_NF52unused_DP_AUX_CH1_NDP_AUX_CH1_NI2C4_DAT

Please help me to read edid here in jetson xavier nx.

Regards,
Jai Vishnu M

​

I am not sure why you are doing this.

Basically the display driver will do this work and you shall not configure i2c device tree there.
Instead, you should configure the device tree for display.

Hi WayneWWW,

Thanks for the reply.

Can you point me to which node you are referring for hdmi display. My main concern is that edid is not getting read and i2c errors are popping up at this instance.

Regards,
Jai Vishnu M

Basically similar to such device tree change but this time you should use HDMI

Hi WayneWWW,

Thanks for the reply.

I assume you’re referring to tegra194-p3509-disp.dtsi
I haven’t made any changes in head0 or head1. Both are enabled in device tree.

                                                                        
&head0 {                                                                
    status = "okay";                                                    
    nvidia,fb-bpp = <32>;                                               
    nvidia,fbmem-size = <265420800>; /* 8K (7680*4320) 32bpp double buffered */
    nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;                         
    win-mask = <0x7>;                                                   
    nvidia,fb-win = <0>;                                                
    nvidia,dc-connector = <&sor1>;                                      
    nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;                          
    avdd_hdmi-supply = <&p3668_spmic_sd0>; /* 1v0 */                    
    avdd_hdmi_pll-supply = <&p3668_spmic_sd1>; /* 1v8 */                
    vdd_hdmi_5v0-supply = <&p3509_vdd_hdmi_5v0>; /* 5v0 */              
};                                                                      
                                                                        
&head1 {                                                                
    status = "okay";                                                    
    nvidia,fb-bpp = <32>;                                               
    nvidia,fbmem-size = <265420800>; /* 8K (7680*4320) 32bpp double buffered */
    nvidia,fb-flags = <TEGRA_FB_FLIP_ON_PROBE>;                         
    win-mask = <0x38>;                                                  
    nvidia,fb-win = <3>;                                                
    nvidia,dc-connector = <&sor0>;                                      
    nvidia,dc-flags = <TEGRA_DC_FLAG_ENABLED>;                          
    vdd-dp-pwr-supply = <&p3668_spmic_sd0>;                             
    avdd-dp-pll-supply = <&p3668_spmic_sd1>;                            
    vdd-edp-sec-mode-supply = <&battery_reg>;                           
    vdd-dp-pad-supply = <&battery_reg>;                                 
    vdd_hdmi_5v0-supply = <&p3509_vdd_hdmi_5v0>;                        
};                                                                      
                                                                        
&sor0 {                                                                 
    status = "okay";                                                    
    nvidia,active-panel = <&sor0_dp_display>;                           
    nvidia,sor-hdcp-not-supported;                                      
};                                                                      
                                                                        
&sor0_dp_display {                                                      
    status = "okay";                                                    
    nvidia,is_ext_dp_panel = <1>;                                       
};                                                                      
                                                                        
&sor1 {                                                                 
    status = "okay";                                                    
    nvidia,active-panel = <&sor1_hdmi_display>;                         
    nvidia,sor-hdcp-not-supported;                                      
};                                                                      
                                                                        
&sor1_hdmi_display {                                                    
    status = "okay";                                                    
    disp-default-out {                                                  
        nvidia,out-flags = <TEGRA_DC_OUT_HOTPLUG_LOW>;                  
    };                                                                  
};                                                                      
                                                                        
&dpaux0 {                                                               
    status = "okay";                                                    
};                                                                      
                                                                        
&dpaux1 {                                                               
    status = "okay";                                                    
};                                                                      
                                                                        
&tegra_cec {                                                            
    status = "okay";                                                    
};                                                                      

Here, to add some details
My Jetpack Version: 5.1.1

Problem with HDMI: working always using fallback edid
[ 8.614547] tegradc 15200000.display: hdmi: edid read failed
[ 8.631920] tegradc 15200000.display: hdmi: using fallback edid

I need to fetch the EDID from the monitor connected. my doubt is like how to enable the HDMI in device tree in a way that EDID is fetched from the HDMI connected monitor.

Regards,
Jai Vishnu M

Hi,

Actually you should share your schematic… No one can really know what is going on from just such partial info you shared.

The default device tree is only for NV devkit. We don’t know if it can work on your custom board, that is why you should share schematic…

Also, wrong hardware design may lead to i2c not able to read.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.