diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2016-08-22 17:14:55 +0200 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-02 04:23:47 -0700 |
commit | 6b4a8e715aa83ff836cbbc658622847c6fa988c8 (patch) | |
tree | b59577bd772443c073b50295b68250029306f247 /board/kevin | |
parent | e4d6f134eca0fbf5a53703c60797a397fb158091 (diff) | |
download | chrome-ec-6b4a8e715aa83ff836cbbc658622847c6fa988c8.tar.gz |
kevin: source 3A on one port
Add a new source policy to provide 3A if there is only one port used
as a source.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=none
BUG=chrome-os-partner:56110
TEST=manual: on Kevin, plug and unplug various devices on the 2 ports,
while measuring the type-C pull-up with Twinkie.
Change-Id: Ic3dfda7b69d0edeb6b3a9218e723e2c3e0232a51
Reviewed-on: https://chromium-review.googlesource.com/373819
Commit-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'board/kevin')
-rw-r--r-- | board/kevin/board.h | 1 | ||||
-rw-r--r-- | board/kevin/usb_pd_policy.c | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/board/kevin/board.h b/board/kevin/board.h index 60686a6dbd..70a6b51466 100644 --- a/board/kevin/board.h +++ b/board/kevin/board.h @@ -102,6 +102,7 @@ #define CONFIG_USB_PD_LOG_SIZE 512 #define CONFIG_USB_PD_PORT_COUNT 2 #define CONFIG_USB_PD_TCPM_FUSB302 +#define CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT TYPEC_RP_3A0 #define CONFIG_USB_PD_VBUS_DETECT_CHARGER /* TODO: Enable TRY_SRC */ #undef CONFIG_USB_PD_TRY_SRC diff --git a/board/kevin/usb_pd_policy.c b/board/kevin/usb_pd_policy.c index 934f0406bc..f47faf8f1d 100644 --- a/board/kevin/usb_pd_policy.c +++ b/board/kevin/usb_pd_policy.c @@ -30,6 +30,10 @@ const uint32_t pd_src_pdo[] = { PDO_FIXED(5000, 1500, PDO_FIXED_FLAGS), }; const int pd_src_pdo_cnt = ARRAY_SIZE(pd_src_pdo); +const uint32_t pd_src_pdo_max[] = { + PDO_FIXED(5000, 3000, PDO_FIXED_FLAGS), +}; +const int pd_src_pdo_max_cnt = ARRAY_SIZE(pd_src_pdo_max); const uint32_t pd_snk_pdo[] = { PDO_FIXED(5000, 500, PDO_FIXED_FLAGS), @@ -54,6 +58,9 @@ int pd_set_power_supply_ready(int port) if (charge_manager_get_active_charge_port() == port) bd99955_select_input_port(BD99955_CHARGE_PORT_NONE); + /* Ensure we advertise the proper available current quota */ + charge_manager_source_port(port, 1); + /* Provide VBUS */ gpio_set_level(port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN, 1); @@ -70,6 +77,9 @@ void pd_power_supply_reset(int port) gpio_set_level(port ? GPIO_USB_C1_5V_EN : GPIO_USB_C0_5V_EN, 0); + /* Give back the current quota we are no longer using */ + charge_manager_source_port(port, 0); + /* notify host of power info change */ pd_send_host_event(PD_EVENT_POWER_CHANGE); } |