diff options
author | Vic Yang <victoryang@chromium.org> | 2014-08-25 14:34:31 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-08-26 03:05:51 +0000 |
commit | c598e1ac06c4ceddf28399081ed669eaaa533ae9 (patch) | |
tree | e66a91421841c0b168b0c5da757dc33c26ecc698 | |
parent | 1aa13eb648994f2124f8b680a227fe57dd691cf4 (diff) | |
download | chrome-ec-c598e1ac06c4ceddf28399081ed669eaaa533ae9.tar.gz |
pd: Move dual role toggle hooks to common code
We want these hooks for all dual role boards. Let's move them to common
so that we don't have to duplicate them for every board.
BUG=None
TEST=On Ryu, plug in C-to-A cable. Check we are in source state.
BRANCH=None
Change-Id: I9c7a798fda2cdec94ee533d54172c6cc4fed029e
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/214070
Reviewed-by: Alec Berg <alecaberg@chromium.org>
-rw-r--r-- | board/samus_pd/usb_pd_policy.c | 23 | ||||
-rw-r--r-- | common/usb_pd_protocol.c | 25 |
2 files changed, 25 insertions, 23 deletions
diff --git a/board/samus_pd/usb_pd_policy.c b/board/samus_pd/usb_pd_policy.c index 90b7fc6121..867a020dd6 100644 --- a/board/samus_pd/usb_pd_policy.c +++ b/board/samus_pd/usb_pd_policy.c @@ -6,7 +6,6 @@ #include "common.h" #include "console.h" #include "gpio.h" -#include "hooks.h" #include "host_command.h" #include "registers.h" #include "task.h" @@ -150,28 +149,6 @@ int pd_board_checks(void) return EC_SUCCESS; } -static void dual_role_on(void) -{ - pd_set_dual_role(PD_DRP_TOGGLE_ON); - CPRINTS("PCH -> S0, enable dual-role toggling"); -} -DECLARE_HOOK(HOOK_CHIPSET_RESUME, dual_role_on, HOOK_PRIO_DEFAULT); - -static void dual_role_off(void) -{ - pd_set_dual_role(PD_DRP_TOGGLE_OFF); - CPRINTS("PCH -> S3, disable dual-role toggling"); -} -DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, dual_role_off, HOOK_PRIO_DEFAULT); -DECLARE_HOOK(HOOK_CHIPSET_STARTUP, dual_role_off, HOOK_PRIO_DEFAULT); - -static void dual_role_force_sink(void) -{ - pd_set_dual_role(PD_DRP_FORCE_SINK); - CPRINTS("PCH -> S5, force dual-role port to sink"); -} -DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, dual_role_force_sink, HOOK_PRIO_DEFAULT); - /* ----------------- Vendor Defined Messages ------------------ */ int pd_custom_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) { diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 2825cf9eb2..9e0115743c 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -21,6 +21,7 @@ #ifdef CONFIG_COMMON_RUNTIME #define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args) +#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) /* * Debug log level - higher number == more log @@ -1401,6 +1402,30 @@ void pd_rx_event(int port) task_set_event(PORT_TO_TASK_ID(port), PD_EVENT_RX, 0); } +#ifdef CONFIG_USB_PD_DUAL_ROLE +static void dual_role_on(void) +{ + pd_set_dual_role(PD_DRP_TOGGLE_ON); + CPRINTS("chipset -> S0, enable dual-role toggling"); +} +DECLARE_HOOK(HOOK_CHIPSET_RESUME, dual_role_on, HOOK_PRIO_DEFAULT); + +static void dual_role_off(void) +{ + pd_set_dual_role(PD_DRP_TOGGLE_OFF); + CPRINTS("chipset -> S3, disable dual-role toggling"); +} +DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, dual_role_off, HOOK_PRIO_DEFAULT); +DECLARE_HOOK(HOOK_CHIPSET_STARTUP, dual_role_off, HOOK_PRIO_DEFAULT); + +static void dual_role_force_sink(void) +{ + pd_set_dual_role(PD_DRP_FORCE_SINK); + CPRINTS("chipset -> S5, force dual-role port to sink"); +} +DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, dual_role_force_sink, HOOK_PRIO_DEFAULT); +#endif /* CONFIG_USB_PD_DUAL_ROLE */ + #ifdef CONFIG_COMMON_RUNTIME void pd_set_suspend(int port, int enable) { |