diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-06-01 16:23:30 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-06-02 14:06:53 -0700 |
commit | 54261224660e9deb980c8d39b74f144f01edf68a (patch) | |
tree | a794df2dc6bc10048ebc2f12be2b2efba5c40ef7 /common | |
parent | 4f600b32bbcdd1f870f8389b8666101d3a8513ed (diff) | |
download | chrome-ec-54261224660e9deb980c8d39b74f144f01edf68a.tar.gz |
cleanup: pd: Define VBUS detection source
Previously CONFIG_USB_PD_TCPM_VBUS had two uses which were independent:
- When operating as a TCPC, it indicated that the VBUS level should be
tracked (through GPIO inputs) and sent to the external TCPM when
appropriate.
- When operating as a TCPM, it indicated that the VBUS level should be
obtained by querying the TCPC.
These two independent uses have been split into
CONFIG_USB_PD_TCPC_TRACK_VBUS and CONFIG_USB_PD_VBUS_DETECT_TCPC, which
sould be more clear.
In addition, CONFIG_USB_PD_VBUS_DETECT_* CONFIGs have been added for
other means of VBUS detection.
BUG=chromium:616580
BRANCH=None
TEST=Verify kevin continues to boot + charge.
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Change-Id: I936821481d6577e17e3e9c61ff97c037574d6923
Reviewed-on: https://chromium-review.googlesource.com/348950
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/usb_charger.c | 8 | ||||
-rw-r--r-- | common/usb_pd_protocol.c | 8 | ||||
-rw-r--r-- | common/usb_pd_tcpc.c | 12 |
3 files changed, 16 insertions, 12 deletions
diff --git a/common/usb_charger.c b/common/usb_charger.c index 2b9c505f2e..67dd612e36 100644 --- a/common/usb_charger.c +++ b/common/usb_charger.c @@ -89,8 +89,12 @@ static void usb_charger_init(void) i, &charge_none); -#ifndef CONFIG_USB_PD_TCPM_VBUS - /* Initialize VBUS supplier based on whether VBUS is present */ +#ifndef CONFIG_USB_PD_VBUS_DETECT_TCPC + /* + * Initialize VBUS supplier based on whether VBUS is present. + * For CONFIG_USB_PD_VBUS_DETECT_TCPC, usb_charger_vbus_change() + * will be called directly from TCPC alert. + */ update_vbus_supplier(i, pd_snk_is_vbus_provided(i)); #endif } diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 276698710d..1de29a184f 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -224,7 +224,7 @@ void pd_vbus_low(int port) static inline int pd_is_vbus_present(int port) { -#ifdef CONFIG_USB_PD_TCPM_VBUS +#ifdef CONFIG_USB_PD_VBUS_DETECT_TCPC return tcpm_get_vbus_level(port); #else return pd_snk_is_vbus_provided(port); @@ -704,7 +704,7 @@ static void handle_data_request(int port, uint16_t head, case PD_DATA_SOURCE_CAP: if ((pd[port].task_state == PD_STATE_SNK_DISCOVERY) || (pd[port].task_state == PD_STATE_SNK_TRANSITION) -#ifdef CONFIG_USB_PD_NO_VBUS_DETECT +#ifdef CONFIG_USB_PD_VBUS_DETECT_NONE || (pd[port].task_state == PD_STATE_SNK_HARD_RESET_RECOVER) #endif @@ -1393,7 +1393,7 @@ void pd_task(void) int hard_reset_count = 0; #ifdef CONFIG_USB_PD_DUAL_ROLE uint64_t next_role_swap = PD_T_DRP_SNK; -#ifndef CONFIG_USB_PD_NO_VBUS_DETECT +#ifndef CONFIG_USB_PD_VBUS_DETECT_NONE int snk_hard_reset_vbus_off = 0; #endif #ifdef CONFIG_CHARGE_MANAGER @@ -2101,7 +2101,7 @@ void pd_task(void) case PD_STATE_SNK_HARD_RESET_RECOVER: if (pd[port].last_state != pd[port].task_state) pd[port].flags |= PD_FLAGS_DATA_SWAPPED; -#ifdef CONFIG_USB_PD_NO_VBUS_DETECT +#ifdef CONFIG_USB_PD_VBUS_DETECT_NONE /* * Can't measure vbus state so this is the maximum * recovery time for the source. diff --git a/common/usb_pd_tcpc.c b/common/usb_pd_tcpc.c index 8e6b9dda5e..644f27dcd1 100644 --- a/common/usb_pd_tcpc.c +++ b/common/usb_pd_tcpc.c @@ -978,7 +978,7 @@ int tcpc_set_polarity(int port, int polarity) return EC_SUCCESS; } -#ifdef CONFIG_USB_PD_TCPM_VBUS +#ifdef CONFIG_USB_PD_TCPC_TRACK_VBUS static int tcpc_set_power_status(int port, int vbus_present) { /* Update VBUS present bit */ @@ -993,7 +993,7 @@ static int tcpc_set_power_status(int port, int vbus_present) return EC_SUCCESS; } -#endif /* CONFIG_USB_PD_TCPM_VBUS */ +#endif /* CONFIG_USB_PD_TCPC_TRACK_VBUS */ int tcpc_set_power_status_mask(int port, uint8_t mask) { @@ -1102,7 +1102,7 @@ void tcpc_init(int port) pd_adc_read(port, i)); } -#ifdef CONFIG_USB_PD_TCPM_VBUS +#ifdef CONFIG_USB_PD_TCPC_TRACK_VBUS #if CONFIG_USB_PD_PORT_COUNT >= 2 tcpc_set_power_status(port, !gpio_get_level(port ? GPIO_USB_C1_VBUS_WAKE_L : @@ -1110,7 +1110,7 @@ void tcpc_init(int port) #else tcpc_set_power_status(port, !gpio_get_level(GPIO_USB_C0_VBUS_WAKE_L)); #endif /* CONFIG_USB_PD_PORT_COUNT >= 2 */ -#endif /* CONFIG_USB_PD_TCPM_VBUS */ +#endif /* CONFIG_USB_PD_TCPC_TRACK_VBUS */ /* set default alert and power mask register values */ pd[port].alert_mask = TCPC_REG_ALERT_MASK_ALL; @@ -1120,7 +1120,7 @@ void tcpc_init(int port) alert(port, TCPC_REG_ALERT_POWER_STATUS); } -#ifdef CONFIG_USB_PD_TCPM_VBUS +#ifdef CONFIG_USB_PD_TCPC_TRACK_VBUS void pd_vbus_evt_p0(enum gpio_signal signal) { tcpc_set_power_status(TASK_ID_TO_PD_PORT(TASK_ID_PD_C0), @@ -1136,7 +1136,7 @@ void pd_vbus_evt_p1(enum gpio_signal signal) task_wake(TASK_ID_PD_C1); } #endif /* PD_PORT_COUNT >= 2 */ -#endif /* CONFIG_USB_PD_TCPM_VBUS */ +#endif /* CONFIG_USB_PD_TCPC_TRACK_VBUS */ #ifndef CONFIG_USB_POWER_DELIVERY static void tcpc_i2c_write(int port, int reg, int len, uint8_t *payload) |