summaryrefslogtreecommitdiff
path: root/board/servo_v4p1/ina231s.c
diff options
context:
space:
mode:
authorSam Hurst <shurst@google.com>2020-05-26 10:34:02 -0700
committerCommit Bot <commit-bot@chromium.org>2020-07-01 01:36:57 +0000
commit5e62b34f19a0d8a93d82990e7327491ca4ee6a1d (patch)
treed91cce13f8edc3546fa90575309c2a15d537fb72 /board/servo_v4p1/ina231s.c
parenta057167851e63be53e2de757361dc2e303b737e2 (diff)
downloadchrome-ec-5e62b34f19a0d8a93d82990e7327491ca4ee6a1d.tar.gz
servo_v4p1: Add INA231S functionality
This functionality is only available in RO BRANCH=none BUG=b:146793000 TEST=make -j buildall Signed-off-by: Sam Hurst <shurst@google.com> Change-Id: I37f97e8e882a8a5948aeeb669ca39cc930e32d31 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2216406 Reviewed-by: Wai-Hong Tam <waihong@google.com>
Diffstat (limited to 'board/servo_v4p1/ina231s.c')
-rw-r--r--board/servo_v4p1/ina231s.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/board/servo_v4p1/ina231s.c b/board/servo_v4p1/ina231s.c
new file mode 100644
index 0000000000..3382686f3f
--- /dev/null
+++ b/board/servo_v4p1/ina231s.c
@@ -0,0 +1,69 @@
+/* Copyright 2020 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.
+ */
+
+#include "common.h"
+#include "ina2xx.h"
+#include "util.h"
+
+#define PP_DUT_IDX 0
+#define PP_CHG_IDX 1
+#define SR_CHG_IDX 2
+
+void init_ina231s(void)
+{
+ /* Calibrate INA0 (PP DUT) with 1mA/LSB scale */
+ ina2xx_init(PP_DUT_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
+
+ /* Calibrate INA1 (PP CHG) with 1mA/LSB scale */
+ ina2xx_init(PP_CHG_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
+
+ /* Calibrate INA2 (SR CHG) with 1mA/LSB scale*/
+ ina2xx_init(SR_CHG_IDX, 0x8000, INA2XX_CALIB_1MA(5 /*mOhm*/));
+}
+
+int pp_dut_voltage(void)
+{
+ return ina2xx_get_voltage(PP_DUT_IDX);
+}
+
+int pp_dut_current(void)
+{
+ return ina2xx_get_current(PP_DUT_IDX);
+}
+
+int pp_dut_power(void)
+{
+ return ina2xx_get_power(PP_DUT_IDX);
+}
+
+int pp_chg_voltage(void)
+{
+ return ina2xx_get_voltage(PP_CHG_IDX);
+}
+
+int pp_chg_current(void)
+{
+ return ina2xx_get_current(PP_CHG_IDX);
+}
+
+int pp_chg_power(void)
+{
+ return ina2xx_get_power(PP_CHG_IDX);
+}
+
+int sr_chg_voltage(void)
+{
+ return ina2xx_get_voltage(SR_CHG_IDX);
+}
+
+int sr_chg_current(void)
+{
+ return ina2xx_get_current(SR_CHG_IDX);
+}
+
+int sr_chg_power(void)
+{
+ return ina2xx_get_power(SR_CHG_IDX);
+}