From fd7846fe094ae70fbbdc3026c4500999a0adf737 Mon Sep 17 00:00:00 2001 From: Shawn Nematbakhsh Date: Thu, 9 Oct 2014 11:55:26 -0700 Subject: usb_pd: Add port parameter to pd_set_input_current_limit Some platforms may need to take different actions depending on which port is requesting a limit. Add a new port parameter to the pd_set_input_current_limit API to accomodate this. BUG=chrome-os-partner:32003 TEST=Manual on samus_pd. Verify zinger charges battery. BRANCH=samus Change-Id: I1578252c751b3a80b4da6ca68e2a958934283cbf Signed-off-by: Shawn Nematbakhsh Reviewed-on: https://chromium-review.googlesource.com/222621 Reviewed-by: Vincent Palatin Reviewed-by: Alec Berg --- board/dingdong/usb_pd_policy.c | 2 +- board/firefly/usb_pd_policy.c | 2 +- board/fruitpie/usb_pd_policy.c | 2 +- board/hoho/usb_pd_policy.c | 2 +- board/host/usb_pd_policy.c | 2 +- board/plankton/usb_pd_policy.c | 2 +- board/ryu/usb_pd_policy.c | 2 +- board/samus_pd/usb_pd_policy.c | 2 +- common/usb_pd_protocol.c | 6 +++--- include/usb_pd.h | 3 ++- 10 files changed, 13 insertions(+), 12 deletions(-) diff --git a/board/dingdong/usb_pd_policy.c b/board/dingdong/usb_pd_policy.c index 57099a960d..8fcd833499 100644 --- a/board/dingdong/usb_pd_policy.c +++ b/board/dingdong/usb_pd_policy.c @@ -57,7 +57,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { /* No battery, nothing to do */ return; diff --git a/board/firefly/usb_pd_policy.c b/board/firefly/usb_pd_policy.c index 9b91358eeb..5358eec678 100644 --- a/board/firefly/usb_pd_policy.c +++ b/board/firefly/usb_pd_policy.c @@ -64,7 +64,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { /* No battery, nothing to do */ return; diff --git a/board/fruitpie/usb_pd_policy.c b/board/fruitpie/usb_pd_policy.c index 1e1de216a0..0c87d66f63 100644 --- a/board/fruitpie/usb_pd_policy.c +++ b/board/fruitpie/usb_pd_policy.c @@ -77,7 +77,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return max_ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { int rv = charger_set_input_current(MAX(max_ma, CONFIG_CHARGER_INPUT_CURRENT)); diff --git a/board/hoho/usb_pd_policy.c b/board/hoho/usb_pd_policy.c index 5523b2a95c..19881ac782 100644 --- a/board/hoho/usb_pd_policy.c +++ b/board/hoho/usb_pd_policy.c @@ -58,7 +58,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { /* No battery, nothing to do */ return; diff --git a/board/host/usb_pd_policy.c b/board/host/usb_pd_policy.c index ffa6d53be9..3155a288a0 100644 --- a/board/host/usb_pd_policy.c +++ b/board/host/usb_pd_policy.c @@ -106,7 +106,7 @@ void pd_power_supply_reset(int port) /* Not implemented */ } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { /* Not implemented */ } diff --git a/board/plankton/usb_pd_policy.c b/board/plankton/usb_pd_policy.c index e611c8d827..a3136bfeed 100644 --- a/board/plankton/usb_pd_policy.c +++ b/board/plankton/usb_pd_policy.c @@ -83,7 +83,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { /* No battery, nothing to do */ return; diff --git a/board/ryu/usb_pd_policy.c b/board/ryu/usb_pd_policy.c index 453e463d59..10ceb1c30a 100644 --- a/board/ryu/usb_pd_policy.c +++ b/board/ryu/usb_pd_policy.c @@ -78,7 +78,7 @@ int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo) return max_ma; } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { int rv = charge_set_input_current_limit(MAX(max_ma, CONFIG_CHARGER_INPUT_CURRENT)); diff --git a/board/samus_pd/usb_pd_policy.c b/board/samus_pd/usb_pd_policy.c index 2aff0210a9..7b7237059b 100644 --- a/board/samus_pd/usb_pd_policy.c +++ b/board/samus_pd/usb_pd_policy.c @@ -139,7 +139,7 @@ static void pd_send_ec_int(void) gpio_set_level(GPIO_EC_INT, 0); } -void pd_set_input_current_limit(uint32_t max_ma) +void pd_set_input_current_limit(int port, uint32_t max_ma) { pd_status.curr_lim_ma = max_ma; pd_send_ec_int(); diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index daf538ea85..4ed08a64d8 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -650,7 +650,7 @@ static void execute_hard_reset(int port) PD_STATE_SNK_DISCONNECTED : PD_STATE_SRC_DISCONNECTED); /* Clear the input current limit */ - pd_set_input_current_limit(0); + pd_set_input_current_limit(port, 0); #else set_state(port, PD_STATE_SRC_DISCONNECTED); #endif @@ -793,7 +793,7 @@ static void handle_ctrl_request(int port, uint16_t head, set_state(port, PD_STATE_HARD_RESET); } else if (pd[port].role == PD_ROLE_SINK) { set_state(port, PD_STATE_SNK_READY); - pd_set_input_current_limit(pd[port].curr_limit); + pd_set_input_current_limit(port, pd[port].curr_limit); } break; case PD_CTRL_REJECT: @@ -1499,7 +1499,7 @@ void pd_task(void) /* Sink: detect disconnect by monitoring VBUS */ set_state(port, PD_STATE_SNK_DISCONNECTED); /* Clear the input current limit */ - pd_set_input_current_limit(0); + pd_set_input_current_limit(port, 0); /* set timeout small to reconnect fast */ timeout = 5*MSEC; } diff --git a/include/usb_pd.h b/include/usb_pd.h index 8824eb3b33..895e4d3cc6 100644 --- a/include/usb_pd.h +++ b/include/usb_pd.h @@ -562,9 +562,10 @@ void pd_request_source_voltage(int port, int mv); /** * Set the input current limit. * + * @port USB-C port number * @max_ma Maximum current limit */ -void pd_set_input_current_limit(uint32_t max_ma); +void pd_set_input_current_limit(int port, uint32_t max_ma); /** * Verify board specific health status : current, voltages... -- cgit v1.2.1