@@ -398,16 +398,6 @@ void cypd_reset_source_ports(void)
398398 }
399399}
400400
401- enum power_state saved_bb_power_state = POWER_S0 ;
402-
403- void cypd_set_retimer_power (enum power_state power )
404- {
405- if (power != saved_bb_power_state ) {
406- saved_bb_power_state = power ;
407- cypd_enque_evt (CYPD_EVT_RETIMER_PWR , 0 );
408- }
409- }
410-
411401
412402void cypd_set_power_active (enum power_state power )
413403{
@@ -1046,6 +1036,20 @@ int cyp5525_device_int(int controller)
10461036 return EC_SUCCESS ;
10471037}
10481038
1039+
1040+ void pd0_update_state_deferred (void )
1041+ {
1042+ task_set_event (TASK_ID_CYPD , CYPD_EVT_STATE_CTRL_0 , 0 );
1043+ }
1044+ DECLARE_DEFERRED (pd0_update_state_deferred );
1045+
1046+ void pd1_update_state_deferred (void )
1047+ {
1048+ task_set_event (TASK_ID_CYPD , CYPD_EVT_STATE_CTRL_1 , 0 );
1049+
1050+ }
1051+ DECLARE_DEFERRED (pd1_update_state_deferred );
1052+
10491053void cypd_handle_state (int controller )
10501054{
10511055 int data ;
@@ -1070,25 +1074,22 @@ void cypd_handle_state(int controller)
10701074 }
10711075 }
10721076 /*try again in a while*/
1073- cypd_enque_evt (4 <<controller , delay );
1077+ if (delay ) {
1078+ if (controller == 0 ) {
1079+ hook_call_deferred (& pd0_update_state_deferred_data , delay );
1080+ } else {
1081+ hook_call_deferred (& pd1_update_state_deferred_data , delay );
1082+ }
1083+ } else {
1084+ cypd_enque_evt (CYPD_EVT_STATE_CTRL_0 <<controller , 0 );
1085+ }
10741086 break ;
10751087
10761088 case CYP5525_STATE_APP_SETUP :
10771089 gpio_disable_interrupt (pd_chip_config [controller ].gpio );
10781090 cyp5525_get_version (controller );
10791091 cypd_write_reg8_wait_ack (controller , CYP5225_USER_MAINBOARD_VERSION , board_get_version ());
10801092
1081- /*for(i=0; i < 50;i++) {
1082- if (gpio_get_level(GPIO_PWR_3V5V_PG) &&
1083- ((charger_current_battery_params()->is_present == BP_YES &&
1084- !(charger_current_battery_params()->flags & BATT_FLAG_BAD_ANY))
1085- )
1086- )
1087- break;
1088- usleep(MSEC);
1089-
1090- }*/
1091-
10921093 cypd_update_power_status ();
10931094
10941095 cypd_set_power_state (CYP5525_POWERSTATE_S5 );
@@ -1103,12 +1104,6 @@ void cypd_handle_state(int controller)
11031104 cypd_write_reg16_wait_ack (controller , CYP5225_USER_BB_POWER_EVT , RT_EVT_VSYS_ADDED );
11041105 update_system_power_state ();
11051106
1106- //if (power_get_state() == POWER_S0 ||
1107- // power_get_state() == POWER_S0ix) {
1108- /*Handle unexpected PD controller resets when we are powered on*/
1109- // cypd_enque_evt(CYPD_EVT_RETIMER_PWR, 0);
1110- //}
1111-
11121107 CPRINTS ("CYPD %d Ready!" , controller );
11131108 pd_chip_config [controller ].state = CYP5525_STATE_READY ;
11141109 break ;
@@ -1281,15 +1276,6 @@ void cypd_interrupt_handler_task(void *p)
12811276 CPRINTS ("PD Event Platform Reset!" );
12821277 }
12831278
1284- if (evt & CYPD_EVT_RETIMER_PWR ) {
1285- if (saved_bb_power_state == POWER_G3S5 ) {
1286- cypd_bb_retimer_cmd (RT_EVT_VSYS_ADDED );
1287- }
1288- if (saved_bb_power_state == POWER_G3 ) {
1289- cypd_bb_retimer_cmd (RT_EVT_VSYS_REMOVED );
1290- }
1291- }
1292-
12931279 if (evt & CYPD_EVT_PORT_DISABLE ) {
12941280 CPRINTS ("CYPD_EVT_PORT_DISABLE" );
12951281 cypd_reconnect_port_disable (0 );
@@ -1640,6 +1626,7 @@ int pd_port_configuration_change(int port, enum pd_port_role port_role)
16401626
16411627static void update_power_limit_deferred (void )
16421628{
1629+ cypd_enque_evt (CYPD_EVT_UPDATE_PWRSTAT , 0 );
16431630 update_soc_power_limit (false, false);
16441631}
16451632DECLARE_DEFERRED (update_power_limit_deferred );
@@ -1685,7 +1672,6 @@ int board_set_active_charge_port(int charge_port)
16851672 cypd_write_reg8 (1 , CYP5525_CUST_C_CTRL_CONTROL_REG , CYP5525_P0P1_CONTROL_BY_CY );
16861673 }
16871674
1688- cypd_enque_evt (CYPD_EVT_UPDATE_PWRSTAT , 100 );
16891675 hook_call_deferred (& update_power_limit_deferred_data , 100 * MSEC );
16901676 CPRINTS ("Updating %s port %d" , __func__ , charge_port );
16911677
0 commit comments