Skip to content

Commit d699943

Browse files
authored
Merge branch 'hx20' into fp_led_control
2 parents ee91f2e + 9c1612e commit d699943

File tree

7 files changed

+30
-11
lines changed

7 files changed

+30
-11
lines changed

board/hx20/board.c

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -467,17 +467,15 @@ int ac_boot_status(void)
467467
return (*host_get_customer_memmap(0x48) & BIT(0)) ? true : false;
468468
}
469469

470-
static uint8_t chassis_edge_status;
471470
static uint8_t chassis_vtr_open_count;
472471
static uint8_t chassis_open_count;
473472

474473
static void check_chassis_open(int init)
475474
{
476-
if (MCHP_VCI_POSEDGE_DETECT & BIT(2) ||
477-
MCHP_VCI_NEGEDGE_DETECT & BIT(2)) {
475+
if (MCHP_VCI_NEGEDGE_DETECT & BIT(2)) {
478476
MCHP_VCI_POSEDGE_DETECT = BIT(2);
479477
MCHP_VCI_NEGEDGE_DETECT = BIT(2);
480-
chassis_edge_status = 1;
478+
system_set_bbram(STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN, 1);
481479

482480
if (init) {
483481
system_get_bbram(STSTEM_BBRAM_IDX_CHASSIS_VTR_OPEN,
@@ -492,7 +490,6 @@ static void check_chassis_open(int init)
492490
system_set_bbram(SYSTEM_BBRAM_IDX_CHASSIS_TOTAL,
493491
++chassis_open_count);
494492
}
495-
496493

497494
CPRINTF("Chassis was open");
498495
}
@@ -1115,17 +1112,15 @@ static enum ec_status host_chassis_intrusion_control(struct host_cmd_handler_arg
11151112
}
11161113

11171114
if (p->clear_chassis_status) {
1118-
chassis_edge_status = 0;
1115+
system_set_bbram(STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN, 0);
11191116
return EC_SUCCESS;
11201117
}
11211118

1122-
r->chassis_ever_opened = chassis_edge_status;
1119+
system_get_bbram(STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN, &r->chassis_ever_opened);
11231120
system_get_bbram(STSTEM_BBRAM_IDX_CHASSIS_MAGIC, &r->coin_batt_ever_remove);
11241121
system_get_bbram(SYSTEM_BBRAM_IDX_CHASSIS_TOTAL, &r->total_open_count);
11251122
system_get_bbram(STSTEM_BBRAM_IDX_CHASSIS_VTR_OPEN, &r->vtr_open_count);
11261123

1127-
1128-
11291124
args->response_size = sizeof(*r);
11301125

11311126
return EC_SUCCESS;

board/hx20/host_command_customization.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ static enum ec_status factory_mode(struct host_cmd_handler_args *args)
134134
system_set_bbram(SYSTEM_BBRAM_IDX_CHASSIS_TOTAL, 0);
135135
system_set_bbram(STSTEM_BBRAM_IDX_CHASSIS_MAGIC, EC_PARAM_CHASSIS_BBRAM_MAGIC);
136136
system_set_bbram(STSTEM_BBRAM_IDX_CHASSIS_VTR_OPEN, 0);
137+
system_set_bbram(STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN, 0);
137138
system_set_bbram(SYSTEM_BBRAM_IDX_AC_BOOT, 0);
138139
system_set_bbram(STSTEM_BBRAM_IDX_FP_LED_LEVEL, 0);
139140
}
@@ -257,3 +258,16 @@ static enum ec_status bb_retimer_control(struct host_cmd_handler_args *args)
257258
return EC_RES_SUCCESS;
258259
}
259260
DECLARE_HOST_COMMAND(EC_CMD_BB_RETIMER_CONTROL, bb_retimer_control, EC_VER_MASK(0));
261+
262+
static enum ec_status chassis_open_check(struct host_cmd_handler_args *args)
263+
{
264+
struct ec_response_chassis_open_check *r = args->response;
265+
266+
CPRINTS("Chassis status: %d", !gpio_get_level(GPIO_CHASSIS_OPEN));
267+
r->status = !gpio_get_level(GPIO_CHASSIS_OPEN) & 0x01;
268+
args->response_size = sizeof(*r);
269+
270+
return EC_RES_SUCCESS;
271+
272+
}
273+
DECLARE_HOST_COMMAND(EC_CMD_CHASSIS_OPEN_CHECK, chassis_open_check, EC_VER_MASK(0));

board/hx20/host_command_customization.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,10 @@ struct ec_response_fp_led_level {
191191
uint8_t level;
192192
} __ec_align1;
193193

194+
#define EC_CMD_CHASSIS_OPEN_CHECK 0x3E0F
195+
196+
struct ec_response_chassis_open_check {
197+
uint8_t status;
198+
} __ec_align1;
199+
194200
#endif /* __HOST_COMMAND_CUSTOMIZATION_H */

board/hx20/led.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ static void led_set_power(void)
282282
/* don't light up when at lid close */
283283
if (!lid_is_open()) {
284284
set_pwr_led_color(PWM_LED2, -1);
285+
enable_pwr_breath(PWM_LED2, EC_LED_COLOR_WHITE, 0);
285286
return;
286287
}
287288

board/hx20/power_sequence.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,8 +536,7 @@ enum power_state power_handle_state(enum power_state state)
536536

537537
#ifdef CONFIG_EMI_REGION1
538538
if (keep_pch_power()) {
539-
if ((power_get_signals() & IN_PCH_SLP_S5_DEASSERTED))
540-
return POWER_G3S5;
539+
return POWER_S5;
541540
}
542541
#endif
543542

chip/mchp/system.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ enum hibdata_index {
5151
HIBDATA_INDEX_CHASSIS_MAGIC = 33,
5252
HIBDATA_INDEX_CHASSIS_VTR_OPEN = 34,
5353
HIBDATA_INDEX_VPRO_STATUS = 35,
54+
HIBDATA_INDEX_CHASSIS_WAS_OPEN = 36,
5455
HIBDATA_INDEX_FP_LED_LEVEL = 37,
5556
/*
5657
* .. 56 ~ 59 byte for ESPI VW use ..
@@ -366,6 +367,8 @@ static int bbram_idx_lookup(enum system_bbram_idx idx)
366367
return HIBDATA_INDEX_CHASSIS_VTR_OPEN;
367368
case SYSTEM_BBRAM_IDX_VPRO_STATUS:
368369
return HIBDATA_INDEX_VPRO_STATUS;
370+
case STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN:
371+
return HIBDATA_INDEX_CHASSIS_WAS_OPEN;
369372
case STSTEM_BBRAM_IDX_FP_LED_LEVEL:
370373
return HIBDATA_INDEX_FP_LED_LEVEL;
371374
default:

include/system.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ enum system_bbram_idx {
383383
STSTEM_BBRAM_IDX_CHASSIS_MAGIC,
384384
STSTEM_BBRAM_IDX_CHASSIS_VTR_OPEN,
385385
SYSTEM_BBRAM_IDX_VPRO_STATUS,
386+
STSTEM_BBRAM_IDX_CHASSIS_WAS_OPEN,
386387
STSTEM_BBRAM_IDX_FP_LED_LEVEL,
387388

388389
};

0 commit comments

Comments
 (0)