Skip to content

Commit 1d39796

Browse files
authored
Merge pull request #493 from FrameworkComputer/hx30.fix_change_port_when_no_batt
Hx30.fix change port when no batt
2 parents 2f64e29 + 94e1ede commit 1d39796

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

board/hx30/cypress5525.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1766,6 +1766,11 @@ int board_set_active_charge_port(int charge_port)
17661766
{
17671767
CPRINTS("start change port = %d, prev_charge_port = %d", charge_port, prev_charge_port);
17681768

1769+
if (board_batt_is_present() != BP_YES) {
1770+
CPRINTS("No batt, no change");
1771+
return EC_ERROR_NOT_POWERED;
1772+
}
1773+
17691774
/* port need change, stop all power and ready to switch. */
17701775
if (prev_charge_port != -1 && prev_charge_port != charge_port) {
17711776
update_soc_power_limit(false, true);
@@ -1782,16 +1787,16 @@ int board_set_active_charge_port(int charge_port)
17821787
int pd_controller = (charge_port & 0x02) >> 1;
17831788
int pd_port = charge_port & 0x01;
17841789

1785-
CPRINTS("choose p %d, ctrler = %d, p = %d", charge_port, pd_controller, pd_port);
1786-
cypd_write_reg8(pd_controller, CYP5525_CUST_C_CTRL_CONTROL_REG,
1787-
pd_port ? CYP5525_P0_OFF_P1_CY : CYP5525_P0_CY_P1_OFF);
17881790
CPRINTS("force off ctrler = %d", (~pd_controller) & 0x01);
17891791
cypd_write_reg8((~pd_controller) & 0x01, CYP5525_CUST_C_CTRL_CONTROL_REG,
17901792
CYP5525_P0P1_TURN_OFF_C_CTRL);
1793+
CPRINTS("choose p %d, ctrler = %d, p = %d", charge_port, pd_controller, pd_port);
1794+
cypd_write_reg8(pd_controller, CYP5525_CUST_C_CTRL_CONTROL_REG,
1795+
pd_port ? CYP5525_P0_OFF_P1_CY : CYP5525_P0_CY_P1_OFF);
17911796
} else {
17921797
CPRINTS("else = %d, set all ports auto", charge_port);
1793-
cypd_write_reg8(0, CYP5525_CUST_C_CTRL_CONTROL_REG, CYP5525_P0P1_CONTROL_BY_CY);
1794-
cypd_write_reg8(1, CYP5525_CUST_C_CTRL_CONTROL_REG, CYP5525_P0P1_CONTROL_BY_CY);
1798+
cypd_write_reg8(0, CYP5525_CUST_C_CTRL_CONTROL_REG, CYP5525_P0P1_TURN_OFF_C_CTRL);
1799+
cypd_write_reg8(1, CYP5525_CUST_C_CTRL_CONTROL_REG, CYP5525_P0P1_TURN_OFF_C_CTRL);
17951800
}
17961801

17971802
hook_call_deferred(&update_power_limit_deferred_data, 100 * MSEC);

0 commit comments

Comments
 (0)