summaryrefslogtreecommitdiff
path: root/board/host/board.h
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2019-11-27 23:59:24 -0800
committerCommit Bot <commit-bot@chromium.org>2020-07-17 04:22:26 +0000
commit8b3bd40250f9c33c76213133e8d8f0ecd788575e (patch)
tree750bd88e5ba0deaaa3966f5f60ed58c88cc6988f /board/host/board.h
parent7acd08b38b03023046c44fd5f7035aa2c3ef0fb8 (diff)
downloadchrome-ec-8b3bd40250f9c33c76213133e8d8f0ecd788575e.tar.gz
usb_pd_policy: Make a lot of objects common
There is a board specific usb_pd_policy.c file that contains a lot of code for handling DisplayPort Alternate mode, Google Firmware Update Alternate mode, as well as some PD policy functions such as deciding to Accept or Reject a data role swap or a power role swap. Several boards simply copy/paste this code from project to project as a lot of this functionality is not actually board specific. This commit tries to refactor this by pulling the functions that are not mainly board specific into common code. The functions are made overridable such that boards that truly do require a different implementation may do so. Additionally, this consolidation changes the policy behaviour for some boards, but they should be for the better. Some examples include that data swaps are always allowed if we are a UFP (no system image requirement), power swaps are allowed to become a sink if we are no longer dual role (e.g. - in suspend), and DisplayPort Alternate Mode is not entered if the AP is off. In order to facilitate this refactor, a couple CONFIG_* options were introduced: - CONFIG_USB_PD_DP_HPD_GPIO /* HPD is sent to the GPU from the EC via a GPIO */ - CONFIG_USB_PD_CUSTOM_VDO /* * Define this if a board needs custom SNK and/or SRC PDOs. * * The default SRC PDO is a fixed 5V/1.5A with PDO_FIXED_FLAGS indicating * Dual-Role power, USB Communication Capable, and Dual-Role data. * * The default SNK PDOs are: * - Fixed 5V/500mA with the same PDO_FIXED_FLAGS * - Variable (non-battery) min 4.75V, max PD_MAX_VOLTAGE_MV, * operational current PD_MAX_CURRENT_MA, * - Battery min 4.75V, max PD_MAX_VOLTAGE_MV, operational power * PD_OPERATING_POWER_MW */ BUG=chromium:1021724,b:141458448 BRANCH=firmware-atlas-11827.B TEST=With other PD Policies patches, flash atlas and run faft_ec&pd Change-Id: I18fd7e22dc77fe1dc6c21c38cd7f1bc53cae86cb Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1949052 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2296085 Tested-by: Dawid Niedźwiecki <dn@semihalf.com> Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: Dossym Nurmukhanov <dossym@chromium.org>
Diffstat (limited to 'board/host/board.h')
-rw-r--r--board/host/board.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/board/host/board.h b/board/host/board.h
index 494edf5eb3..08af29c382 100644
--- a/board/host/board.h
+++ b/board/host/board.h
@@ -21,6 +21,9 @@
#define CONFIG_WP_ACTIVE_HIGH
+#define CONFIG_USB_PD_CUSTOM_PDO
+#define CONFIG_USB_PD_DUAL_ROLE
+
#include "gpio_signal.h"
enum temp_sensor_id {