summaryrefslogtreecommitdiff
path: root/common/mock_smart_battery_stub.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/mock_smart_battery_stub.c')
-rw-r--r--common/mock_smart_battery_stub.c105
1 files changed, 105 insertions, 0 deletions
diff --git a/common/mock_smart_battery_stub.c b/common/mock_smart_battery_stub.c
new file mode 100644
index 0000000000..49b44859c9
--- /dev/null
+++ b/common/mock_smart_battery_stub.c
@@ -0,0 +1,105 @@
+#include "console.h"
+#include "smart_battery.h"
+#include "smart_battery_stub.h"
+#include "uart.h"
+#include "util.h"
+
+static int mock_temperature = 2981;
+static int mock_desire_voltage = 7000;
+static int mock_desire_current = 3000;
+static int mock_voltage = 6000;
+static int mock_current = 3000;
+
+int sb_read(int cmd, int *param)
+{
+ switch (cmd)
+ {
+ case SB_TEMPERATURE:
+ *param = mock_temperature;
+ break;
+ case SB_VOLTAGE:
+ *param = mock_voltage;
+ break;
+ case SB_CURRENT:
+ *param = mock_current;
+ break;
+ case SB_RELATIVE_STATE_OF_CHARGE:
+ case SB_ABSOLUTE_STATE_OF_CHARGE:
+ *param = 70; /* 70% charged */
+ break;
+ case SB_REMAINING_CAPACITY:
+ *param = 7000; /* 7000 mAh */
+ break;
+ case SB_FULL_CHARGE_CAPACITY:
+ case SB_DESIGN_CAPACITY:
+ *param = 10000; /* 10000 mAh */
+ break;
+ case SB_AVERAGE_TIME_TO_EMPTY:
+ case SB_RUN_TIME_TO_EMPTY:
+ *param = 60; /* 60 min to empty */
+ break;
+ case SB_AVERAGE_TIME_TO_FULL:
+ *param = 30; /* 30 min to full */
+ break;
+ case SB_CHARGING_CURRENT:
+ *param = mock_desire_current;
+ break;
+ case SB_CHARGING_VOLTAGE:
+ *param = mock_desire_voltage;
+ break;
+ case SB_CYCLE_COUNT:
+ *param = 10;
+ break;
+ case SB_DESIGN_VOLTAGE:
+ *param = 7400; /* 7.4 V */
+ break;
+ case SB_SERIAL_NUMBER:
+ *param = 112233;
+ break;
+ default:
+ *param = 0;
+ break;
+ }
+
+ return EC_SUCCESS;
+}
+
+
+int sb_write(int cmd, int param)
+{
+ uart_printf("sb_write: cmd = %d, param = %d\n", cmd, param);
+ return EC_SUCCESS;
+}
+
+
+static int command_sb_mock(int argc, char **argv)
+{
+ char *e;
+ int v;
+
+ if (argc < 3)
+ return EC_ERROR_PARAM_COUNT;
+
+ v = strtoi(argv[2], &e, 0);
+ if (*e)
+ return EC_ERROR_PARAM2;
+
+ if (!strcasecmp(argv[1], "temperature"))
+ mock_temperature = v;
+ else if (!strcasecmp(argv[1], "desire_voltage"))
+ mock_desire_voltage = v;
+ else if (!strcasecmp(argv[1], "desire_current"))
+ mock_desire_current = v;
+ else if (!strcasecmp(argv[1], "voltage"))
+ mock_voltage = v;
+ else if (!strcasecmp(argv[1], "current"))
+ mock_current = v;
+ else
+ return EC_ERROR_PARAM1;
+
+ return EC_SUCCESS;
+}
+DECLARE_CONSOLE_COMMAND(sbmock, command_sb_mock,
+ "name value",
+ "Mock smart battery attribute",
+ NULL);