RT685 i3c port with Zephyr - driver with i2c devices dies after minutes of use

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT685 i3c port with Zephyr - driver with i2c devices dies after minutes of use

Jump to solution
6,498 Views
galenc
Contributor II

I have a system based around the MIMXRT685-EVK running Zephyr.  I have the i3c port configured and interfacing with a few i2c devices.  They all work for some time, but depending of frequency of communication the bus/driver will just die after a few minutes.

I experienced this on the evk and on our custom board.  And similarly with all the peripherals on the bus or just a single one. 

here you can see the scope (yellow SDA, green SCL, violet device interrupt) it just stops trying any comms on the bus when it should be servicing the interrupt:logic outputlogic output

It happens for this device which is imu - lsm6dso (a zephyr built in driver), sampling at higher frequency from interrupts. Even communicating with another device at slower frequency it will stay up longer but eventually crash (maybe 5-10 minutes with a polling message every second).

Here is the warnings we saw from the i3c_mcux driver just before the bus goes dead.  the errors are failed attempts to read from device registers (the bus in the scope has no activity from subsequent attempts, shown in red as errors):
warning from i3c_mcux before bus crashwarning from i3c_mcux before bus crash

Has anyone seen any issues similar with the i3c bus and zephyr implementation specifically?

our whole bus is essentially i2c devices we don't need the features of i3c (we are using it because we are using all the other ports) if there is a way it might be more stable if we "force" it into i2c mode all the time? 

It don't know if there is a bug in the driver or some way to better configure it?  we are using it pretty much as it came.  see device tree sections:

 

 

 

 

&i3c0 {
	status = "okay";

	i2c-scl-hz = <400000>;
	i3c-scl-hz = <400000>;
	i3c-od-scl-hz = <400000>;

	clk-divider = <12>;
	clk-divider-slow = <1>;
	clk-divider-tc = <1>;

	pinctrl-0 = <&pinmux_i3c>;
	pinctrl-names = "default";

	lsm6dso0: lsm6dso@6a0000000000000050 {
		status = "okay";
		compatible = "st,lsm6dso";
		reg = <0x6a 0x00 0x50>;
		irq-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
	};
};
	pinmux_i3c: pinmux_i3c {
		group0 {
			pinmux = <I3C0_SCL_PIO2_29>,
					 <I3C0_SDA_PIO2_30>;
			input-enable;
			slew-rate = "slow";
			drive-strength = "high";
		};

		group1 {
			pinmux = <I3C0_PUR_PIO2_31>;
			slew-rate = "normal";
			drive-strength = "normal";
		};
	};

 

 

 

 


Any help is much appreciated.

Thanks, Galen 

Labels (1)
Tags (2)
0 Kudos
Reply
1 Solution
5,495 Views
Dezheng_Tang
NXP Employee
NXP Employee

Glad your I2C bitbang recover bus works. On the master side, several things you should check:

(1) PIN MUX needs to set back to I3C SCL and SDA lines.

(2) Make sure both MSTATUS and MERRWARN registers are reset to default state. 

(3) In our SDK code, we have a module called I3C_MasterTransferAbort() to abort the master transfer. Please take a close look on this. I don't know why you would stay in NORMACK state even after you have issued STOP request. After you emit stop, you should wait for CTRL DONE. Once CTRL DONE is seen, it should be back to IDLE state.

(4) If (2) and (3) don't work, I don't know what else you can do, maybe reset I3C by writing 1 to I3C0 bit in RSTCTL1_PRSTCTL2. You may want to check all the I3C registers, especially, MCONFIG and make sure they are the same before and after resetting I3C bit.  

 

View solution in original post

0 Kudos
Reply
25 Replies
1,332 Views
galenc
Contributor II
Yes, I agree this is a good idea for debug. I will set this up. I will be traveling for the next two weeks (starting tomorrow) but will report my results when I return.

Thanks for your continued help on this issue.
0 Kudos
Reply
1,354 Views
Dezheng_Tang
NXP Employee
NXP Employee

I tried to isolate the problem if Zephyr OS causes the problem or not and have run a standalone test on the I2C device using I3C controller. Here is a what I have done: on RT685 EVK board, there is a codec WM8904 on the I3C bus, if you use any audio related SDK example, this codec will be initialized using I3C controller (over I2C), I made minor change to do register reading periodically, monitor the bus and have never seen timeout happened unless you force it into one of these conditions below. It doesn't look our I3C controller could time out easily unless the STALL period is > 100us.

TIMEOUT Time-out error. The module has stalled too long in a frame. This happens:
• When the TX FIFO or RX FIFO is not handled and the bus is stuck in the middle of a
message,
• When no STOP was issued and between messages,
• When IBI manual is used and no decision was made.
The maximum stall period is 10 kHz or 100 us.

It's hard to time how often bus recovery should be called, hopefully, investigate why timeout happens so often first.

I don't know about the IO error, it looks like MCTRL and MSTATUS reading is OK, completion bit is set correctly.

[00:24:52.345,217] <dbg> i3c_mcux: mcux_i3c_has_error: ERROR: MCTRL 0x0000d250 MSTATUS 0x00009403 MERRWARN 0x00100000

 

0 Kudos
Reply
1,472 Views
Dezheng_Tang
NXP Employee
NXP Employee

Correction: I DON'T think bus will die if timeout bit is set. 

 

0 Kudos
Reply
1,482 Views
Sam_Gao
NXP Employee
NXP Employee

Hi @galenc 

I chcked the i3c source code from Zephyr https://github.com/zephyrproject-rtos/zephyr/blob/70f55bccf8af2866331f6fd84e05c600f4457704/drivers/i... 

These codes in this file which follow Apache-2.0 were contributed from freescale, intel, nxp. I may need a little time to check if I can find right person to deal with this. Also, you can use Zephyr community ( Discussions and Issues ), they will support you directly.

 

About this I3C question(emit, IBI), I would like to share common driver from NXP: 

https://github.com/nxp-mcuxpresso/mcux-sdk/blob/main/drivers/i3c/fsl_i3c.c#L690

 

0 Kudos
Reply
1,606 Views
Sam_Gao
NXP Employee
NXP Employee

Hi @galenc 

It seems some issues releated to I3C, Zephyr, lsm6dso sensor and SDK. I try to clairfy what I found one by one as below, hope these comments help you find the root cause.

 

1. It seems support wm8904 codec as default I3C in Zephyr

 https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/nxp/mimxrt685_evk/mimxrt685_evk_mimxrt... 

https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/nxp/mimxrt685_evk/mimxrt685_evk-pinctr... 

&i3c0 {
	pinctrl-0 = <&pinmux_i3c>;
	pinctrl-names = "default";

	status = "okay";

	audio_codec: wm8904@1a0000000000000000 {
		compatible = "wolfson,wm8904";
		reg = <0x1a 0 0>;

		clock-source = "MCLK";

		clocks = <&clkctl0 MCUX_AUDIO_MCLK>;
		clock-names = "mclk";
	};
};

 And actually I find it seems only support I2C(not mentioned I3C) from the introdcution https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/nxp/mimxrt685_evk/doc/index.rst 

PIO0_17 I2C I2C SDA
PIO0_18 I2C I2C SCL

 

2. If you use EVKMIMXRT685, I would like to recommend you to use offical SDK instead for testing. Please note the necessary board setting of I3C before your quick start, https://github.com/nxp-mcuxpresso/mcux-sdk-examples/tree/main/evkmimxrt685/driver_examples/i3c/polli... 

 3. Also please check the sensor part(salve) independently whether this sensor support I3C or not.

4. Currently it is diffcult to give clear direction or sw/hw issue.

 

B.R,

