diff options
Diffstat (limited to 'util/ectool.c')
-rw-r--r-- | util/ectool.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/util/ectool.c b/util/ectool.c index f8c1b13339..4d827f52af 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -1702,6 +1702,7 @@ static const struct { MS_SIZES(ec_rate), MS_SIZES(sensor_odr), MS_SIZES(sensor_range), + MS_SIZES(kb_wake_angle), }; BUILD_ASSERT(ARRAY_SIZE(ms_command_sizes) == MOTIONSENSE_NUM_CMDS); #undef MS_SIZES @@ -1715,6 +1716,7 @@ static int ms_help(const char *cmd) printf(" %s ec_rate [RATE_MS] - set/get sample rate\n", cmd); printf(" %s odr NUM [ODR [ROUNDUP]] - set/get sensor ODR\n", cmd); printf(" %s range NUM [RANGE [ROUNDUP]]- set/get sensor range\n", cmd); + printf(" %s kb_wake NUM - set/get KB wake ang\n", cmd); return 0; } @@ -1935,6 +1937,29 @@ static int cmd_motionsense(int argc, char **argv) return 0; } + if (argc < 4 && !strcasecmp(argv[1], "kb_wake")) { + param.cmd = MOTIONSENSE_CMD_KB_WAKE_ANGLE; + param.kb_wake_angle.data = EC_MOTION_SENSE_NO_VALUE; + + if (argc == 3) { + param.kb_wake_angle.data = strtol(argv[2], &e, 0); + if (e && *e) { + fprintf(stderr, "Bad %s arg.\n", argv[1]); + return -1; + } + } + + rv = ec_command(EC_CMD_MOTION_SENSE_CMD, 0, + ¶m, ms_command_sizes[param.cmd].insize, + &resp, ms_command_sizes[param.cmd].outsize); + + if (rv < 0) + return rv; + + printf("%d\n", resp.kb_wake_angle.ret); + return 0; + } + return ms_help(argv[0]); } |