summaryrefslogtreecommitdiff
path: root/board/ryu_p1/usb_pd_policy.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/ryu_p1/usb_pd_policy.c')
-rw-r--r--board/ryu_p1/usb_pd_policy.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/board/ryu_p1/usb_pd_policy.c b/board/ryu_p1/usb_pd_policy.c
index 23400e7a8b..8c58452a6e 100644
--- a/board/ryu_p1/usb_pd_policy.c
+++ b/board/ryu_p1/usb_pd_policy.c
@@ -23,13 +23,15 @@
#define MAX_POWER_MW 60000
#define MAX_CURRENT_MA 3000
+#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)
+
const uint32_t pd_src_pdo[] = {
- PDO_FIXED(5000, 900, PDO_FIXED_DUAL_ROLE),
+ PDO_FIXED(5000, 900, PDO_FIXED_FLAGS),
};
const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo);
const uint32_t pd_snk_pdo[] = {
- PDO_FIXED(5000, 500, PDO_FIXED_DUAL_ROLE),
+ PDO_FIXED(5000, 500, PDO_FIXED_FLAGS),
PDO_BATT(5000, 20000, 10000),
PDO_VAR(5000, 20000, 3000),
};
@@ -162,6 +164,18 @@ int pd_power_swap(int port)
/* Always allow power swap */
return 1;
}
+
+int pd_data_swap(int port, int data_role)
+{
+ /* Always allow data swap */
+ return 1;
+}
+
+void pd_execute_data_swap(int port, int data_role)
+{
+ /* TODO: what do we need to do to change host controller data role? */
+}
+
/* ----------------- Vendor Defined Messages ------------------ */
static int pd_custom_vdm(int port, int cnt, uint32_t *payload,
uint32_t **rpayload)