summaryrefslogtreecommitdiff
path: root/driver/tcpm/it83xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/tcpm/it83xx.c')
-rw-r--r--driver/tcpm/it83xx.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/driver/tcpm/it83xx.c b/driver/tcpm/it83xx.c
index fd03426e33..14e7571dc6 100644
--- a/driver/tcpm/it83xx.c
+++ b/driver/tcpm/it83xx.c
@@ -525,7 +525,14 @@ static int it83xx_tcpm_set_vconn(int port, int enable)
static int it83xx_tcpm_set_msg_header(int port, int power_role, int data_role)
{
- it83xx_set_power_role(port, power_role);
+ /* PD_ROLE_SINK 0, PD_ROLE_SOURCE 1 */
+ if (power_role == PD_ROLE_SOURCE)
+ /* bit0: source */
+ SET_MASK(IT83XX_USBPD_PDMSR(port), BIT(0));
+ else
+ /* bit0: sink */
+ CLEAR_MASK(IT83XX_USBPD_PDMSR(port), BIT(0));
+
it83xx_set_data_role(port, data_role);
return EC_SUCCESS;