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.

TPS65988: Attach, Detach events over I2C1 and Charging Port Disable

Part Number: TPS65988
Other Parts Discussed in Thread: TPD6S300

Dear TI Representative -

I'm using multiple TPS65988's to control a bunch of charging ports.  I have a couple questions about how I should achieve various functions, which I'm confident are all possible.  My host processor is maxed out, so I would prefer not to run additional IO back to the host and instead achieve these goals over I2C1.  However, if it will be cumbersome to do this via software using the I2C port, I will add a port expander to my board so that I can check the GPIO events for each function instead.  Right now, only I2C1 is connected between the host and the TPS65988's.  I need to signal when a device has been attached, when it has been removed, what power profile is in use, and how much charging current is being delivered.  I measure the current myself and route it through my host's ADC.  I am hoping to glean the power profile and attach/detach events using the I2C bus instead of using GPIO events.  As a backup I can read the PDO0 and PDO1 outputs to glean the power profile and I can push the cable attach/detach events to GPIO's as well (or so it seems. Please tell me if I'm wrong.)  However - I'm out of I/O and I'm wondering if I2C1 could generate an interrupt when a cable is attached or removed.  I'm sure I can read the PDO0 and PDO1 outputs from a register - but I didn't see it after a couple passes through the TRM.  I can find that info, but if you are able to quickly point out which registers hold that info it would be very helpful.

One other question... In my application I can only allow one of the two charging ports to be used at a time.  I would approach this by disconnecting the power path (PPHV2, for example) on the other port/connector, but I also need to detect whether a device has been attached or removed.  This info prompts the user that they can't connect multiple devices.  Is there something I can do in the TPS65988 to tell it that once a device is charging, it must not charge a second device?  (While still telling me if something has been attached or detached?)  I'm also wondering... if I need to achieve this by disconnecting the second PPHV path, do I also need to disconnect the other port's PP_CABLE?  If I do that, would I see if a second port has a device attached?

Thank you for help,


  • Hey Adam,

    Yes there are GPIO events such as the Port 0/1 Plug events and Source/Sink PDO# Negotiated events that you can program via the GUI to use for your application. Therefore, you could use a combination of GPIOs to signal to the Host for these events.

    Could you elaborate a little more on your second part, do you have a block diagram or anything to show this?

    Thank you,


  • Hi Hari,

    I understand there are GPIO events for the port0/1 plug connection and removal.  I've used these via the GUI and they work just fine but I am trying to avoid using any more GPIO if possible.  Do the plug events generate an interrupt on I2C1 or can they be made to do so?  My host processor has a tremendous amount of IO already and I'm using several TPS65988's, so routing multiple GPIO from each will require a couple IO expanders.  If the plug events generate an interrupt and messages on the I2C1 bus automatically...  I won't need to watch the GPIO for plug events and I can avoid the port expanders because the I2C1 interface will tell me when a port event has occurred.  That would be better, because I am space and IO constrained.  However, I cannot afford the latency of polling all the TPS65988 devices to read the port status registers - checking for whether a plug is attached or not.  I need an interrupt and I am hoping there's a way to get it on the I2C1 interface instead of the GPIO.

    For the second part:

    I don't have a block diagram to share - the application is very niche and I am not permitted to.  Multiple charging ports will be grouped together and each port within a group will get assigned a different type of cable.  So for example, one TPS65988 controls two USB C charging ports.  Connector A will be used for a USB-C to micro-USB cable and Connector B will be used for a USB-C to USB-C cable.  Both ports have to be fully functional, but only one port is permitted to charge a device at a time.  So, if someone plugs in a USB C capable device, the micro USB port cannot charge a second device.  Only one at a time is permitted.  We need to see the attach/detach events from both ports because if someone tries to attach two devices, we need to prompt them to remove the second device and move to a different group of cables.  I'm looking for TI's recommendation on how I can set up the port controller so that I see attach/detach events, but only allow one device to charge at a time.  The TPS65988 only has one reset and I don't see any port0/1 enable/disable logic.  Does that exist?

    If no, would I still see the attach/detach events on the second port if I disconnect the power path?  For example, if Connector 1 is in use, I could disconnect PPHV2 so that port 2 cannot charge a device.  If I do that - will I still get the attach and removal port events?



  • Hi Adam,

    1. Have you looked at the I2C interrupt events in HI TRM address 0x14 and 0x15? 
    2. You can enable/disable the port power switch in Global System Configuration (0x27)



  • Hi Peter,

    Thank you for pointing me towards these.  While I'm looking into these, I have one other question that came up in our design review..

    In the various reference designs, TI includes TPD6S300 at the C connectors for protection.  I lifted that from the eval boards and one of our Engineers had a question...  The fault line, pin 9, doesn't appear to go anywhere in the reference boards... is this signal necessary for the TPS65988 devices?  Should I route that back to my host processor so that I can act on a fault by shutting down the port controller or disabling the power supply?  Perhaps this is more likely to be used in more advanced systems, I'm not sure.. I am operating solely as a dataless dedicated charging port up to 45W.

    Thanks very much for your help,


  • Hi Adam,

    This TPD6S300 device will shut off its path when any of the Fault events occurs, so it's protecting the system already.

    You can refer to its datasheet for more details.