How to reduce the delay between bytes in I2C master

I can talk to I2C slave from Jetson Xavier NX through 1MHz I2C clock speed.
But I found there are huge delays between bytes. How can I reduce this delay?

This is the device tree I am using:

	dp_aux_ch3_i2c: i2c@31e0000 {
		#address-cells = <1>;
		#size-cells = <0>;
		iommus = <&smmu TEGRA_SID_GPCDMA_0>;
		compatible = "nvidia,tegra194-i2c";
		reg = <0x0 0x31e0000 0x0 0x100>;
		nvidia,hw-instance-id = <0x8>;
		interrupts = <0 TEGRA194_IRQ_I2C9 0x04>;
		status = "disabled";
		clock-frequency = <1000000>;
		clocks = <&bpmp_clks TEGRA194_CLK_I2C9
			&bpmp_clks TEGRA194_CLK_PLLP_OUT0>;
		clock-names = "div-clk", "parent";
		resets = <&bpmp_resets TEGRA194_RESET_I2C9>;
		reset-names = "i2c";
		dmas = <&gpcdma 31>, <&gpcdma 31>;
		dma-names = "rx", "tx";


Are you using the devkit or custom board for Xavier NX?
What’s your Jetpack release?

What do you mean about the “huge delay”?
Is there any issue if you configure it to 400kHz?

It is a custom board running yocto linux with linux-tegra4.9.
This is the same message on 400kHz:

As you can see the relative delay between bytes is small in this case.

What delay do you mean? Please show the delay clearly in your waveform.

This is the delay I mean:


Sorry that we don’t support and maintain yocto project.
Could you help to verify with L4T?
If you are using K4.9, you could use JP4.6.4 (R32.7.4) to verify.

What is you I2C client device?
Could you share the details of your I2C client device driver or application?
Which API are you using on your I2C client?

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