Hi there—I have two questions related to dead battery recovery. I am using a patch bundle exported from version 7.0.4 of the GUI, and the INFO register reports TPS65992 HW00A1 FWF509.05.61_0003 ZAceS.
[1] I find that the device cannot act as a source following a dead battery condition. After the device starts in dead-battery mode and a patch bundle is applied, the registers are read as follows:
0x0d: 0xf8 0x19 0x00 0x00
0x0f: 0x61 0x05 0x09 0xf5
0x14: 0x08 0x00 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x16: 0x0a 0x30 0x30 0x4d 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x18: 0x08 0x00 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x1a: 0x00 0x00 0x00 0x40 0x00
0x26: 0x00 0x00 0x00 0x00 0x80
0x29: 0x72 0x50 0x81 0x03
0x2d: 0x34 0x03 0xf0 0xc2 0xa1
0x30: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x31: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x32: 0x01 0xa8 0x2a 0x2c 0x91 0x01 0x26 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0x2c 0x41 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x33: 0x02 0x2c 0x91 0x01 0x10 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0xf4 0x41 0x06 0x00 0x45 0x41 0x06 0x00 0x00 0x00 0x00 0x000
0x34: 0x00 0x00 0x00 0x00 0x00 0x00
0x35: 0x00 0x00 0x00 0x00
0x3f: 0x00 0x00
0x40: 0x00 0x00 0x00 0x00
0x69: 0x00 0x00 0x00 0x66
0x70: 0x01
0x72: 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00
We can see from register 0x26 that the dead battery flag is set. After I write the DBfg 4CC command and plug in a USB sink, the registers are read as follows:
0x0d: 0xf8 0x19 0x00 0x00
0x0f: 0x61 0x05 0x09 0xf5
0x14: 0x08 0x00 0x00 0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x16: 0x0a 0x30 0x30 0x4d 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x18: 0x08 0x00 0x00 0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x1a: 0x00 0x00 0x00 0x40 0x00
0x26: 0x00 0x00 0x00 0x00 0x40
0x29: 0x72 0x50 0x81 0x03
0x2d: 0x30 0x03 0xf0 0xc2 0xa1
0x30: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x31: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x32: 0x01 0xa8 0x2a 0x2c 0x91 0x01 0x26 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0x2c 0x41 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x33: 0x02 0x2c 0x91 0x01 0x10 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0xf4 0x41 0x06 0x00 0x45 0x41 0x06 0x00 0x00 0x00 0x00 0x000
0x34: 0x00 0x00 0x00 0x00 0x00 0x00
0x35: 0x00 0x00 0x00 0x00
0x3f: 0x00 0x00
0x40: 0x00 0x00 0x00 0x00
0x69: 0x00 0x00 0x00 0x66
0x70: 0x01
0x72: 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00
We can see the dead battery flag is now clear, but both ConnState and PlugPresent in register 0x1A are zero. After I write the GAID 4CC command and plug in the USB sink once more, the registers are read as follows:
0x0d: 0xf8 0x19 0x00 0x00
0x0f: 0x61 0x05 0x09 0xf5
0x14: 0x08 0x00 0x00 0x0d 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x16: 0x0a 0x30 0x30 0x4d 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x18: 0x08 0x00 0x00 0x0d 0x00 0x00 0x00 0x00 0x00 0x00 0x03
0x1a: 0x6d 0x00 0x10 0x42 0x00
0x26: 0x80 0x00 0x00 0x00 0x40
0x29: 0x72 0x50 0x81 0x03
0x2d: 0x30 0x03 0xf0 0xc2 0xa1
0x30: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x31: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x32: 0x01 0xa8 0x2a 0x2c 0x91 0x01 0x26 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0x2c 0x41 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x000
0x33: 0x02 0x2c 0x91 0x01 0x10 0x2c 0xd1 0x02 0x00 0x2c 0xb1 0x04 0x00 0xf4 0x41 0x06 0x00 0x45 0x41 0x06 0x00 0x00 0x00 0x00 0x000
0x34: 0x00 0x00 0x00 0x00 0x60 0x02
0x35: 0x00 0x00 0x00 0x00
0x3f: 0x09 0x02
0x40: 0x40 0x00 0x00 0x00
0x69: 0x01 0x02 0x00 0x60
0x70: 0x01
0x72: 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00
Now, both ConnState and PlugPresent are set as expected, and the device behaves normally. Is this behavior expected, and is there any way I can rectify it?
[2] Is there any harm in writing the DBfg 4CC command if the dead battery flag is not set?
Thank you in advance for your help, and please let me know in case I can clarify either of my questions.