Zephyr ti_tmp11x driver fails with -16 (EBUSY)

Hi

I am trying to integrate a "TMP117" temperature sensor with an nRF54L15 using the existing Zephyr tmp11x sensor driver.
The device is detected and initialized correctly, but sensor_sample_fetch() always fails with error -16 (EBUSY), Calls to read the internal EEPROM fail with -22 (-EINVAL).
I have performed debugging and confirmed the hardware is working perfectly via raw I2C commands. The issue appears to be specific to the Zephyr driver's state machine or initialization sequence.

sample code logs:

*** Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
Device tmp117@48 - 0x7b10 is ready
Failed to get eeprom content -22
Failed to fetch measurements (-16)

Manual I2C Tests logs:

*** Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
Device tmp117@48 - 0x7b10 is ready
SUCCESS: Found device at 0x48
Device ID Register: 0x0117
Raw Temp Register: 0x56CE (Approx: 173609 mC)

What I have tried (Debugging Steps):

  1. Hardware Verification: I bypassed the driver and used i2c_write_read to read Register 0x00. I get valid temperature data (~28°C), so wiring/pull-ups/voltage are correct.

  2. ID Verification: I read Register 0x0F manually. It returns 0x0117, confirming the chip is a genuine TMP117.

  3. Mode Conflict: I suspected the sensor was in "Continuous Mode" causing the driver (which expects Shutdown Mode) to see it as busy.

    • I manually wrote 0x0400 to the Configuration Register (0x01) to force Shutdown Mode before the driver loop started.

    • The write was successful, but sensor_sample_fetch still returned -16.

Question: Has anyone successfully used the ti_tmp11x driver on the nRF54L15? It seems the driver is either checking a status flag that is incorrectly interpreted as "Busy," or there is a timing mismatch with the I2C peripheral on this specific MCU.

Is there a specific overlay configuration required to make the TMP117 driver play nice with the nRF54's TWIM implementation?

The code im using is tmp11x sample code
MCU: nRF54L15
Sensor: TI TMP117 (Smartelex Breakout)
SDK: nRF Connect SDK v3.1.1
Communication: I2C (TWIM)


Parents Reply Children
No Data
Related