diff options
Diffstat (limited to 'common/extpower_falco.c')
-rw-r--r-- | common/extpower_falco.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/common/extpower_falco.c b/common/extpower_falco.c new file mode 100644 index 0000000000..04e86abadf --- /dev/null +++ b/common/extpower_falco.c @@ -0,0 +1,49 @@ +/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Special AC Adapter logic for Falco */ + +#include "adc.h" +#include "common.h" +#include "console.h" +#include "util.h" + +enum adapter_type { + ADAPTER_UNKNOWN, + ADAPTER_45W, + ADAPTER_65W, + ADAPTER_90W, +}; + +static const char * const adapter_str[] = { + "unknown", + "45W", + "65W", + "90W" +}; + +static enum adapter_type identify_adapter(void) +{ + int mv; + mv = adc_read_channel(ADC_AC_ADAPTER_ID_VOLTAGE); + if (mv >= 434 && mv <= 554) + return ADAPTER_45W; + if (mv >= 561 && mv <= 717) + return ADAPTER_65W; + if (mv >= 725 && mv <= 925) + return ADAPTER_90W; + + return ADAPTER_UNKNOWN; +} + +static int command_adapter(int argc, char **argv) +{ + ccprintf("%s\n", adapter_str[identify_adapter()]); + return EC_SUCCESS; +} +DECLARE_CONSOLE_COMMAND(adapter, command_adapter, + NULL, + "Identify AC adapter type", + NULL); |