Skip to content

Commit 0a8aa23

Browse files
recalcikartben
authored andcommitted
usbc: Enable VBUS measurement before VBUS check level
Enable VBUS measurement before checking the VBUS level and disable it when unattached. Signed-off-by: Jianxiong Gu <[email protected]>
1 parent d9486cd commit 0a8aa23

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

subsys/usb/usb_c/usbc_pe_snk_states.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,14 @@ void pe_snk_startup_run(void *obj)
106106
*/
107107
void pe_snk_discovery_entry(void *obj)
108108
{
109+
struct policy_engine *pe = (struct policy_engine *)obj;
110+
const struct device *dev = pe->dev;
111+
struct usbc_port_data *data = dev->data;
112+
const struct device *vbus = data->vbus;
113+
109114
LOG_INF("PE_SNK_Discovery");
115+
116+
usbc_vbus_enable(vbus, true);
110117
}
111118

112119
/**

subsys/usb/usb_c/usbc_tc_snk_states.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,15 @@ void tc_unattached_snk_run(void *obj)
9898
{
9999
struct tc_sm_t *tc = (struct tc_sm_t *)obj;
100100
const struct device *dev = tc->dev;
101+
struct usbc_port_data *data = dev->data;
102+
const struct device *vbus = data->vbus;
101103

102104
/*
103105
* Transition to AttachWait.SNK when the SNK.Rp state is present
104106
* on at least one of its CC pins.
105107
*/
106108
if (tcpc_is_cc_rp(tc->cc1) || tcpc_is_cc_rp(tc->cc2)) {
109+
usbc_vbus_enable(vbus, true);
107110
tc_set_state(dev, TC_ATTACH_WAIT_SNK_STATE);
108111
}
109112
}
@@ -240,6 +243,7 @@ void tc_attached_snk_run(void *obj)
240243

241244
/* Detach detection */
242245
if (usbc_vbus_check_level(vbus, TC_VBUS_PRESENT) == false) {
246+
usbc_vbus_enable(vbus, false);
243247
tc_set_state(dev, TC_UNATTACHED_SNK_STATE);
244248
return;
245249
}

subsys/usb/usb_c/usbc_tc_src_states.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,16 @@ void tc_unattached_wait_src_exit(void *obj)
122122
void tc_attach_wait_src_entry(void *obj)
123123
{
124124
struct tc_sm_t *tc = (struct tc_sm_t *)obj;
125+
const struct device *dev = tc->dev;
126+
struct usbc_port_data *data = dev->data;
127+
const struct device *vbus = data->vbus;
125128

126129
LOG_INF("AttachWait.SRC");
127130

128131
/* Initialize the cc state to open */
129132
tc->cc_state = TC_CC_NONE;
133+
134+
usbc_vbus_enable(vbus, true);
130135
}
131136

132137
void tc_attach_wait_src_run(void *obj)

0 commit comments

Comments
 (0)