Skip to content

Commit 9bc6e1b

Browse files
authored
Merge pull request #694 from FrameworkComputer/azalea.fix_dead_battery_poweron
do not set ext power enabled when no battery
2 parents 08c3b5c + 3da0181 commit 9bc6e1b

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

zephyr/program/lotus/src/cypress_pd_common.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -893,17 +893,20 @@ static int cypd_update_power_status(int controller)
893893
int i;
894894
int rv = EC_SUCCESS;
895895
int power_stat = 0;
896-
897-
if (battery_is_present() == BP_YES)
898-
power_stat |= BIT(3);
899-
if (extpower_is_present())
900-
power_stat |= BIT(1) + BIT(2);
896+
int pd_controller_is_sink = (prev_charge_port & 0x02) >> 1;
901897

902898
CPRINTS("C%d, %s power_stat 0x%x", controller, __func__, power_stat);
903899
if (controller < PD_CHIP_COUNT)
904900
rv = cypd_write_reg8_wait_ack(controller, CCG_POWER_STAT, power_stat);
905901
else {
906902
for (i = 0; i < PD_CHIP_COUNT; i++) {
903+
power_stat = 0;
904+
if (battery_is_present() == BP_YES)
905+
power_stat |= BIT(3);
906+
if ((extpower_is_present() && battery_is_present() == BP_YES) ||
907+
(extpower_is_present() && i != pd_controller_is_sink && prev_charge_port >=0))
908+
power_stat |= BIT(1) + BIT(2);
909+
907910
rv = cypd_write_reg8_wait_ack(i, CCG_POWER_STAT, power_stat);
908911
if (rv != EC_SUCCESS)
909912
break;
@@ -1080,7 +1083,7 @@ static void cypd_handle_state(int controller)
10801083
cypd_get_version(controller);
10811084
cypd_update_power_status(controller);
10821085

1083-
//update_system_power_state(controller);
1086+
update_system_power_state(controller);
10841087
cypd_setup(controller);
10851088

10861089
/* After initial complete, update the type-c port state */
@@ -1089,7 +1092,6 @@ static void cypd_handle_state(int controller)
10891092

10901093
ucsi_startup(controller);
10911094

1092-
update_system_power_state(controller);
10931095
gpio_enable_interrupt(pd_chip_config[controller].gpio);
10941096

10951097
/* Update PDO format after init complete */

0 commit comments

Comments
 (0)