diff options
author | Ryan Zhang <Ryan.Zhang@quantatw.com> | 2015-12-01 15:48:15 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2015-12-03 02:21:48 -0800 |
commit | f184c0ba4b6df9df149aeb577f6dd9451ba83b3e (patch) | |
tree | f57f61d8b982ab1965d1d9d8f31c20f1cf4dbd2d | |
parent | d161f78d42e6c08e1d1b4aa291664bad42eac5df (diff) | |
download | chrome-ec-f184c0ba4b6df9df149aeb577f6dd9451ba83b3e.tar.gz |
Lars: Refactoring PD port count setting
usb_pd_policy.c : update & remove duplicate code
BUG=None
BRANCH=lars
TEST=`make BOARD=lars -j`, OS can boot up normally
Change-Id: I82729edf89b6ce719c8f6897b877ee57ee0daefe
Signed-off-by: Ryan Zhang <Ryan.Zhang@quantatw.com>
Reviewed-on: https://chromium-review.googlesource.com/315030
Commit-Ready: 志偉 黃 <David.Huang@quantatw.com>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r-- | board/lars/usb_pd_policy.c | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/board/lars/usb_pd_policy.c b/board/lars/usb_pd_policy.c index 419a805a22..3010df52fb 100644 --- a/board/lars/usb_pd_policy.c +++ b/board/lars/usb_pd_policy.c @@ -49,10 +49,6 @@ void pd_transition_voltage(int idx) int pd_set_power_supply_ready(int port) { - /* only one port can be selected */ - if (port >= CONFIG_USB_PD_PORT_COUNT) - return EC_ERROR_PARAM1; - /* Disable charging */ gpio_set_level(GPIO_USB_C0_CHARGE_EN_L, 1); @@ -68,7 +64,7 @@ int pd_set_power_supply_ready(int port) void pd_power_supply_reset(int port) { /* Disable VBUS */ - gpio_set_level(GPIO_USB_C0_5V_EN, 1); + gpio_set_level(GPIO_USB_C0_5V_EN, 0); /* notify host of power info change */ pd_send_host_event(PD_EVENT_POWER_CHANGE); @@ -281,39 +277,28 @@ static int svdm_dp_config(int port, uint32_t *payload) return 2; }; -#define PORT_TO_HPD(port) ((port) ? GPIO_USB_C0_DP_HPD : GPIO_USB_C0_DP_HPD) static void svdm_dp_post_config(int port) { dp_flags[port] |= DP_FLAGS_DP_ON; if (!(dp_flags[port] & DP_FLAGS_HPD_HI_PENDING)) return; - gpio_set_level(PORT_TO_HPD(port), 1); -} - -static void hpd0_irq_deferred(void) -{ gpio_set_level(GPIO_USB_C0_DP_HPD, 1); } -static void hpd1_irq_deferred(void) +static void hpd0_irq_deferred(void) { gpio_set_level(GPIO_USB_C0_DP_HPD, 1); } - DECLARE_DEFERRED(hpd0_irq_deferred); -DECLARE_DEFERRED(hpd1_irq_deferred); -#define PORT_TO_HPD_IRQ_DEFERRED(port) ((port) ? hpd1_irq_deferred : \ - hpd0_irq_deferred) static int svdm_dp_attention(int port, uint32_t *payload) { int cur_lvl; int lvl = PD_VDO_DPSTS_HPD_LVL(payload[1]); int irq = PD_VDO_DPSTS_HPD_IRQ(payload[1]); - enum gpio_signal hpd = PORT_TO_HPD(port); - cur_lvl = gpio_get_level(hpd); + cur_lvl = gpio_get_level(GPIO_USB_C0_DP_HPD); dp_status[port] = payload[1]; @@ -325,14 +310,13 @@ static int svdm_dp_attention(int port, uint32_t *payload) } if (irq & cur_lvl) { - gpio_set_level(hpd, 0); - hook_call_deferred(PORT_TO_HPD_IRQ_DEFERRED(port), - HPD_DSTREAM_DEBOUNCE_IRQ); + gpio_set_level(GPIO_USB_C0_DP_HPD, 0); + hook_call_deferred(hpd0_irq_deferred, HPD_DSTREAM_DEBOUNCE_IRQ); } else if (irq & !cur_lvl) { CPRINTF("ERR:HPD:IRQ&LOW\n"); return 0; /* nak */ } else { - gpio_set_level(hpd, lvl); + gpio_set_level(GPIO_USB_C0_DP_HPD, lvl); } /* ack */ return 1; @@ -341,7 +325,7 @@ static int svdm_dp_attention(int port, uint32_t *payload) static void svdm_exit_dp_mode(int port) { svdm_safe_dp_mode(port); - gpio_set_level(PORT_TO_HPD(port), 0); + gpio_set_level(GPIO_USB_C0_DP_HPD, 0); } static int svdm_enter_gfu_mode(int port, uint32_t mode_caps) |