mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
Add test for memory-mapped switch information
This checks power button and lid switch states are updated correctly to memory-mapped region. BUG=chrome-os-partner:19236 TEST=Pass power_button and lid_sw tests BRANCH=None Change-Id: Ia49b5a3142b5fd47985bc6f53b1bbffd6d4bbeac Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/170438 Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
committed by
chrome-internal-fetch
parent
20724deae6
commit
45bcffd91a
@@ -15,6 +15,7 @@
|
||||
#define CONFIG_POWER_BUTTON
|
||||
#undef CONFIG_WATCHDOG
|
||||
#define CONFIG_PWM
|
||||
#define CONFIG_SWITCH
|
||||
|
||||
#undef CONFIG_CONSOLE_HISTORY
|
||||
#define CONFIG_CONSOLE_HISTORY 4
|
||||
|
||||
@@ -30,6 +30,12 @@ static void lid_change_hook(void)
|
||||
}
|
||||
DECLARE_HOOK(HOOK_LID_CHANGE, lid_change_hook, HOOK_PRIO_DEFAULT);
|
||||
|
||||
int lid_memmap_state(void)
|
||||
{
|
||||
uint8_t *memmap = host_get_memmap(EC_MEMMAP_SWITCHES);
|
||||
return *memmap & EC_SWITCH_LID_OPEN;
|
||||
}
|
||||
|
||||
static int test_hook(void)
|
||||
{
|
||||
/* Close lid for testing */
|
||||
@@ -44,6 +50,7 @@ static int test_hook(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(lid_hook_count == 1);
|
||||
TEST_ASSERT(lid_is_open());
|
||||
TEST_ASSERT(lid_memmap_state());
|
||||
TEST_ASSERT(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN));
|
||||
|
||||
@@ -52,6 +59,7 @@ static int test_hook(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(lid_hook_count == 2);
|
||||
TEST_ASSERT(!lid_is_open());
|
||||
TEST_ASSERT(!lid_memmap_state());
|
||||
TEST_ASSERT(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED));
|
||||
|
||||
@@ -72,6 +80,7 @@ static int test_debounce(void)
|
||||
msleep(20);
|
||||
TEST_ASSERT(lid_hook_count == 0);
|
||||
TEST_ASSERT(!lid_is_open());
|
||||
TEST_ASSERT(!lid_memmap_state());
|
||||
TEST_ASSERT(!(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN)));
|
||||
|
||||
@@ -80,6 +89,7 @@ static int test_debounce(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(lid_hook_count == 0);
|
||||
TEST_ASSERT(!lid_is_open());
|
||||
TEST_ASSERT(!lid_memmap_state());
|
||||
TEST_ASSERT(!(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN)));
|
||||
|
||||
|
||||
@@ -36,6 +36,12 @@ static void pb_change_hook(void)
|
||||
}
|
||||
DECLARE_HOOK(HOOK_POWER_BUTTON_CHANGE, pb_change_hook, HOOK_PRIO_DEFAULT);
|
||||
|
||||
int pb_memmap_state(void)
|
||||
{
|
||||
uint8_t *memmap = host_get_memmap(EC_MEMMAP_SWITCHES);
|
||||
return *memmap & EC_SWITCH_POWER_BUTTON_PRESSED;
|
||||
}
|
||||
|
||||
static int test_hook(void)
|
||||
{
|
||||
/* Release power button for testing */
|
||||
@@ -50,6 +56,7 @@ static int test_hook(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(pb_hook_count == 1);
|
||||
TEST_ASSERT(power_button_is_pressed());
|
||||
TEST_ASSERT(pb_memmap_state());
|
||||
TEST_ASSERT(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON));
|
||||
host_clear_events(0xffffffff);
|
||||
@@ -59,6 +66,7 @@ static int test_hook(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(pb_hook_count == 2);
|
||||
TEST_ASSERT(!power_button_is_pressed());
|
||||
TEST_ASSERT(!pb_memmap_state());
|
||||
TEST_ASSERT(!(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));
|
||||
|
||||
@@ -79,6 +87,7 @@ static int test_debounce(void)
|
||||
msleep(20);
|
||||
TEST_ASSERT(pb_hook_count == 0);
|
||||
TEST_ASSERT(!power_button_is_pressed());
|
||||
TEST_ASSERT(!pb_memmap_state());
|
||||
TEST_ASSERT(!(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));
|
||||
|
||||
@@ -87,6 +96,7 @@ static int test_debounce(void)
|
||||
msleep(50);
|
||||
TEST_ASSERT(pb_hook_count == 0);
|
||||
TEST_ASSERT(!power_button_is_pressed());
|
||||
TEST_ASSERT(!pb_memmap_state());
|
||||
TEST_ASSERT(!(host_get_events() &
|
||||
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user