diff options
author | Ruibin Chang <ruibin.chang@ite.com.tw> | 2020-07-28 10:57:55 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-31 05:24:29 +0000 |
commit | d986075dc3c41748556170dd3ef3b67adb64578b (patch) | |
tree | 02c45d67a7c72297436619ec1861d6b8eaf8bb6b /driver/tcpm/it83xx_pd.h | |
parent | 7e36bc92e96b9bf7a64f1b0abb51c67cf967ad54 (diff) | |
download | chrome-ec-d986075dc3c41748556170dd3ef3b67adb64578b.tar.gz |
chip/it83xx, it8xxx2: implement detect cc disconnection interrupt for SRC role
Implement detect cc disconnection interrupt for source. When TCPC
detect SNK/audio/debug device plug out (cc lines open), TCPC can
interrupt pd task to update cc state.
BUG=b:160548079
BRANCH=none
TEST=test on board reef_it8320, it81202_pdevb with TCPMv1, TCPMv2.
Connect to dongle, adapter and DRP, check
1.Plug in/out interrupt fire correctly.
2.Power role swap can state to SRC_READY and SNK_READY.
3.When partner disconnect, we discharge Vconn within
tVconnOFF(35ms).
Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
Change-Id: I58bc8a5a9289df4ea4e8b3efec000d3a9ab1cb5d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2294626
Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'driver/tcpm/it83xx_pd.h')
-rw-r--r-- | driver/tcpm/it83xx_pd.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/driver/tcpm/it83xx_pd.h b/driver/tcpm/it83xx_pd.h index ed45f1be6e..aa729b9c79 100644 --- a/driver/tcpm/it83xx_pd.h +++ b/driver/tcpm/it83xx_pd.h @@ -90,7 +90,7 @@ #define IT83XX_USBPD_TCDCR(p) REG8(IT83XX_USBPD_BASE(p)+0x67) #define USBPD_REG_PLUG_OUT_DETECT_TYPE_SELECT BIT(7) #define USBPD_REG_MASK_TYPEC_PLUG_IN_OUT_ISR BIT(4) -#define USBPD_REG_PLUG_IN_OUT_SELECT BIT(3) +#define USBPD_REG_PLUG_OUT_SELECT BIT(3) #define USBPD_REG_PLUG_IN_OUT_DETECT_DISABLE BIT(1) #define USBPD_REG_PLUG_IN_OUT_DETECT_STAT BIT(0) #define IT83XX_USBPD_PDQSCR(p) REG8(IT83XX_USBPD_BASE(p)+0x70) @@ -195,7 +195,7 @@ #define USBPD_REG_MASK_BMC_RX_THRESHOLD_SNK BIT(1) #define IT83XX_USBPD_TCDCR(p) REG8(IT83XX_USBPD_BASE(p)+0x67) #define USBPD_REG_PLUG_OUT_DETECT_TYPE_SELECT BIT(7) -#define USBPD_REG_PLUG_IN_OUT_SELECT BIT(6) +#define USBPD_REG_PLUG_OUT_SELECT BIT(6) #define USBPD_REG_PD3_0_SNK_TX_OK_DISABLE BIT(5) #define USBPD_REG_PD3_0_SNK_TX_NG_DISABLE BIT(3) #define USBPD_REG_PLUG_IN_OUT_DETECT_DISABLE BIT(1) @@ -353,6 +353,8 @@ IS_MASK_SET(IT83XX_USBPD_ISR(port), USBPD_REG_MASK_MSG_RX_DONE) #define USBPD_IS_PLUG_IN_OUT_DETECT(port)\ IS_MASK_SET(IT83XX_USBPD_TCDCR(port), USBPD_REG_PLUG_IN_OUT_DETECT_STAT) +#define USBPD_IS_PLUG_IN(port) \ + IS_MASK_CLEAR(IT83XX_USBPD_TCDCR(port), USBPD_REG_PLUG_OUT_SELECT) #if defined(CONFIG_USB_PD_TCPM_DRIVER_IT83XX) #define USBPD_IS_FAST_SWAP_DETECT(port) \ IS_MASK_SET(IT83XX_USBPD_PD30IR(port), USBPD_REG_FAST_SWAP_DETECT_STAT) @@ -403,5 +405,6 @@ void it83xx_disable_pd_module(int port); void it83xx_clear_tx_error_status(enum usbpd_port port); void it83xx_get_tx_error_status(enum usbpd_port port); #endif +void switch_plug_out_type(enum usbpd_port port); #endif /* __CROS_EC_DRIVER_TCPM_IT83XX_H */ |