diff options
author | Sean McAllister <smcallis@google.com> | 2020-07-21 14:05:49 +0000 |
---|---|---|
committer | Sean McAllister <smcallis@google.com> | 2020-07-21 14:12:56 +0000 |
commit | 6c8555196b2ce1138125af9d03b9327fe4ad1969 (patch) | |
tree | e76cf1163066593b2ba8b96b19179ccb8ef1e4c8 /board/wheelie/usb_pd_policy.c | |
parent | 4c12a3e2d97d320f985f16703120d21c71f72d59 (diff) | |
download | chrome-ec-6c8555196b2ce1138125af9d03b9327fe4ad1969.tar.gz |
Revert "wheelie: Remove it"
This reverts commit cedd3fba44d4352436d676e2eea50e9d94527b31.
Reason for revert: Breaking CQ
Original change's description:
> wheelie: Remove it
>
> Wheelie is no more, therefore it's time to remove its files. :c
>
> BUG=None
> BRANCH=None
> TEST=`make -j buildall`
>
> Signed-off-by: Aseda Aboagye <aaboagye@google.com>
> Change-Id: I89f52fb5e44ab49cc653a2cac23c8e444f05cb43
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2299847
> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
> Tested-by: Aseda Aboagye <aaboagye@chromium.org>
> Commit-Queue: Diana Z <dzigterman@chromium.org>
> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
Bug: None
Change-Id: I22e8f15304b6bf67ddc768e2c25b1381df7082b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2309960
Reviewed-by: Sean McAllister <smcallis@google.com>
Tested-by: Sean McAllister <smcallis@google.com>
Diffstat (limited to 'board/wheelie/usb_pd_policy.c')
-rw-r--r-- | board/wheelie/usb_pd_policy.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/board/wheelie/usb_pd_policy.c b/board/wheelie/usb_pd_policy.c new file mode 100644 index 0000000000..1611af23e0 --- /dev/null +++ b/board/wheelie/usb_pd_policy.c @@ -0,0 +1,84 @@ +/* Copyright 2020 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "battery_smart.h" +#include "charge_manager.h" +#include "charger.h" +#include "chipset.h" +#include "common.h" +#include "console.h" +#include "driver/charger/sm5803.h" +#include "driver/tcpm/tcpci.h" +#include "usb_pd.h" + +#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args) +#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args) + +int pd_check_vconn_swap(int port) +{ + /* Allow VCONN swaps if the AP is on */ + return chipset_in_state(CHIPSET_STATE_ANY_SUSPEND | CHIPSET_STATE_ON); +} + +void pd_power_supply_reset(int port) +{ + int prev_en; + + if (port < 0 || port >= CONFIG_USB_PD_PORT_MAX_COUNT) + return; + + /* TODO(b/147440290): charger functions should take chgnum */ + prev_en = chg_chips[port].drv->is_sourcing_otg_power(port, port); + + /* Disable Vbus */ + chg_chips[port].drv->enable_otg_power(port, 0); + + /* Discharge Vbus if previously enabled */ + if (prev_en) + sm5803_set_vbus_disch(port, 1); + +#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT + /* Give back the current quota we are no longer using */ + charge_manager_source_port(port, 0); +#endif /* defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT) */ + + /* Notify host of power info change. */ + pd_send_host_event(PD_EVENT_POWER_CHANGE); +} + +int pd_set_power_supply_ready(int port) +{ + enum ec_error_list rv; + + /* Disable charging */ + rv = chg_chips[port].drv->set_mode(port, CHARGE_FLAG_INHIBIT_CHARGE); + if (rv) + return rv; + + /* Disable Vbus discharge */ + sm5803_set_vbus_disch(port, 0); + + /* Provide Vbus */ + chg_chips[port].drv->enable_otg_power(port, 1); + +#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT + /* Ensure we advertise the proper available current quota */ + charge_manager_source_port(port, 1); +#endif /* defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT) */ + + /* Notify host of power info change. */ + pd_send_host_event(PD_EVENT_POWER_CHANGE); + + return EC_SUCCESS; +} + +int pd_snk_is_vbus_provided(int port) +{ + int chg_det = 0; + + sm5803_get_chg_det(port, &chg_det); + + return chg_det; +} |