Sam

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2037988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2037988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20have%20a%20system%20based%20around%20the%20MIMXRT685-EVK%20running%20Zephyr.%26nbsp%3B%20I%20have%20the%20i3c%20port%20configured%20and%20interfacing%20with%20a%20few%20i2c%20devices.%26nbsp%3B%20They%20all%20work%20for%20some%20time%2C%20but%20depending%20of%20frequency%20of%20communication%20the%20bus%2Fdriver%20will%20just%20die%20after%20a%20few%20minutes.%3CBR%20%2F%3E%3CBR%20%2F%3EI%20experienced%20this%20on%20the%20evk%20and%20on%20our%20custom%20board.%26nbsp%3B%20And%20similarly%20with%20all%20the%20peripherals%20on%20the%20bus%20or%20just%20a%20single%20one.%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3Ehere%20you%20can%20see%20the%20scope%20(yellow%20SDA%2C%20green%20SCL%2C%20violet%20device%20interrupt)%20it%20just%20stops%20trying%20any%20comms%20on%20the%20bus%20when%20it%20should%20be%20servicing%20the%20interrupt%3A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22logic%20output%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22logic%20output%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F322382i253019A1376CCAE8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22bus_out.png%22%20alt%3D%22logic%20output%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Elogic%20output%3C%2Fspan%3E%3C%2Fspan%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Elogic%20output%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EIt%20happens%20for%20this%20device%20which%20is%20imu%20-%20lsm6dso%20(a%20zephyr%20built%20in%20driver)%2C%20sampling%20at%20higher%20frequency%20from%20interrupts.%20Even%20communicating%20with%20another%20device%20at%20slower%20frequency%20it%20will%20stay%20up%20longer%20but%20eventually%20crash%20(maybe%205-10%20minutes%20with%20a%20polling%20message%20every%20second).%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20is%20the%20warnings%20we%20saw%20from%20the%20i3c_mcux%20driver%20just%20before%20the%20bus%20goes%20dead.%26nbsp%3B%20the%20errors%20are%20failed%20attempts%20to%20read%20from%20device%20registers%20(the%20bus%20in%20the%20scope%20has%20no%20activity%20from%20subsequent%20attempts%2C%20shown%20in%20red%20as%20errors)%3A%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22warning%20from%20i3c_mcux%20before%20bus%20crash%22%20style%3D%22width%3A%20743px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22warning%20from%20i3c_mcux%20before%20bus%20crash%22%20style%3D%22width%3A%20743px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F322381i8829EEA7B786EBF2%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Screenshot_20250203_152157.png%22%20alt%3D%22warning%20from%20i3c_mcux%20before%20bus%20crash%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Ewarning%20from%20i3c_mcux%20before%20bus%20crash%3C%2Fspan%3E%3C%2Fspan%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Ewarning%20from%20i3c_mcux%20before%20bus%20crash%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3EHas%20anyone%20seen%20any%20issues%20similar%20with%20the%20i3c%20bus%20and%20zephyr%20implementation%20specifically%3F%3CBR%20%2F%3E%3CBR%20%2F%3Eour%20whole%20bus%20is%20essentially%20i2c%20devices%20we%20don't%20need%20the%20features%20of%20i3c%20(we%20are%20using%20it%20because%20we%20are%20using%20all%20the%20other%20ports)%20if%20there%20is%20a%20way%20it%20might%20be%20more%20stable%20if%20we%20%22force%22%20it%20into%20i2c%20mode%20all%20the%20time%3F%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EIt%20don't%20know%20if%20there%20is%20a%20bug%20in%20the%20driver%20or%20some%20way%20to%20better%20configure%20it%3F%26nbsp%3B%20we%20are%20using%20it%20pretty%20much%20as%20it%20came.%26nbsp%3B%20see%20device%20tree%20sections%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%26amp%3Bi3c0%20%7B%0A%09status%20%3D%20%22okay%22%3B%0A%0A%09i2c-scl-hz%20%3D%20%26lt%3B400000%26gt%3B%3B%0A%09i3c-scl-hz%20%3D%20%26lt%3B400000%26gt%3B%3B%0A%09i3c-od-scl-hz%20%3D%20%26lt%3B400000%26gt%3B%3B%0A%0A%09clk-divider%20%3D%20%26lt%3B12%26gt%3B%3B%0A%09clk-divider-slow%20%3D%20%26lt%3B1%26gt%3B%3B%0A%09clk-divider-tc%20%3D%20%26lt%3B1%26gt%3B%3B%0A%0A%09pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinmux_i3c%26gt%3B%3B%0A%09pinctrl-names%20%3D%20%22default%22%3B%0A%0A%09lsm6dso0%3A%20lsm6dso%406a0000000000000050%20%7B%0A%09%09status%20%3D%20%22okay%22%3B%0A%09%09compatible%20%3D%20%22st%2Clsm6dso%22%3B%0A%09%09reg%20%3D%20%26lt%3B0x6a%200x00%200x50%26gt%3B%3B%0A%09%09irq-gpios%20%3D%20%26lt%3B%26amp%3Bgpio1%2010%20GPIO_ACTIVE_HIGH%26gt%3B%3B%0A%09%7D%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%09pinmux_i3c%3A%20pinmux_i3c%20%7B%0A%09%09group0%20%7B%0A%09%09%09pinmux%20%3D%20%3CI3C0_SCL_PIO2_29%3E%2C%0A%09%09%09%09%09%20%3CI3C0_SDA_PIO2_30%3E%3B%0A%09%09%09input-enable%3B%0A%09%09%09slew-rate%20%3D%20%22slow%22%3B%0A%09%09%09drive-strength%20%3D%20%22high%22%3B%0A%09%09%7D%3B%0A%0A%09%09group1%20%7B%0A%09%09%09pinmux%20%3D%20%3CI3C0_PUR_PIO2_31%3E%3B%0A%09%09%09slew-rate%20%3D%20%22normal%22%3B%0A%09%09%09drive-strength%20%3D%20%22normal%22%3B%0A%09%09%7D%3B%0A%09%7D%3B%3C%2FI3C0_PUR_PIO2_31%3E%3C%2FI3C0_SDA_PIO2_30%3E%3C%2FI3C0_SCL_PIO2_29%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%3CBR%20%2F%3EAny%20help%20is%20much%20appreciated.%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%2C%20Galen%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2037988%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MXRT%20600%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2072905%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2072905%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F84797%22%20target%3D%22_blank%22%3E%40Dezheng_Tang%3C%2FA%3Ethat%20works!%26nbsp%3B%20Actually%20i%20was%20able%20to%20just%20re-initialize%20the%20entire%20i3c%20controller%20after%20i%20run%20the%20bitbang%20recovery%20(which%20makes%20those%20calls).%26nbsp%3B%20I%20might%20be%20able%20to%20pair%20it%20down%20a%20bit%20but%20good%20enough%20for%20now.%26nbsp%3B%20It%20was%20running%20for%206%20hours%20straight%20last%20night%20and%20recovered%20itself%203%20times%20before%20i%20powered%20it%20off.%3CBR%20%2F%3E%3CBR%20%2F%3EThank%20you%20for%20your%20assistance%20and%20patience!%3CBR%20%2F%3E-Galen%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2071414%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2071414%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EGlad%20your%20I2C%20bitbang%20recover%20bus%20works.%26nbsp%3BOn%20the%20master%20side%2C%20several%20things%20you%20should%20check%3A%3C%2FP%3E%0A%3CP%3E(1)%20PIN%20MUX%20needs%20to%20set%20back%20to%20I3C%20SCL%20and%20SDA%20lines.%3C%2FP%3E%0A%3CP%3E(2)%20Make%20sure%20both%20MSTATUS%20and%20MERRWARN%20registers%20are%20reset%20to%20default%20state.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E(3)%20In%20our%20SDK%20code%2C%20we%20have%20a%20module%20called%20I3C_MasterTransferAbort()%20to%20abort%20the%20master%20transfer.%20Please%20take%20a%20close%20look%20on%20this.%20I%20don't%20know%20why%20you%20would%20stay%20in%20NORMACK%20state%20even%20after%20you%20have%20issued%20STOP%20request.%20After%20you%20emit%20stop%2C%20you%20should%20wait%20for%20CTRL%20DONE.%20Once%20CTRL%20DONE%20is%20seen%2C%20it%20should%20be%20back%20to%20IDLE%20state.%3C%2FP%3E%0A%3CP%3E(4)%20If%20(2)%20and%20(3)%20don't%20work%2C%20I%20don't%20know%20what%20else%20you%20can%20do%2C%20maybe%20reset%20I3C%20by%20writing%201%20to%20I3C0%20bit%20in%20RSTCTL1_PRSTCTL2.%20You%20may%20want%20to%20check%20all%20the%20I3C%20registers%2C%20especially%2C%20MCONFIG%20and%20make%20sure%20they%20are%20the%20same%20before%20and%20after%20resetting%20I3C%20bit.%26nbsp%3B%26nbsp%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2071392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2071392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F84797%22%20target%3D%22_blank%22%3E%40Dezheng_Tang%3C%2FA%3E%20sorry%20for%20the%20delay%20we%20were%20trying%20a%20few%20things.%26nbsp%3B%20We%20tried%20to%20isolate%20to%20one%20of%20our%20devices%20which%20is%20causing%20the%20issue.%26nbsp%3B%20Still%20no%20definitive%20signal%20there%20unfortunately.%3C%2FP%3E%3CP%3EI%20was%20able%20to%20implement%20the%20hardware%20recovery%20similar%20to%20what%20you%20suggested.%26nbsp%3B%20I%20actually%20pulled%20in%20i2c_bitbang%20driver%20that%20is%20used%20on%20the%20i2c%20module%20for%20recovery%20into%20the%20i3c%20driver%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Eint%20i2c_bitbang_recover_bus(struct%20i2c_bitbang%20*context)%0A%7B%0A%09int%20i%3B%0A%0A%09%2F*%0A%09%20*%20The%20I2C-bus%20specification%20and%20user%20manual%20(NXP%20UM10204%0A%09%20*%20rev.%206%2C%20section%203.1.16)%20suggests%20the%20master%20emit%209%20SCL%0A%09%20*%20clock%20pulses%20to%20recover%20the%20bus.%0A%09%20*%0A%09%20*%20The%20Linux%20kernel%20I2C%20bitbang%20recovery%20functionality%20issues%0A%09%20*%20a%20START%20condition%20followed%20by%209%20STOP%20conditions.%0A%09%20*%0A%09%20*%20Other%20I2C%20slave%20devices%20(e.g.%20Microchip%20ATSHA204a)%20suggest%0A%09%20*%20issuing%20a%20START%20condition%20followed%20by%209%20SCL%20clock%20pulses%0A%09%20*%20with%20SDA%20held%20high%2Ffloating%2C%20a%20REPEATED%20START%20condition%2C%0A%09%20*%20and%20a%20STOP%20condition.%0A%09%20*%0A%09%20*%20The%20latter%20is%20what%20is%20implemented%20here.%0A%09%20*%2F%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3Eit%20seems%20to%20work%20returning%20SDA%20high%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_0-1743449474703.png%22%20style%3D%22width%3A%20705px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_0-1743449474703.png%22%20style%3D%22width%3A%20705px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330584i07338F35CFA36B8F%2Fimage-dimensions%2F705x126%3Fv%3Dv2%22%20width%3D%22705%22%20height%3D%22126%22%20role%3D%22button%22%20title%3D%22galenc_0-1743449474703.png%22%20alt%3D%22galenc_0-1743449474703.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3Eand%20i%20can%20trigger%20it%20a%20couple%20times%20even%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_1-1743449520063.png%22%20style%3D%22width%3A%20710px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_1-1743449520063.png%22%20style%3D%22width%3A%20710px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F330585iF83217A4F37A38F9%2Fimage-dimensions%2F710x153%3Fv%3Dv2%22%20width%3D%22710%22%20height%3D%22153%22%20role%3D%22button%22%20title%3D%22galenc_1-1743449520063.png%22%20alt%3D%22galenc_1-1743449520063.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3Ebut%20the%20i3c%20does%20not%20get%20back%20to%20IDLE%20(FYI%20I%20added%20the%20error%20EHOSTDOWN%20to%20denote%20this%20inability%20to%20get%20into%20IDLE%20when%20emitting%20stop).%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%5B00%3A17%3A30.601%2C824%5D%20%3CERR%3E%20i3c_mcux%3A%20do_one_xfer_read%20Timeout%20error%0A%5B00%3A17%3A30.601%2C843%5D%20%3CWRN%3E%20i3c_mcux%3A%20ERROR%20from%20transfer%20read%3D1%2C%20error%3D-116%0A%5B00%3A17%3A30.736%2C449%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001903%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A31.736%2C672%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A31.736%2C688%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A31.871%2C770%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A32.871%2C977%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A32.871%2C993%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A33.006%2C332%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A34.006%2C569%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A34.006%2C586%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A34.139%2C991%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A35.140%2C169%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A35.140%2C180%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A35.274%2C973%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A36.275%2C072%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A36.275%2C088%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A36.410%2C054%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A37.410%2C277%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A37.410%2C295%5D%20%3CERR%3E%20i3c_mcux%3A%20Error%20waiting%20for%20stop%20EHOSTDOWN%0A%5B00%3A17%3A37.410%2C303%5D%20%3CERR%3E%20i3c_mcux%3A%20STOP%20ERROR%20%3D%20-117%0A%5B00%3A17%3A37.410%2C306%5D%20%3CWRN%3E%20i3c_mcux%3A%20RETURN%20EHOSTDOWN%0A%5B00%3A17%3A37.543%2C104%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0Afusion_core%3A~%24i3c_recover%0A---%2021%20messages%20dropped%20---%0A%5B00%3A17%3A38.543%2C281%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A38.543%2C297%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A38.678%2C129%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A38.748%2C052%5D%20%3CWRN%3E%20charger%3A%20TRUING%20TO%20RECOVR%20BUS%0A%5B00%3A17%3A38.848%2C277%5D%20%3CWRN%3E%20i3c_mcux%3A%20pnx_mcux_i3c_recover_bus%20...%20using%20i2c%20bus%20reovery!!!!%0A%5B00%3A17%3A39.678%2C370%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A39.678%2C388%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A39.813%2C108%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A40.813%2C268%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A40.813%2C281%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A40.948%2C013%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A41.948%2C273%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A41.948%2C292%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A42.081%2C881%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A43.082%2C069%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A43.082%2C087%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A17%3A43.216%2C617%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001103%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A17%3A51.046%2C370%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20EHOSTDOWN%0A%5B00%3A17%3A51.046%2C389%5D%20%3CERR%3E%20i3c_mcux%3A%20Error%20waiting%20for%20stop%20EHOSTDOWN%3C%2FERR%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3EMy%20question%20is%3A%26nbsp%3B%20After%20I'm%20able%20to%20recover%20the%20SDA%20line%20via%20GPIO%20toggling%2Fbitbang-ing%20what%20steps%20should%20i%20follow%20to%20get%20the%20i3c%20controller%20back%3F%26nbsp%3B%20it%20seems%20its%20still%20stuck%20somewhere%20in%20NORMACT%20but%20its%20not%20transmitting%20anything.%3CBR%20%2F%3E%3CBR%20%2F%3EZephyr%20doesn't%20allow%20%22re-initializing%22%20devices%20so%20i%20have%20to%20build%20one%20from%20scratch%2C%20and%20what%20I'm%20doing%20doesn't%20seem%20to%20be%20working.%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%2C%3CBR%20%2F%3EGalen%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068960%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068960%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EOne%20more%20thing%20to%20add%2C%20if%20you%20are%20using%20a%20level-shifter%20between%20RT685%20and%20the%20sensor%2C%20can%20you%20try%20to%20bypass%20the%20level-shifter%20and%20see%20if%20it%20helps%3F%20I%20suspect%20the%20signal%20quality%20plays%20some%20role%20on%20the%20lockup%20of%20the%20bus.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068934%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068934%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIt%20looks%20like%20your%20Target%20device%20is%20%22dead'%22%20and%20holds%20SDA%20low%20forever.%20For%20cases%20like%2C%20I3C%20controller%20reinitialization%20or%20reset%20won't%20help%20either.%20It%20doesn't%20have%20anything%20to%20do%20with%20RT68x.%3C%2FP%3E%0A%3CP%3EIt's%20not%20guaranteed%20but%20there%20are%20a%20few%20things%20you%20can%20try%3A%3C%2FP%3E%0A%3CP%3E(1)%20Slow%20the%20I2C%20clock%20down%20a%20little%2C%20maybe%20fine%20tuning%20the%20duty%20cycle%2C%20rising%2Ffalling%20time.%3C%2FP%3E%0A%3CP%3E(2)%20H%2FW%20consideration%2C%20make%20sure%20there%20is%20no%20glitch%20on%20VDD%2C%20never%20below%201.71V%2C%20according%20to%20LSM6DSO%20datasheet.%20Maybe%20switch%20to%203.3V%20to%20see%20the%20same%20problem%20occurs.%20I%20am%20concerned%20about%20the%20i2c%20slave%20timing%20violation%20mentioned%20in%20their%20datasheet.%3C%2FP%3E%0A%3CP%3E(3)%20Make%20sure%20SCL%2FSDA%20lines%20on%20the%20bus%20are%20clean%2C%20maybe%20try%20stronger%20pull-ups.%3C%2FP%3E%0A%3CP%3E(4)%20Hopefully%2C%20IOCON%20full-drive%20mode%20is%20enabled.%3C%2FP%3E%0A%3CP%3E(5)%20Slow%20the%20sensor%20reading%20rate%20a%20little%20to%20see%20if%20it%20helps.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E(6)%20Switch%20to%20GPIO%20pins%2C%20toggle%2020~30%20times%2C%20switch%20back%20to%20I3C%20SCL%2FSDA%20and%20see%20if%20the%20bus%20is%20in%20idle%20state%20or%20not%2C%20both%20SCL%20and%20SDA%20are%20high.%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068877%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068877%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20cleaned%20up%20some%20of%20the%20logging%20but%20looks%20like%20the%20issue%20still%20follows%20that%20wave%20form.%26nbsp%3B%20the%20SDA%20is%20low%20and%20does%20not%20return%20high.%26nbsp%3B%20In%20this%20plot%20only%20after%20i%20reset%20the%20target%20twice%20does%20it%20recover%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_0-1743009758872.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_0-1743009758872.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329926i4F041587DA79F6F9%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22galenc_0-1743009758872.png%22%20alt%3D%22galenc_0-1743009758872.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EA%20closer%20look%20at%20the%20%22pulse%22%20in%20the%20middle%20(the%20first%20time%20I%20press%20reset)%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_1-1743009799689.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_1-1743009799689.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329927i03004D32CF00222B%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22galenc_1-1743009799689.png%22%20alt%3D%22galenc_1-1743009799689.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EZephyr%20actually%20cannot%20get%20past%20pre-main%20init%20code%20with%20the%20first%20reset.%3CBR%20%2F%3EThe%20bus%20only%20recovers%20after%20the%20second%20reset%2C%20when%20SDA%20finally%20transitions%20high.%26nbsp%3B%20What%20could%20cause%20the%20SDA%20to%20be%20held%20low%20like%20this%3F%26nbsp%3B%20We%20have%20multiple%20pull-ups%20on%20the%20lines%2C%20so%20something%20must%20be%20driving%20it%20low.%26nbsp%3B%20Do%20you%20think%20your%20suggestion%20of%20switching%20to%20GPIO%20mux%20and%20toggling%20will%20resolve%20this%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068108%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068108%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThis%20debug%20log%20is%20very%20different%20from%20what%20I%20saw%20before.%20For%20all%20the%20waveform%20you%20have%20posted%20before%2C%20they%20were%20all%20I2C%20traffic%2C%20MCTRL%20bit%200~7%20is%20either%200x50%20or%200x52%20which%20also%20indicates%20I2C.%20You%20also%20mentioned%20before%2C%20when%20EmitStop()%20failed%20to%20complete%2C%20there%20is%20no%20IBI%2C%20bus%20is%20NORMACK%20and%20in%20I2C%20mode.%3C%2FP%3E%0A%3CP%3EYou%20will%20have%20to%20debug%20when%2Fwhere%20MCTRL%20register%20bit%205~4%20TYPE%20got%20changed%20and%20why%20suddenly%20IBI%20message%20pops%20out.%20The%20other%20interesting%20thing%20is%20FORCE%20EXIT%20is%20for%20HDR%2FDDR%20and%20EMIT%20STOP%20is%20for%20SDR.%20FORCE%20EXIT%20and%20EMIT%20STOP%20should%20never%20been%20at%20the%20same%20time%20in%20the%20log.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068090%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068090%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ENo%20worries%2C%20I%20appreciate%20how%20prompt%20you%20are%20regardless%20%3CLI-EMOJI%20id%3D%22lia_slightly-smiling-face%22%20title%3D%22%3Aslightly_smiling_face%3A%22%3E%3C%2FLI-EMOJI%3E%20%26nbsp%3B%20Yeah%20the%20GPIO%20works%20well%2C%20unfortunately%20on%20out%20custom%20board%20we%20don't%20have%20the%20ability%20to%20use%20the%20GPIO%20toggling%20for%20debugging%20as%20on%20the%20EVK.%26nbsp%3B%20I%20will%20see%20if%20I%20can%20repurpose%20some%20IO%20there%20to%20use%20it.%3CBR%20%2F%3E%3CBR%20%2F%3ERight%20now%20I'm%20seeing%20it%20will%20pretty%20reliably%20bring%20the%20bus%20down%20after%2010-20min%20on%20the%20custom%20board%20(it%20is%20a%20much%20more%20complicated%20system)%20but%20its%20pretty%20stable%20on%20the%20EVK%20now.%26nbsp%3B%20I%20like%20that%20idea%20on%20forcing%20the%20SCL%20line%20as%20GPIO%2C%20i%20will%20just%20have%20to%20figure%20out%20a%20good%20way%20to%20do%20this%20in%20Zephyr.%3CBR%20%2F%3E%3CBR%20%2F%3ESo%20far%20I%20don't%20have%20much%20else%20to%20go%20on%2C%20but%20I%20have%20noticed%20it%20looks%20like%20the%20MCTRL%20is%20saying%20its%20in%20I3C%20mode.%26nbsp%3B%200x42%20would%20mean%20bits%205%3A4%20are%200%20%3D%20I3C.%26nbsp%3B%20I'm%20not%20sure%20why%20that%20would%20be%20as%20everything%20should%20be%20in%20I2C.%26nbsp%3B%20Our%20only%20device%20that%20is%20capable%20of%20I3C%20is%20LSM6DSOX%20which%20is%20an%20OTS%20zephyr%20driver%20(that%20actually%20only%20works%20for%20a%20couple%20minutes%20at%20bootup)%20but%20its%20forced%20into%20i2c%20mode%20on%20init.%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%5B00%3A38%3A31.275%2C094%5D%20%3CINF%3E%20charger%3A%20Vin%3D260mV%2C%20State%3D0%2C%20Tj%3D31.701500%20DegC%2C%20NTC%3D0.461914%2C%20TS%3D0.283203%3A%20Battery%20V%3D7970mV%20I%3D0mA%2C%20cell_count%3D2%2C%20per_cell%3D3985%20ADC_s%3D1%20ADC_c%3D1%0A%5B00%3A38%3A32.282%2C810%5D%20%3CERR%3E%20i3c_mcux%3A%20IBI%20Timeout%20error%0A%5B00%3A38%3A32.282%2C825%5D%20%3CWRN%3E%20i3c_mcux%3A%20ERROR%20from%20transfer%20read%3D1%2C%20error%3D-116%0A%5B00%3A38%3A32.415%2C111%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000042%20MSTATUS%200x00001803%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A38%3A33.415%2C389%5D%20%3CERR%3E%20i3c_mcux%3A%20FORCE%20EXIT%0A%5B00%3A38%3A33.515%2C582%5D%20%3CWRN%3E%20i3c_mcux%3A%20EMIT%20STOP%20return%20timeout%0A%5B00%3A38%3A33.515%2C597%5D%20%3CWRN%3E%20i3c_mcux%3A%20Timeout%20on%20emit%20stop%2C%20retrying%0A%5B00%3A38%3A33.648%2C417%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000002%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%3C%2FERR%3E%3C%2FWRN%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FWRN%3E%3C%2FERR%3E%3C%2FINF%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20is%20a%20plot%20of%20the%20bus%20as%20it%20dies%20on%20our%20custom%20board%20(the%20lines%20are%20steady%20state%20like%20that%20forever%2C%20i.e.%20SDA%20low%20and%20SCL%20High)%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_0-1742937195999.png%22%20style%3D%22width%3A%20783px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_0-1742937195999.png%22%20style%3D%22width%3A%20783px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329708i6EE41DF96F4ED553%2Fimage-dimensions%2F783x124%3Fv%3Dv2%22%20width%3D%22783%22%20height%3D%22124%22%20role%3D%22button%22%20title%3D%22galenc_0-1742937195999.png%22%20alt%3D%22galenc_0-1742937195999.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2068007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2068007%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20don't%20know%20why%2C%20from%20time%20to%20time%2C%20the%20post%20update%20notification%20was%20not%20forwarded%20to%20my%20Outlook%20although%20I%20have%20subscribed%20on%20the%20community.%3C%2FP%3E%0A%3CP%3EI%20would%20minimize%20the%20use%20of%20EIO%20error%20if%20possible%20and%20have%20GPIO%20toggling%20to%20debug%20which%20I%20trust%20more.%3C%2FP%3E%0A%3CP%3EPreventing%20general%20timeout%20will%20definitely%20improve%20the%20stability%20of%20the%20failure%20mode.%20On%20the%20other%20hand%2C%20I%20am%20also%20curious%20if%20your%20target%20I2C%20is%20doing%20clock%20stretching%20and%20then%20your%20EmitStop()%20never%20finishes.%26nbsp%3B%3C%2FP%3E%0A%3CP%3EOn%20RT68x%2C%20clock%20stretching%20is%20not%20supported%20in%20our%20I3C%20controller%2C%20this%20is%20one%20of%20the%20limitations%20of%20our%20I2C%20compatibility.%20Please%20take%20a%20look%20at%20the%20beginning%20of%20the%20I3C%20chapter.%20I%20saw%20some%20similar%20post%20related%20to%20I2C%20clock%20stretching%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FMCX-Microcontrollers%2FI3C-timeout-due-to-target-clock-stretching%2Ftd-p%2F1933964%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2FMCX-Microcontrollers%2FI3C-timeout-due-to-target-clock-stretching%2Ftd-p%2F1933964%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EIf%20so%2C%20you%20will%20have%20to%20switch%20to%20the%20I2C%20controller%20to%20communicate%20with%20your%20I2C%20target.%20In%20the%20past%2C%20whenever%20there%20is%20a%20%22dead%22%20I2C%20target%20on%20the%20bus%2C%20I%20also%20implemented%20some%20bus%20recovery%20logic%3A%20something%20like%20configure%20SCL%20to%20GPIO%20pins%20and%20toggle%20~20%20times%2C%20make%20sure%20the%20bus%20is%20back%20to%20idle%2C%20then%20switch%20the%20pin%20back%20to%20SCL%20function.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2067901%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2067901%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F84797%22%20target%3D%22_blank%22%3E%40Dezheng_Tang%3C%2FA%3E%20Yeah%20the%20irq_lock()%20worked%20well%20if%20i%20wrap%20the%20read%2Fwrite%20calls%20in%20it.%20It%20seems%20to%20be%20context%20switching%20mid-transaction%20to%20be%20the%20cause%20of%20timeouts.%20If%20i%20wrap%20the%20majority%20of%26nbsp%3Bmcux_i3c_do_one_xfer()%20the%20errors%20are%20mostly%20all%20gone%20(still%20some%20timeouts%20emitting%20stop%20occur).%20I'm%20not%20sure%20disabling%20interrupts%20for%20~250uS%20when%20it%20only%20takes%20~70uS%20to%20read%20from%20the%20FIFO%20is%20acceptable%20for%20the%20rest%20of%20my%20app%2C%20but%20i%20guess%20i%20can%20do%20more%20testing%20there.%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22galenc_0-1742916351117.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22galenc_0-1742916351117.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329653iC997D9EA497D4D9E%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22galenc_0-1742916351117.png%22%20alt%3D%22galenc_0-1742916351117.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EI%20was%20able%20to%20discover%20that%20the%20EIO%20errors%20i%20was%20getting%20were%20really%20just%20timeouts%20as%20well%2C%20just%20in%20places%20not%20calling%20mcux_i3c_error_is_timeout().%26nbsp%3B%20You%20can%20see%20in%20this%20case%20above.%26nbsp%3B%20The%20I3C%20module%20calls%20it%20a%20timeout%20even%20if%20everything%20works.%26nbsp%3B%20Even%20in%20cases%20where%20the%20FIFO%20has%20the%20correct%20data%20the%20MERRWARN%20%3D%200x00100000%20(timeout)%20will%20still%20be%20set.%26nbsp%3B%20I%20want%20to%20believe%20I%20can%20just%20ignore%20these%20errors%20(or%20live%20with%20irq_lock%20for%20an%20entire%20transaction%20period).%3CBR%20%2F%3E%3CBR%20%2F%3EThe%20open%20item%20still%20remains%20the%20timeout's%20when%20%22emitting%20stop%22%20and%20when%20the%20bus%20is%20completely%20down%20due%20to%20it.%26nbsp%3B%20Those%20can%20take%20hours%20to%20occur%20and%20i%20can%20keep%20monitoring%20I%20haven't%20had%20one%20occur%20yet%20today.%26nbsp%3B%20Do%20you%20have%20any%20advice%20on%20what%20could%20be%20causing%20that%20to%20occur%20still%3F%26nbsp%3B%20Do%20you%20think%20preventing%20general%20timeouts%20will%20improve%20the%20stability%20of%20that%20failure%20mode%20too%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2067464%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2067464%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIf%20you%20think%20it%20could%20be%20some%20context%20switching%20issue%2C%20can%20you%20do%20something%20like%20irq_lock()%20and%20irq_unlock()%20to%20protect%20your%20critical%20modules%2C%20at%20least%2C%20to%20see%20it%20improves%20or%20not%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2067449%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2067449%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F84797%22%20target%3D%22_blank%22%3E%40Dezheng_Tang%3C%2FA%3E%20I%20setup%20the%20debug%20outputs%20as%20suggested.%26nbsp%3B%20I%20also%20added%20a%203rd%20GPIO%20into%20the%20attempted%20read%20loop.%3CBR%20%2F%3E%3CBR%20%2F%3EI%20made%20the%20changes%20as%20follows%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Estatic%20int%20mcux_i3c_do_one_xfer_read(I3C_Type%20*base%2C%20uint8_t%20*buf%2C%20uint8_t%20buf_sz%2C%20bool%20ibi)%0A%7B%0A%09int%20ret%20%3D%200%3B%0A%09int%20offset%20%3D%200%3B%0A%09%0A%09while%20(offset%20%26lt%3B%20buf_sz)%20%7B%0A%09%09%2F*%0A%09%09%20*%20Transfer%20data%20from%20FIFO%20into%20buffer.%20Read%0A%09%09%20*%20in%20a%20tight%20loop%20to%20reduce%20chance%20of%20losing%0A%09%09%20*%20FIFO%20data%20when%20the%20i3c%20speed%20is%20high.%0A%09%09%20*%2F%0A%09%09while%20(offset%20%26lt%3B%20buf_sz)%20%7B%0A%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_2%2C%201)%3B%0A%09%09%09if%20(mcux_i3c_fifo_rx_count_get(base)%20%3D%3D%200)%20%7B%0A%09%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_2%2C%200)%3B%0A%09%09%09%09break%3B%0A%09%09%09%7D%0A%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_1%2C%201)%3B%0A%09%09%09buf%5Boffset%2B%2B%5D%20%3D%20(uint8_t)base-%26gt%3BMRDATAB%3B%0A%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_1%2C%200)%3B%0A%09%09%7D%0A%09%09%2F*%0A%09%09%20*%20If%20controller%20says%20timed%20out%2C%20we%20abort%20the%20transaction.%0A%09%09%20*%2F%0A%09%09if%20(mcux_i3c_has_error(base))%20%7B%0A%09%09%09if%20(mcux_i3c_error_is_timeout(base))%20%7B%0A%09%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_0%2C%201)%3B%0A%09%09%09%09LOG_WRN(%22Flushing%20fifo%20due%20to%20timeout%20offset%3D%25d%2C%20buf_sz%3D%25d%22%2C%20offset%2C%20buf_sz)%3B%0A%09%09%09%09mcux_i3c_fifo_flush(base)%3B%20%2F%2Fnxp%20succestion%20to%20add%0A%09%09%09%09ret%20%3D%20-ETIMEDOUT%3B%0A%09%09%09%09gpio_pin_set_dt(%26amp%3Bdbg_0%2C%200)%3B%0A%09%09%09%7D%0A%09%09%09%2F*%20clear%20error%20%20*%2F%0A%09%09%09base-%26gt%3BMERRWARN%20%3D%20base-%26gt%3BMERRWARN%3B%0A%0A%09%09%09%2F*%20for%20ibi%2C%20ignore%20timeout%20err%20if%20any%20bytes%20were%0A%09%09%09%20*%20read%2C%20since%20the%20code%20doesn't%20know%20how%20many%0A%09%09%09%20*%20bytes%20will%20be%20sent%20by%20device.%20for%20regular%0A%09%09%09%20*%20application%20read%20request%2C%20return%20err%20always.%0A%09%09%09%20*%2F%0A%09%09%09if%20((ret%20%3D%3D%20-ETIMEDOUT)%20%26amp%3B%26amp%3B%20ibi%20%26amp%3B%26amp%3B%20offset)%20%7B%0A%09%09%09%09break%3B%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09if%20(ret%20%3D%3D%20-ETIMEDOUT)%20%7B%0A%09%09%09%09%09LOG_ERR(%22Timeout%20error%22)%3B%0A%09%09%09%09%7D%0A%09%09%09%09goto%20one_xfer_read_out%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%0A%09ret%20%3D%20offset%3B%0A%0Aone_xfer_read_out%3A%0A%09gpio_pin_set_dt(%26amp%3Bdbg_2%2C%200)%3B%0A%09return%20ret%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20is%20a%20good%20read%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22good%20read%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22good%20read%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329554iC36C853EBA3F04CA%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22good_read.png%22%20alt%3D%22good%20read%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Egood%20read%3C%2Fspan%3E%3C%2Fspan%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Egood%20read%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3EHere%20is%20a%20time%20out%20where%20no%20data%20was%20actually%20read%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22timeout%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22timeout%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F329555i54EB2F836C8F234A%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22timeout_read.png%22%20alt%3D%22timeout%22%20%2F%3E%3Cspan%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Etimeout%3C%2Fspan%3E%3C%2Fspan%3E%3CSPAN%20class%3D%22lia-inline-image-caption%22%20onclick%3D%22event.preventDefault()%3B%22%3Etimeout%3C%2FSPAN%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3ETimeouts%20will%20happen%20when%200%20reads%20actually%20happen%20or%20sometimes%201%20will%20be%20read%20or%20sometimes%20even%20both.%26nbsp%3B%20But%20it%20looks%20like%20that%20function%20in%20the%20driver%20is%20taking%20too%20long%20to%20read%20from%20the%20FIFO%2C%20perhaps%20a%20context%20switch%20from%20zephyr%20has%20occurred.%20I%20haven't%20caught%20the%20error%20yet%20that%20takes%20the%20bus%20down.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2056421%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2056421%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EYes%2C%20I%20agree%20this%20is%20a%20good%20idea%20for%20debug.%20I%20will%20set%20this%20up.%20I%20will%20be%20traveling%20for%20the%20next%20two%20weeks%20(starting%20tomorrow)%20but%20will%20report%20my%20results%20when%20I%20return.%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%20for%20your%20continued%20help%20on%20this%20issue.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2055786%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2055786%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ERegarding%20debugging%20timeout%2C%20I%20am%20thinking%20that%2C%20can%20you%20use%20gpio%20toggling%20instead%20of%20calling%20LOG_DBG%20or%20LOG_ERR%20printout%20when%20time%20out%20occurs%3F%26nbsp%3B%3C%2FP%3E%0A%3CP%3EGPIO1%20toggles%20when%20timeout%20in%20MSTATUS%20and%20GPIO2%20toggle%20when%20MRDATAB%20is%20read%20from%20the%20register%2C%20you%20can%20trigger%20on%20edge%20of%20GPIO1%2C%20the%20I2C%20SCL%20and%20GPIO2%20should%20be%20sync%20well%20that%20Data%20is%20read%20on%20the%20falling%20edge%20of%20the%20SCL.%3C%2FP%3E%0A%3CP%3EIf%20there%20is%20a%20long%20delay%20that%20data%20is%20not%20read%20on%20MRDATAB%20after%20SCL%20is%20low%2C%20there%20is%20something%20wrong%20in%20your%20app.%26nbsp%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2055051%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2055051%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20tried%20to%20isolate%20the%20problem%20if%20Zephyr%20OS%20causes%20the%20problem%20or%20not%20and%20have%20run%20a%20standalone%20test%20on%20the%20I2C%20device%20using%20I3C%20controller.%20Here%20is%20a%20what%20I%20have%20done%3A%20on%20RT685%20EVK%20board%2C%20there%20is%20a%20codec%20WM8904%20on%20the%20I3C%20bus%2C%20if%20you%20use%20any%20audio%20related%20SDK%20example%2C%20this%20codec%20will%20be%20initialized%20using%20I3C%20controller%20(over%20I2C)%2C%20I%20made%20minor%20change%20to%20do%20register%20reading%20periodically%2C%20monitor%20the%20bus%20and%20have%20never%20seen%20timeout%20happened%20unless%20you%20force%20it%20into%20one%20of%20these%20conditions%20below.%20It%20doesn't%20look%20our%20I3C%20controller%20could%20time%20out%20easily%20unless%20the%20STALL%20period%20is%20%26gt%3B%20100us.%3C%2FP%3E%0A%3CP%3ETIMEOUT%20Time-out%20error.%20The%20module%20has%20stalled%20too%20long%20in%20a%20frame.%20This%20happens%3A%3CBR%20%2F%3E%E2%80%A2%20When%20the%20TX%20FIFO%20or%20RX%20FIFO%20is%20not%20handled%20and%20the%20bus%20is%20stuck%20in%20the%20middle%20of%20a%20%3CBR%20%2F%3Emessage%2C%3CBR%20%2F%3E%E2%80%A2%20When%20no%20STOP%20was%20issued%20and%20between%20messages%2C%3CBR%20%2F%3E%E2%80%A2%20When%20IBI%20manual%20is%20used%20and%20no%20decision%20was%20made.%3CBR%20%2F%3EThe%20maximum%20stall%20period%20is%2010%20kHz%20or%20100%20us.%3C%2FP%3E%0A%3CP%3EIt's%20hard%20to%20time%20how%20often%20bus%20recovery%20should%20be%20called%2C%20hopefully%2C%20investigate%20why%20timeout%20happens%20so%20often%20first.%3C%2FP%3E%0A%3CP%3EI%20don't%20know%20about%20the%20IO%20error%2C%20it%20looks%20like%20MCTRL%20and%20MSTATUS%20reading%20is%20OK%2C%20completion%20bit%20is%20set%20correctly.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20%20language-markup%22%3E%3CCODE%3E%5B00%3A24%3A52.345%2C217%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0000d250%20MSTATUS%200x00009403%20MERRWARN%200x00100000%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2054034%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2054034%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThank%20you.%20those%20are%20helpful%20things%20to%20consider.%3CBR%20%2F%3E%3CBR%20%2F%3Eto%20answer%20some%20of%20you%20questions%3A%3CBR%20%2F%3E1)%20with%20debug%20enabled%20each%20time%20we%20check%20for%20an%20error%20it%20prints%20that%20line%20which%20will%20happen%203%20times%20in%20a%20single%20call%20of%20%60mcux_i3c_do_one_xfer()%60%20if%20its%20a%20read%20request.%3CBR%20%2F%3E%3CBR%20%2F%3E2)%20I%20added%20this%20to%20the%20driver%3CBR%20%2F%3E%3CBR%20%2F%3E3)%20I%20already%20have%20an%20implementation%20with%20%60mcux_i3c_recover_bus()%60%20--%20basically%20if%20i%20get%2010%20error%20in%20a%20row%20(without%20any%20successes)%20i%20will%20call%20that%2C%20but%20it%20almost%20never%20happens.%26nbsp%3B%20maybe%20there%20is%20a%20better%20time%20to%20call%20it%3F%3CBR%20%2F%3E%3CBR%20%2F%3E4)%20%26amp%3B%205)%20these%20are%20interesting%20ideas%2C%20i%20will%20add%20some%20more%20logging%20and%20try%20some%20things%20to%20see%20if%20i%20can%20understand%20this%20better.%26nbsp%3B%20I%20also%20considered%20that%20a%20higher%20priority%20thread%20might%20be%20context%20switched%20out%20in%20durring%20the%20transfer%20in%20the%20middle%20causing%20the%20timeout%20so%20i%20adjusted%20some%20priorities.%26nbsp%3B%20I%20still%20see%20timeouts%20regularly%20though%20and%20need%20to%20keep%20this%20at%20a%20relatively%20low%20priority%20because%20this%20bus%20is%20secondary%20peripherals.%3CBR%20%2F%3E%3CBR%20%2F%3EI%20noticed%20I%20also%20see%20the%20IO%20errors%20on%20occasion%20too.%26nbsp%3B%20Again%20they%20recover%20and%20move%20on%20and%20the%20only%20time%20the%20bus%20crashes%20dies%20completely%20on%20the%20timeout%20ones.%3C%2FP%3E%3CBR%20%2F%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%5B00%3A24%3A52.345%2C217%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0000d250%20MSTATUS%200x00009403%20MERRWARN%200x00100000%0A%5B00%3A24%3A52.345%2C228%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0000d250%20MSTATUS%200x00009403%20MERRWARN%200x00100000%0A%5B00%3A24%3A52.345%2C249%5D%20%3CERR%3E%20mp2651%3A%20failed%20to%20read%20CONFIG_REGISTER_2%20err%3D-5%0A%5B00%3A24%3A52.345%2C256%5D%20%3CERR%3E%20charger%3A%20error%20with%20battery%20data.%20recover%20count%20%3D%201%3C%2FERR%3E%3C%2FERR%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2053335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2053335%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3ECorrection%3A%20I%20DON'T%20think%20bus%20will%20die%20if%20timeout%20bit%20is%20set.%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2053333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2053333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CPRE%20class%3D%22lia-code-sample%20%20language-c%22%3E%3CCODE%3E%5B00%3A07%3A29.338%2C707%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C719%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C723%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C729%5D%20%3CERR%3E%20i3c_mcux%3A%20Timeout%20error%3C%2FERR%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CSPAN%3EBy%20looking%20into%20the%20Zephyr%20driver%2C%20inside%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%2F*%3CBR%20%2F%3E*%20If%20controller%20says%20timed%20out%2C%20we%20abort%20the%20transaction.%3CBR%20%2F%3E*%2F%3CBR%20%2F%3Eif%20(mcux_i3c_has_error(base))%20%7B%3CBR%20%2F%3Eif%20(mcux_i3c_error_is_timeout(base))%20%7B%3CBR%20%2F%3Eret%20%3D%20-ETIMEDOUT%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%2F*%20clear%20error%20*%2F%3CBR%20%2F%3Ebase-%26gt%3BMERRWARN%20%3D%20base-%26gt%3BMERRWARN%3B%3C%2FP%3E%0A%3CP%3E%2F*%20for%20ibi%2C%20ignore%20timeout%20err%20if%20any%20bytes%20were%3CBR%20%2F%3E*%20read%2C%20since%20the%20code%20doesn't%20know%20how%20many%3CBR%20%2F%3E*%20bytes%20will%20be%20sent%20by%20device.%20for%20regular%3CBR%20%2F%3E*%20application%20read%20request%2C%20return%20err%20always.%3CBR%20%2F%3E*%2F%3CBR%20%2F%3Eif%20((ret%20%3D%3D%20-ETIMEDOUT)%20%26amp%3B%26amp%3B%20ibi%20%26amp%3B%26amp%3B%20offset)%20%7B%3CBR%20%2F%3Ebreak%3B%3CBR%20%2F%3E%7D%20else%20%7B%3CBR%20%2F%3Eif%20(ret%20%3D%3D%20-ETIMEDOUT)%20%7B%3CBR%20%2F%3ELOG_ERR(%22Timeout%20error%22)%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3Egoto%20one_xfer_read_out%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%0A%3CP%3EI%20have%20a%20few%20questions%3A%3C%2FP%3E%0A%3CP%3E(1)%20Based%20on%20above%20code%2C%20if%26nbsp%3Bmcux_i3c_has_error%20dbg%20msg%20comes%20out%2C%20%22Timeout%20error%22%20should%20happen%20immediately.%20Why%20the%20dbg%20msg%20comes%20out%203%20times%2C%20finally%2C%20%22Time%20out%20error%22%20comes%20out%3F%3C%2FP%3E%0A%3CP%3E(2)%20If%20TIMEOUT%20bit%20is%20set%20in%20MERRWARN%2C%20I%20think%20we%20should%20do%26nbsp%3Bmcux_i3c_fifo_flush().%20Otherwise%2C%20below%20line%20only%20hides%20the%20problem.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%2F*%20clear%20error%20*%2F%3CBR%20%2F%3Ebase-%26gt%3BMERRWARN%20%3D%20base-%26gt%3BMERRWARN%3B%3C%2FP%3E%0A%3CP%3E(3)%26nbsp%3B%3CSPAN%3Emcux_i3c_xfer_reset()%20doesn't%20do%20anything%20to%20put%20the%20bus%20to%20IDLE%20state.%26nbsp%3Bmcux_i3c_recover_bus()%20looks%20like%20the%20right%20API%20to%20put%20the%20bus%20to%20idle%20state.%20I%20think%20both%26nbsp%3Bmcux_i3c_fifo_rx_drain()%20and%20mcux_i3c_fifo_flush()%20should%20be%20performed%20inside%20bus%20recover%20API.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E(4)%20I%20don't%20understand%20why%20timeout%20occurs%20every%20few%20minutes.%20I%20do%20think%20bus%20will%20die%20if%20timeout%20bit%20is%20set.%20However%2C%20the%20state%20machine%20of%20the%20master%20may%20be%20wrong%20and%20doesn't%20know%20how%20to%20handle%20FIFO%20data%20after%20this%20bit%20is%20set.%20We%20need%20to%20understand%20why%20timeout%20occurs%20before%20thinking%20about%20recovery%20mechanism.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E(5)%20Inside%20mcux_i3c_transfer()%2C%20I%20am%20not%20sure%20if%20there%20is%20an%20OS%20starvation%20here%3F%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%3EIf%20you%20want%20to%20do%20a%20I3C%20transfer%2C%20mutex%20is%20locked%20but%20bus%20is%20not%20idle.%20mcux_i3c_wait_idle()%20is%20polling%2C%20right%3F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3Ek_mutex_lock(%26amp%3Bdev_data-%26gt%3Block%2C%20K_FOREVER)%3B%3C%2FP%3E%0A%3CP%3Emcux_i3c_wait_idle(dev_data%2C%20base)%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2053184%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2053184%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EWell%20its%20been%20basically%20doing%20the%20same%20thing%20for%20an%20hour%20over%20and%20over%20again%20thousands%20of%20transactions.%20As%20best%20I%20believe%20I'm%20handling%20things%20promptly%20but%20zephyr%20has%20many%20tasks.%3C%2FP%3E%3CP%3EMy%20core%20issue%20might%20be%20resolved%20if%20there%20was%20a%20way%20to%20%3CEM%3Erecover%3C%2FEM%3E%20the%20bus%20at%20this%20point%20after%20the%20error%20has%20occurred.%20I'm%20not%20sure%20its%20practical%20that%20I%20would%20be%20able%20to%20prevent%20every%20timeout%20from%20happening.%26nbsp%3B%20I%20actually%20get%20timeouts%20on%20transactions%20every%20couple%20minutes%20and%20the%20bus%20is%20fine%20afterwards.%20If%20there%20is%20a%20special%20type%20of%20timeout%20condition%20causing%20the%20bus%20to%20die%20completely%20how%20do%20I%20handle%20that%20and%20get%20back%20to%20normal%20operation%3F%26nbsp%3B%3C%2FP%3E%3CP%3EI%20tried%20adding%20a%20%60mcux_i3c_xfer_reset()%60%20when%20it%20gets%20stuck%20but%20it%20does%20not%20have%20any%20effect.%26nbsp%3B%20The%20log%20looks%20slightly%20different%20but%20the%20last%20line%20repeats%20forever.%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%5B00%3A07%3A29.338%2C707%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C719%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C723%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B00%3A07%3A29.338%2C729%5D%20%3CERR%3E%20i3c_mcux%3A%20Timeout%20error%0A%5B00%3A07%3A29.464%2C782%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001803%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A07%3A30.592%2C655%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A07%3A31.718%2C942%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A07%3A32.846%2C540%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B00%3A07%3A33.974%2C438%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2052151%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2052151%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIt%20looks%20like%20I3C%20controller%20is%20in%20NORMAL%20state%20and%20the%20configuration%20is%20OK%20too.%20Both%20MCTRL%20and%20MSTATUS%20are%20OK%2C%20the%20problem%20is%20why%20your%20TIMEOUT%20bit%20(bit%2020)%20is%20set%20in%20MERRWARN%20even%20before%20you%20request%20emit%20stop%3F%20This%20is%20the%20condition%20when%20TIMEOUT%20bit%20is%20set%3A%3C%2FP%3E%0A%3CP%3E%E2%80%A2%20The%20transmit%20FIFO%20or%20receive%20FIFO%20is%20not%20handled%2C%20and%20the%20bus%20is%20stuck%20in%20the%20middle%20of%20a%20message.%3CBR%20%2F%3E%E2%80%A2%20No%20STOP%20is%20issued%20after%20data%20transfer%20(there%20is%20a%20gap%20between%20messages).%3C%2FP%3E%0A%3CP%3ECan%20you%20check%20If%20there%20is%20a%20condition%20that%20the%20data%20sitting%20in%20the%20FIFO%20for%20a%20period%20of%20time%20and%20you%20don't%20read%20promptly%3F%3C%2FP%3E%0A%3CP%3EI%20think%20the%20bus%20is%20in%20fault%20condition%20and%20not%20back%20to%20idle%20state%20even%20before%20you%20emit%20stop%2C%20the%20problem%20is%20NOT%20in%20mcux_i3c_do_request_emit_stop().%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20%20language-c%22%3E%3CCODE%3E%5B01%3A09%3A10.791%2C063%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x0010000%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2051815%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2051815%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%20Thank%20you%20for%20the%20quick%20response.%3CBR%20%2F%3E%3CBR%20%2F%3ESo%20i%20get%20intermittent%20errors%20with%20some%20transactions%20that%20do%20not%20result%20in%20failures%20(i%20can%20share%20those%20if%20you'd%20like%20too)%2C%20but%20here%20are%20the%20errors%20i%20get%20just%20before%20the%20bus%20fails.%26nbsp%3B%20this%20is%20after%20communicating%20with%20the%20peripherals%20a%20few%20times%20a%20second%20for%20over%20an%20hour%3A%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%5B01%3A09%3A10.791%2C048%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B01%3A09%3A10.791%2C059%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B01%3A09%3A10.791%2C063%5D%20%3CDBG%3E%20i3c_mcux%3A%20mcux_i3c_has_error%3A%20ERROR%3A%20MCTRL%200x0002d350%20MSTATUS%200x00009003%20MERRWARN%200x00100000%0A%5B01%3A09%3A10.791%2C067%5D%20%3CERR%3E%20i3c_mcux%3A%20Timeout%20error%0A%5B01%3A09%3A10.916%2C786%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B01%3A09%3A12.042%2C217%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%0A%5B01%3A09%3A13.169%2C180%5D%20%3CERR%3E%20i3c_mcux%3A%20Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x00000052%20MSTATUS%200x00001003%20MERRWARN%200x00000000%20MIBIRULES%200x00000000%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FERR%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FDBG%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%3CBR%20%2F%3EI%20modified%20the%20%60mcux_i3c_do_request_emit_stop()%60%20to%20look%20like%20this%20and%20give%20me%20some%20better%20logging%20(and%20attempt%20some%20recovery%20by%20clearing%20everything...it%20doesn't%20work%20the%20bus%20was%20still%20dead%20after%20these%20file%20logs%20are%20emitted)%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3Estatic%20inline%20int%20mcux_i3c_do_request_emit_stop(I3C_Type%20*base%2C%20bool%20wait_stop)%0A%7B%0A%09reg32_update(%26amp%3Bbase-%26gt%3BMCTRL%2C%0A%09%09%20%20%20%20%20I3C_MCTRL_REQUEST_MASK%20%7C%20I3C_MCTRL_DIR_MASK%20%7C%20I3C_MCTRL_RDTERM_MASK%2C%0A%09%09%20%20%20%20%20I3C_MCTRL_REQUEST_EMIT_STOP)%3B%0A%0A%09%2F*%0A%09%20*%20EMIT_STOP%20request%20doesn't%20result%20in%20MCTRLDONE%20being%20cleared%0A%09%20*%20so%20don't%20wait%20for%20it.%0A%09%20*%2F%0A%0A%09if%20(wait_stop)%20%7B%0A%09%09%2F*%0A%09%09%20*%20Note%20that%20we%20don't%20exactly%20wait%20for%20I3C_MSTATUS_STATE_IDLE.%0A%09%09%20*%20If%20there%20is%20an%20incoming%20IBI%2C%20it%20will%20get%20stuck%20forever%0A%09%09%20*%20as%20state%20would%20be%20I3C_MSTATUS_STATE_SLVREQ.%0A%09%09%20*%2F%0A%09%09int%20stop_tries%20%3D%200%3B%0A%09%09while%20(reg32_test_match(%26amp%3Bbase-%26gt%3BMSTATUS%2C%20I3C_MSTATUS_STATE_MASK%2C%0A%09%09%09%09%09I3C_MSTATUS_STATE_NORMACT))%20%7B%0A%09%09%09if%20(mcux_i3c_has_error(base))%20%7B%0A%09%09%09%09%2F*%0A%09%09%09%09%20*%20A%20timeout%20error%20has%20been%20observed%20on%0A%09%09%09%09%20*%20an%20EMIT_STOP%20request.%20Refman%20doesn't%20say%0A%09%09%09%09%20*%20how%20that%20could%20occur%20but%20clear%20it%0A%09%09%09%09%20*%20and%20return%20the%20error.%0A%09%09%09%09%20*%2F%0A%09%09%09%09if%20(reg32_test(%26amp%3Bbase-%26gt%3BMERRWARN%2C%0A%09%09%09%09%09%20%20%20%20%20%20%20I3C_MERRWARN_TIMEOUT_MASK))%20%7B%0A%09%09%09%09%09mcux_i3c_errwarn_clear_all_nowait(base)%3B%0A%09%09%09%09%09return%20-ETIMEDOUT%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20-EIO%3B%0A%09%09%09%7D%0A%09%09%09k_busy_wait(10)%3B%0A%09%09%09stop_tries%2B%2B%3B%0A%09%09%09if%20(stop_tries%20%26gt%3B%2010000)%7B%0A%09%09%09%09uint32_t%20mstatus%2C%20merrwarn%2C%20ibirules%2C%20mctrl%3B%0A%09%09%09%09int%20err%3B%0A%09%09%09%09mstatus%20%3D%20base-%26gt%3BMSTATUS%3B%0A%09%09%09%09merrwarn%20%3D%20base-%26gt%3BMERRWARN%3B%0A%09%09%09%09ibirules%20%3D%20base-%26gt%3BMIBIRULES%3B%0A%09%09%09%09mctrl%20%3D%20base-%26gt%3BMCTRL%3B%0A%09%09%09%09LOG_ERR(%22Tried%20to%20emit%20stop%2010000times..clearing%20all!%20MCTRL%200x%2508x%20MSTATUS%200x%2508x%20MERRWARN%200x%2508x%20MIBIRULES%200x%2508x%22%2C%0A%09%09%09%09%09mctrl%2C%20mstatus%2C%20merrwarn%2C%20ibirules)%3B%0A%09%09%09%09stop_tries%20%3D%200%3B%0A%09%09%09%09k_msleep(1000)%3B%0A%09%09%09%09mcux_i3c_errwarn_clear_all_nowait(base)%3B%0A%0A%09%09%09%09%2F%2Fsame%20mask%20as%20clear%20all%20but%20no%20inf%20busy%20wait%0A%09%09%09%09uint32_t%20clear_mask%20%3D%20I3C_MSTATUS_MCTRLDONE_MASK%20%7C%0A%09%09%09%09%09I3C_MSTATUS_COMPLETE_MASK%20%7C%0A%09%09%09%09%09I3C_MSTATUS_IBIWON_MASK%20%7C%0A%09%09%09%09%09I3C_MSTATUS_ERRWARN_MASK%3B%0A%09%09%09%09if((err%20%3D%20mcux_i3c_status_clear_timeout(base%2C%20clear_mask%2C%201000))%20!%3D%200)%7B%20%20%2F%2Fclear%20all%20with%20wait%201ms%0A%09%09%09%09%09LOG_WRN(%22timeout%20clearing%20status%20mask%20%3D%200x%2508x%22%2C%20clear_mask)%3B%0A%09%09%09%09%7D%3B%0A%09%09%09%09%2F%2F%20return%20-ETIMEDOUT%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09return%200%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%26nbsp%3B%3CBR%20%2F%3ESo%20it%20looks%20like%20there%20are%20no%20IBI%20and%20the%20bus%20is%20in%20NORMACT%20and%20I2C%20mode.%20But%20its%20trapped%20with%20the%20Emit%20Stop%20indefinitely.%26nbsp%3B%20When%20you%20say%20I%20should%20be%20in%20IDLE%20and%20POR%20state%20what%20bits%20should%20I%20be%20setting%20in%20which%20registers%20here%20to%20force%20that%3F%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%2C%26nbsp%3B%3CBR%20%2F%3EGalen%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2051098%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2051098%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%20Galen%2C%3C%2FP%3E%0A%3CP%3EIBI%20is%20an%20I3C%20only%20feature%20and%20should%20be%20disabled%20if%20you%20are%20doing%20I2C%20communication%20only.%20e.g.%20make%20sure%20you%20are%20NOT%20doing%20anything%20to%20MIBIRULES%20register.%3C%2FP%3E%0A%3CP%3EBut%2C%20regardless%20I2C%20or%20I3C%2C%20Emit%20Start%2FStop%20requests%20are%20still%20used%20for%20generating%20Start%2FStop%20condition%20of%20I2C.%20See%20Section%20%22Reading%20and%20writing%20I2C%20messages%20using%20normal%20method%22%20for%20more%20details.%3C%2FP%3E%0A%3CP%3EI%20don't%20know%20what%20other%20I3C%20features%20you%20have%20enabled%2C%20regardless%2C%20don't%20register%20IBI.%3C%2FP%3E%0A%3CP%3ERegarding%20recovery%20control%2C%20it%20depends%20on%20what%20kind%20of%20error%20you%20got%20first.%20A%20few%20things%20I%20can%20think%20of%3A%20you%20should%20makes%20sure%20the%20master%20is%20in%20IDLE%20state%2C%20master%20configuration%20is%20back%20to%20the%20POR%20default%20state%2C%20no%20pending%20interrupt%20OR%20all%20master%20status%20bits%20should%20be%20cleared.%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2050665%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2050665%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F246390%22%20target%3D%22_blank%22%3E%40galenc%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EI%20chcked%20the%20i3c%20source%20code%20from%20Zephyr%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2F70f55bccf8af2866331f6fd84e05c600f4457704%2Fdrivers%2Fi3c%2Fi3c_mcux.c%23L626%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2F70f55bccf8af2866331f6fd84e05c600f4457704%2Fdrivers%2Fi3c%2Fi3c_mcux.c%23L626%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThese%20codes%20in%20this%20file%20which%20follow%26nbsp%3BApache-2.0%20were%20contributed%20from%20freescale%2C%20intel%2C%20nxp.%20I%20may%20need%20a%20little%20time%20to%20check%20if%20I%20can%20find%20right%20person%20to%20deal%20with%20this.%20Also%2C%20you%20can%20use%26nbsp%3B%3CSPAN%3EZephyr%20community%20(%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22221%22%3E%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22222%22%3E%3CA%20class%3D%22external-link%22%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fdiscussions%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20data-fm-marker%3D%22223%22%20target%3D%22_blank%22%3EDiscussions%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22224%22%3E%26nbsp%3Band%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22225%22%3E%3CA%20class%3D%22external-link%22%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fissues%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20data-fm-marker%3D%22226%22%20target%3D%22_blank%22%3EIssues%3C%2FA%3E%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22227%22%3E%26nbsp%3B%3C%2FSPAN%3E%3CSPAN%20data-fm-marker%3D%22228%22%3E)%2C%20they%20will%20support%20you%20directly.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EAbout%20this%20I3C%20question(emit%2C%20IBI)%2C%20I%20would%20like%20to%20share%20common%20driver%20from%20NXP%3A%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcux-sdk%2Fblob%2Fmain%2Fdrivers%2Fi3c%2Ffsl_i3c.c%23L690%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcux-sdk%2Fblob%2Fmain%2Fdrivers%2Fi3c%2Ffsl_i3c.c%23L690%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2050264%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2050264%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ESo%20I%20have%20been%20doing%20a%20lot%20of%20debugging%20and%20solved%20a%20couple%20of%20the%20failure%20modes.%26nbsp%3B%20The%20last%20one%20I%20have%20narrowed%20down%20to%20this%20line%20of%20code%20in%20the%20i3c%20driver%20in%20zephyr%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2F70f55bccf8af2866331f6fd84e05c600f4457704%2Fdrivers%2Fi3c%2Fi3c_mcux.c%23L659%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2F70f55bccf8af2866331f6fd84e05c600f4457704%2Fdrivers%2Fi3c%2Fi3c_mcux.c%23L659%3C%2FA%3E%3CBR%20%2F%3E%3CBR%20%2F%3EBasically%20the%20%60mcux_i3c_do_request_emit_stop()%60%20function%20in%20%60drivers%2Fi3c%2Fi3c_mcux.c%60%20will%20get%20stuck%20in%20this%20loop%20with%20a%20k_busy_wait(10)%20forever%20unable%20to%20emit%20a%20stop%20and%20it%20will%20essentially%20block%20zephyr%20from%20context%20switching%20as%20well%2C%20because%20its%20a%20busy%20wait%2C%20so%20my%20entire%20app%20is%20dead.%3CBR%20%2F%3E%3CBR%20%2F%3ELike%20i%20mentioned%20we%20aren't%20using%20any%20i3c%20features%20all%20our%20peripherals%20are%20actually%20i2c.%26nbsp%3B%20I'm%20not%20exactly%20sure%20what%20emitting%20a%20stop%20does%20but%20it%20seems%20to%20be%20associated%20with%20the%20IBI%3F%26nbsp%3B%20How%20is%20it%20possible%20that%20the%20subsystem%20has%20lost%20control%20of%20the%20bus%20completely%3F%26nbsp%3B%20I'm%20not%20sure%20if%20you%20have%20some%20good%20ideas%20on%20how%20to%20solve%20this%20but%20two%20ideas%20I%20had%20were%2C%20but%20I'm%20not%20sure%20how%20to%20implement%20them%3A%3CBR%20%2F%3E%3CBR%20%2F%3E1.%20Disable%20all%20i3c%20features%20or%20at%20least%20any%20that%20would%20make%20it%20unable%20to%20emit%20a%20stop%20(or%20need%20to%20at%20all)%2C%20or%20force%20it%20into%20a%20mode%20where%20we%20can%20ignore%20the%20stop%20condition%3F%3C%2FP%3E%3CP%3E2.%20Is%20there%20a%20way%20to%20recover%20control%20of%20the%20bus%20here%20back%20to%20an%20initial%20state%3F%3CBR%20%2F%3E%3CBR%20%2F%3EOther%20then%20that%20can%20you%20provide%20some%20context%20as%20to%20what%20is%20going%20on%20in%20this%20function%2C%20i.e.%20what%20is%20it%20exactly%20waiting%20for%3F%26nbsp%3B%20how%20can%20we%20make%20sure%20that%20condition%20happens%20eventually%3F%3CBR%20%2F%3E%3CBR%20%2F%3EThanks%2C%3CBR%20%2F%3EGalen%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2039166%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20RT685%20i3c%20port%20with%20Zephyr%20-%20driver%20with%20i2c%20devices%20dies%20after%20minutes%20of%20use%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2039166%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F246390%22%20target%3D%22_blank%22%3E%40galenc%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIt%20seems%20some%20issues%20releated%20to%20I3C%2C%20Zephyr%2C%26nbsp%3B%3CSPAN%3Elsm6dso%20sensor%20and%20SDK.%20I%20try%20to%20clairfy%20what%20I%20found%20one%20by%20one%20as%20below%2C%20hope%20these%20comments%20help%20you%20find%20the%20root%20cause.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E1.%20It%20seems%20support%20wm8904%20codec%20as%20default%20I3C%20in%20Zephyr%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fmimxrt685_evk_mimxrt685s_cm33.dts%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fmimxrt685_evk_mimxrt685s_cm33.dts%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fmimxrt685_evk-pinctrl.dtsi%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fmimxrt685_evk-pinctrl.dtsi%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%3E%26amp%3Bi3c0%20%7B%0A%09pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinmux_i3c%26gt%3B%3B%0A%09pinctrl-names%20%3D%20%22default%22%3B%0A%0A%09status%20%3D%20%22okay%22%3B%0A%0A%09audio_codec%3A%20wm8904%401a0000000000000000%20%7B%0A%09%09compatible%20%3D%20%22wolfson%2Cwm8904%22%3B%0A%09%09reg%20%3D%20%26lt%3B0x1a%200%200%26gt%3B%3B%0A%0A%09%09clock-source%20%3D%20%22MCLK%22%3B%0A%0A%09%09clocks%20%3D%20%26lt%3B%26amp%3Bclkctl0%20MCUX_AUDIO_MCLK%26gt%3B%3B%0A%09%09clock-names%20%3D%20%22mclk%22%3B%0A%09%7D%3B%0A%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3BAnd%20actually%20I%20find%20it%20seems%20only%20support%20I2C(not%20mentioned%20I3C)%20from%20the%20introdcution%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fdoc%2Findex.rst%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fblob%2Fmain%2Fboards%2Fnxp%2Fmimxrt685_evk%2Fdoc%2Findex.rst%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CTABLE%3E%0A%3CTBODY%20valign%3D%22top%22%3E%0A%3CTR%3E%0A%3CTD%3EPIO0_17%3C%2FTD%3E%0A%3CTD%3EI2C%3C%2FTD%3E%0A%3CTD%3EI2C%20SDA%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3CTR%3E%0A%3CTD%3EPIO0_18%3C%2FTD%3E%0A%3CTD%3EI2C%3C%2FTD%3E%0A%3CTD%3EI2C%20SCL%3C%2FTD%3E%0A%3C%2FTR%3E%0A%3C%2FTBODY%3E%0A%3C%2FTABLE%3E%0A%3CBR%20%2F%3E%0A%3CP%3E2.%20If%20you%20use%20EVKMIMXRT685%2C%20I%20would%20like%20to%20recommend%20you%20to%20use%20%3CA%20href%3D%22https%3A%2F%2Fmcuxpresso.nxp.com%2Fen%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Eoffical%20SDK%3C%2FA%3E%20instead%20for%20testing.%20Please%20note%20the%20necessary%20board%20setting%20of%20I3C%20before%20your%20quick%20start%2C%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcux-sdk-examples%2Ftree%2Fmain%2Fevkmimxrt685%2Fdriver_examples%2Fi3c%2Fpolling_b2b_transfer%2Fmaster%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fmcux-sdk-examples%2Ftree%2Fmain%2Fevkmimxrt685%2Fdriver_examples%2Fi3c%2Fpolling_b2b_transfer%2Fmaster%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B3.%20Also%20please%20check%20the%20sensor%20part(salve)%20independently%20whether%20this%20sensor%20support%20I3C%20or%20not.%3C%2FP%3E%0A%3CP%3E4.%20Currently%20it%20is%20diffcult%20to%20give%20clear%20direction%20or%20sw%2Fhw%20issue.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EB.R%2C%3C%2FP%3E%0A%3CP%3ESam%3C%2FP%3E%3C%2FLINGO-BODY%3E