summaryrefslogtreecommitdiff
path: root/baseboard/dedede
diff options
context:
space:
mode:
Diffstat (limited to 'baseboard/dedede')
-rw-r--r--baseboard/dedede/baseboard.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/baseboard/dedede/baseboard.c b/baseboard/dedede/baseboard.c
index 898791e7ce..3754f04b36 100644
--- a/baseboard/dedede/baseboard.c
+++ b/baseboard/dedede/baseboard.c
@@ -8,6 +8,8 @@
#include "adc.h"
#include "board_config.h"
#include "cbi_fw_config.h"
+#include "charger/isl923x_public.h"
+#include "charger/sm5803.h"
#include "chipset.h"
#include "common.h"
#include "extpower.h"
@@ -104,7 +106,7 @@ __override void board_after_rsmrst(int rsmrst)
* can call this function once it detects a VBUS presence change with which we
* can trigger the HOOK_AC_CHANGE hook.
*/
-__override void board_vbus_present_change(void)
+__override void board_check_extpower(void)
{
static int last_extpower_present;
int extpower_present = extpower_is_present();
@@ -277,18 +279,23 @@ int board_is_i2c_port_powered(int port)
int extpower_is_present(void)
{
- int vbus_present = 0;
int port;
+ int rv;
+ bool acok;
+ enum ec_error_list (*check_acok)(int port, bool *acok);
+
+ if (IS_ENABLED(CONFIG_CHARGER_RAA489000))
+ check_acok = raa489000_is_acok;
+ else if (IS_ENABLED(CONFIG_CHARGER_SM5803))
+ check_acok = sm5803_is_acok;
+
+ for (port = 0; port < board_get_usb_pd_port_count(); port++) {
+ rv = check_acok(port, &acok);
+ if ((rv == EC_SUCCESS) && acok)
+ return 1;
+ }
- /*
- * Boards define pd_snk_is_vbus_provided() with something appropriate
- * for their hardware
- */
- for (port = 0; port < board_get_usb_pd_port_count(); port++)
- if (pd_get_power_role(port) == PD_ROLE_SINK)
- vbus_present |= pd_snk_is_vbus_provided(port);
-
- return vbus_present;
+ return 0;
}
__override uint32_t board_override_feature_flags0(uint32_t flags0)