diff options
author | Shelley Chen <shchen@chromium.org> | 2016-06-10 10:08:01 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-06-21 20:28:09 -0700 |
commit | 9ceaa9d8e0706a4a7f416e76d8b0248579b54939 (patch) | |
tree | 7abdf70a48174b6f9e22eac8f549804319048252 /util | |
parent | 58c0727901aae21c496056a5eccaa27c693510ef (diff) | |
download | chrome-ec-9ceaa9d8e0706a4a7f416e76d8b0248579b54939.tar.gz |
rk3399: kevin: Adding get_rtc_alarm functionality.
Adding ability to get # seconds before rtc alarm
goes off.
BUG=chrome-os-partner:52218
BRANCH=None
TEST=ectool rtcgetalarm w/o setting returns
Alarm not set.
ectool rtcsetalarm 30; ectool rtcgetalarm
to make sure counting down to 0. After alarm
goes off, rtcgetalarm should return alarm not
set again.
rtcsetalarm 30; rtcgetalarm to check alarm is set.
rtcsetalarm 0; should disable alarm. Use
rtcgetalarm to ensure that alarm is disabled.
Change-Id: I176b12fe2dda08eedd23ea33dc64785f09f1d9ae
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/353331
Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'util')
-rw-r--r-- | util/ectool.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/util/ectool.c b/util/ectool.c index 8de07f9eee..4b83f3fc04 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -189,12 +189,14 @@ const char help_str[] = " Reads a pattern from the EC via LPC\n" " reboot_ec <RO|RW|cold|hibernate|disable-jump> [at-shutdown]\n" " Reboot EC to RO or RW\n" - " rtcalarm <sec>\n" - " Set real-time clock alarm to go off in <sec> seconds\n" " rtcget\n" " Print real-time clock\n" + " rtcgetalarm\n" + " Print # of seconds before real-time clock alarm goes off.\n" " rtcset <time>\n" " Set real-time clock\n" + " rtcsetalarm <sec>\n" + " Set real-time clock alarm to go off in <sec> seconds\n" " rwhashpd <dev_id> <HASH[0] ... <HASH[4]>\n" " Set entry in PD MCU's device rw_hash table.\n" " sertest\n" @@ -6017,7 +6019,26 @@ int cmd_rtc_set_alarm(int argc, char *argv[]) if (rv < 0) return rv; - printf("Alarm Set to go off in %d secs.\n", p.time); + if (p.time == 0) + printf("Disabling alarm.\n"); + else + printf("Alarm set to go off in %d secs.\n", p.time); + return 0; +} + +int cmd_rtc_get_alarm(int argc, char *argv[]) +{ + struct ec_response_rtc r; + int rv; + + rv = ec_command(EC_CMD_RTC_GET_ALARM, 0, NULL, 0, &r, sizeof(r)); + if (rv < 0) + return rv; + + if (r.time == 0) + printf("Alarm not set\n"); + else + printf("Alarm to go off in %d secs\n", r.time); return 0; } @@ -6826,9 +6847,10 @@ const struct command commands[] = { {"pwmsetduty", cmd_pwm_set_duty}, {"readtest", cmd_read_test}, {"reboot_ec", cmd_reboot_ec}, - {"rtcalarm", cmd_rtc_set_alarm}, {"rtcget", cmd_rtc_get}, + {"rtcgetalarm", cmd_rtc_get_alarm}, {"rtcset", cmd_rtc_set}, + {"rtcsetalarm", cmd_rtc_set_alarm}, {"rwhashpd", cmd_rw_hash_pd}, {"sertest", cmd_serial_test}, {"port80flood", cmd_port_80_flood}, |