Need to delay I2C data line by 500ns

Hi,

I’m using Orin NX and I would like to add delay to the SDA rising and falling edge wrt clock lines(SCL).

I tried adding following device-tree overlay and I’m unable to see the difference in timings when probed through oscilloscope.

fragment-i2c@0 {
		target = <&cam_i2c>;
		__overlay__ {
			clock-frequency = <100000>;
			status = "okay";
			i2c-sda-falling-time-ns = <800>;
            i2c-sda-hold-time-ns = <400>;
            i2c-sda-rising-time-ns = <1300>;
		};
	};

Could anyone please provide me with pointers if I’m going in the right direction or is changing of the i2c timings are not supported.

Any help on this topic is highly appreciated.

Don’t looks like any driver reference to this property.

Maybe consider by HW like add proper pull-pu resistor for it.

Thank you @ShaneCCC for your response.
I’m using the devkit here, I’m not sure if we can add any pull up resistor or make any hardware change.

I’ve made this change in a camera driver devicetree overlay. I would like to change the i2c timings by making changes in the software, any leads on this would be appreciated.

Do you check the TRM if able to adjust by REG config?

I was unable to find any devicetree related configuration there. Could you please suggest what change we can do in software, so that we can delay the SDA line by 1 microsecond.

I don’t think we can’t increase the I2C rising time by 500ns by just tuning PAD or timing register.

If the I2C is open-drain pad then I believe the rising time depends on the pull up resistor value.

We are trying to increase the delay between edges on SCL and SDA. The issue is that if the SDA edge is very close to an SCL falling edge then the receiver sometimes sees the SDA edge first and assumes it is a stop/start condition. By moving the SDA edge away from a falling edge of SCL we will be able to make the I2C comms more reliable.

Changing a pullup value will not do this since that changes the rise time of the edge which will not be enough to change the position significantly.