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.

UCD90120A: How do I use the Kernel Module for UCD9000 series?

Part Number: UCD90120A


Kernel Module: github.com/.../ucd9000.c

I've enabled the kernel module in the device tree here:

&i2c1{

	status = "okay";
	clock-frequency = <200000>;
	pinctrl-names = "default";

	ucd90120@44 {
		status = "okay";
		compatible = "ti,ucd90120";
		reg = <0x44>;
	};
};

The Resistor on PMBUS_Addr0 is 84.5k

The Resistor on PMBUS_Addr1 is 36.5k

Based on the table in the datasheet:


I believe the address is either 0x44 (d68) or 0x38 (d56), but not sure which.

I2cdetect doesn't see either of these addresses. Only 0x56, which doesn't make sense based on the table.

When the module is loaded, I don't see anything to interact with it. Only that its listed in the devices.

./sys/bus/i2c/drivers/ucd9000
./sys/firmware/devicetree/base/amba/i2c@ff020000/ucd90120@44

How do I use this module? I firstly just want to detect if the device is present in the system.

  • Hi

    I suggest first to ensure that UCD90120A has been properly power up. have you probed the V33A/V33D/BPCAP?

    Second is 1% accuracy resistor used?

    Have you read from 0x56 to see whether this is the address of UCD90120A?

    you can read oxFD command from 0x56

    please be noted this command is block read so please follow block read protocol.

    0x5543443930313230417C322E332E342E303030307C31313036303300

    As for the module, it is not developed by TI and you may need google to see how to use it.

    Regards

    Yihe

  • The 3.3v rail is on for the other devices, so I assume for that as well. Cannot probe at the moment.

    - Resistor Accuracy unsure.

    - 0x56 (d88) is not an actually possible address because it would require having 1 resistor in bin 7, and the other being shorted. This however would set the address to d126.

    Unfortunately, I've been googling the last couple of days and not much info is to be found besides the driver file. Resorted to stop skulking the forums and actually asking a question.

  • Hi

    Do you have the USB-TO-GPIO dongle (https://www.ti.com/tool/USB-TO-GPIO?keyMatch=USB-TO-GPIO%20DONGLE )?

    you can connect this dongle to the I2C signal in your board and install the https://www.ti.com/tool/FUSION_DIGITAL_POWER_DESIGNER this software on you PC. it can help to detect whether the UCD90120A is good and what address it has

    Regards

    YIhe