summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2014-08-25 14:34:31 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-08-26 03:05:51 +0000
commitc598e1ac06c4ceddf28399081ed669eaaa533ae9 (patch)
treee66a91421841c0b168b0c5da757dc33c26ecc698
parent1aa13eb648994f2124f8b680a227fe57dd691cf4 (diff)
downloadchrome-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.c23
-rw-r--r--common/usb_pd_protocol.c25
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)
{