Jetson AGX Xavier I2C4 (0xc250000) has bad voltage levels

This was fixed by increasing the pull down strength of the gen8 i2c pins using the following patch to the DTB:

 .../tegra194-soc/tegra194-soc-base.dtsi          | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi b/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi
index 859e421..d1c3aee 100644
--- a/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi
+++ b/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-base.dtsi
@@ -1762,7 +1762,21 @@
                reg = <0x0 0x2430000 0x0 0x17000
                        0x0 0xc300000 0x0 0x4000>;
                #gpio-range-cells = <3>;
-               status = "disabled";
+               status = "okay";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gen8_i2c_default>;
+
+               gen8_i2c_default: gen8_i2c_blah {
+                       gen8_i2c_scl {
+                               nvidia,pins = "gen8_i2c_scl_pdd1";
+                               nvidia,pull-down-strength = <31>;
+                       };
+                       gen8_i2c_sda {
+                               nvidia,pins = "gen8_i2c_sda_pdd2";
+                               nvidia,pull-down-strength = <31>;
+                       };
+               };
 
                vbus_en0_sfio_tristate_state: vbus_en0_oc_tristate {
                        usb_vbus_en0_pz1 {

Here’s the scope output with the new settings.

1 Like