This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UCD90160A: Failed to load ucd90160 driver during BMC startup

Part Number: UCD90160A
Other Parts Discussed in Thread: UCD90160,

We use BMC management peripherals. When BMC is switched to backup, the ucd90160 driver is loaded abnormally


[20220929 18:28:37][    3.061764] ucd9000 42-0034: Failed to read device ID
[20220929 18:28:37][    3.066888] ucd9000: probe of 42-0034 failed with error -5

After checking, it is found that each time the device ID cannot be read, an error is reported

We use the logic analyzer to measure the waveform, and the SCL is always low under abnormal conditions

What causes the low SCL? How to solve this problem?

There is another problem:

Why is the value unreadable for the first time in i2cget after i2cdetect, and can be read for the second time

  • Hi 

    For the SCL low, it is most due to that host does not follow the SMBUs/PMBUS protocol. Please ensure that host does not have the following

    : 1. issue a read operation with write first

      2. I2Cdetect

    3. if SCL is low for 35ms, the host shall also abort the transaction and start the whole transaction from beginning. 

    4. only send the protocol defined in the UCD90xxx PMBUS command reference guide, the total byte to read or write shall follow each command defined in the reference guide.

    I2C detect is a non support protocol so the next command may not get your correct value. Please skip i2Cdetect on the UCD90160A device.