在RK3562 Buildroot上面,使用ET7301B或者FUSB302BMPX这两款Type-C协议芯片时,通过Type-C直连线(即线两头都是Type-C口),与Thinkpad L14笔记本电脑(Windows10)上面的两个Type-C口来回插拔(其中一个是有充电图标,实际两个都支持对电脑充电),会出现CC协议芯片异常,发现VBUS测量到是无电状态,并且再次插拔无法恢复,于是在驱动里面增加相应的log打印,异常时有如下打印信息:
fusb302_log---->restart toggling as CC_OPEN detected
当出现该信息时,拔线再接上线,就无法识别了,再进一步对比,发现异常时前后寄存器status0由0x11变为了0x33,对应LOG如下:
[ 177.864813] tcpm_log---->Start toggling
[ 177.870069] fusb302_log---->start drp toggling
[ 177.870145] tcpm_log---->state change SNK_UNATTACHED -> TOGGLING [rev2 NONE_AMS]
[ 177.881642] fusb302_log---->BC_LVL interrupt is turned off, abort
[ 177.967430] android_work: did not send uevent (0 0 0000000000000000)
[ 179.322417] fusb302_l