summaryrefslogtreecommitdiff
path: root/driver/charger
diff options
context:
space:
mode:
authorYongBeum.Ha <ybha@samsung.corp-partner.google.com>2020-09-25 15:02:15 +0900
committerCommit Bot <commit-bot@chromium.org>2020-11-17 01:32:05 +0000
commit6c7aba446c0116ec91d586b3ccbe96070be08b44 (patch)
treeee77a2a14de416b00ab98d105ef4a93409deb1ef /driver/charger
parent1d2202cd0e5b1d73170cdf4d3e07ddcc73b739d1 (diff)
downloadchrome-ec-6c7aba446c0116ec91d586b3ccbe96070be08b44.tar.gz
Casta : Support Multi-Charger
Casta needs to support 2 chargers(ISL9238 & BQ25710) BUG=b:168122776 BRANCH=firmware-octopus-11297.B TEST=None Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Change-Id: I18758acbd0920132c2958bf9d238b4eac3fb5b73 Signed-off-by: YongBeum.Ha <ybha@samsung.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2428354 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'driver/charger')
-rw-r--r--driver/charger/bd9995x.c13
-rw-r--r--driver/charger/bd9995x.h13
-rw-r--r--driver/charger/bq24773.c16
-rw-r--r--driver/charger/bq24773.h16
-rw-r--r--driver/charger/bq25710.c7
-rw-r--r--driver/charger/isl923x.c45
-rw-r--r--driver/charger/isl923x.h38
-rw-r--r--driver/charger/rt946x.c13
-rw-r--r--driver/charger/rt946x.h13
9 files changed, 94 insertions, 80 deletions
diff --git a/driver/charger/bd9995x.c b/driver/charger/bd9995x.c
index 2531d4225d..950657f457 100644
--- a/driver/charger/bd9995x.c
+++ b/driver/charger/bd9995x.c
@@ -67,6 +67,19 @@ static int select_input_port_update;
#endif
/* Charger parameters */
+#define CHARGER_NAME BD9995X_CHARGER_NAME
+#define CHARGE_V_MAX 19200
+#define CHARGE_V_MIN 3072
+#define CHARGE_V_STEP 16
+#define CHARGE_I_MAX 16320
+#define CHARGE_I_MIN 128
+#define CHARGE_I_OFF 0
+#define CHARGE_I_STEP 64
+#define INPUT_I_MAX 16352
+#define INPUT_I_MIN 512
+#define INPUT_I_STEP 32
+
+/* Charger parameters */
static const struct charger_info bd9995x_charger_info = {
.name = CHARGER_NAME,
.voltage_max = CHARGE_V_MAX,
diff --git a/driver/charger/bd9995x.h b/driver/charger/bd9995x.h
index 5d346eb969..a1f1bdb64f 100644
--- a/driver/charger/bd9995x.h
+++ b/driver/charger/bd9995x.h
@@ -34,19 +34,6 @@ enum bd9995x_charge_port {
BD9995X_CHARGE_PORT_BOTH,
};
-/* Charger parameters */
-#define CHARGER_NAME BD9995X_CHARGER_NAME
-#define CHARGE_V_MAX 19200
-#define CHARGE_V_MIN 3072
-#define CHARGE_V_STEP 16
-#define CHARGE_I_MAX 16320
-#define CHARGE_I_MIN 128
-#define CHARGE_I_OFF 0
-#define CHARGE_I_STEP 64
-#define INPUT_I_MAX 16352
-#define INPUT_I_MIN 512
-#define INPUT_I_STEP 32
-
/* Min. charge current w/ no battery to prevent collapse */
#define BD9995X_NO_BATTERY_CHARGE_I_MIN 512
diff --git a/driver/charger/bq24773.c b/driver/charger/bq24773.c
index 87ef187357..bfaac4873a 100644
--- a/driver/charger/bq24773.c
+++ b/driver/charger/bq24773.c
@@ -28,6 +28,22 @@
#define REG8_TO_CURRENT(REG, RS) ((REG) * DEFAULT_SENSE_RESISTOR / (RS) * R8)
#define CURRENT_TO_REG8(CUR, RS) ((CUR) * (RS) / DEFAULT_SENSE_RESISTOR / R8)
+/* ChargeCurrent Register - 0x14 (mA) */
+#define CHARGE_I_OFF 0
+#define CHARGE_I_MIN 128
+#define CHARGE_I_MAX 8128
+#define CHARGE_I_STEP 64
+
+/* MaxChargeVoltage Register - 0x15 (mV) */
+#define CHARGE_V_MIN 1024
+#define CHARGE_V_MAX 19200
+#define CHARGE_V_STEP 16
+
+/* InputCurrent Register - 0x3f (mA) */
+#define INPUT_I_MIN 128
+#define INPUT_I_MAX 8128
+#define INPUT_I_STEP 64
+
/* Charger parameters */
static const struct charger_info bq2477x_charger_info = {
.name = CHARGER_NAME,
diff --git a/driver/charger/bq24773.h b/driver/charger/bq24773.h
index c22bfa528a..46f8939036 100644
--- a/driver/charger/bq24773.h
+++ b/driver/charger/bq24773.h
@@ -54,22 +54,6 @@
/* Prochot Option bits */
#define PROCHOT_OPTION1_SELECTOR_MASK 0x7f /* [6:0] PROCHOT SELECTOR */
-/* ChargeCurrent Register - 0x14 (mA) */
-#define CHARGE_I_OFF 0
-#define CHARGE_I_MIN 128
-#define CHARGE_I_MAX 8128
-#define CHARGE_I_STEP 64
-
-/* MaxChargeVoltage Register - 0x15 (mV) */
-#define CHARGE_V_MIN 1024
-#define CHARGE_V_MAX 19200
-#define CHARGE_V_STEP 16
-
-/* InputCurrent Register - 0x3f (mA) */
-#define INPUT_I_MIN 128
-#define INPUT_I_MAX 8128
-#define INPUT_I_STEP 64
-
#ifdef CONFIG_CHARGER_BQ24770
#define CHARGER_NAME "bq24770"
#define I2C_ADDR_CHARGER_FLAGS BQ24770_ADDR_FLAGS
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c
index e653588bca..d8a406b73c 100644
--- a/driver/charger/bq25710.c
+++ b/driver/charger/bq25710.c
@@ -35,6 +35,13 @@
/* Sense resistor configurations and macros */
#define DEFAULT_SENSE_RESISTOR 10
+#ifdef CONFIG_CHARGER_SENSE_RESISTOR_AC_BQ25710
+ #undef CONFIG_CHARGER_SENSE_RESISTOR_AC
+ #define CONFIG_CHARGER_SENSE_RESISTOR_AC \
+ CONFIG_CHARGER_SENSE_RESISTOR_AC_BQ25710
+#endif
+
+
#define INPUT_RESISTOR_RATIO \
((CONFIG_CHARGER_SENSE_RESISTOR_AC) / DEFAULT_SENSE_RESISTOR)
#define REG_TO_INPUT_CURRENT(REG) ((REG + 1) * 50 / INPUT_RESISTOR_RATIO)
diff --git a/driver/charger/isl923x.c b/driver/charger/isl923x.c
index 5ab4c7f9f1..454aef494c 100644
--- a/driver/charger/isl923x.c
+++ b/driver/charger/isl923x.c
@@ -30,6 +30,13 @@
#define CHARGER_ISL9238X
#endif
+#ifdef CONFIG_CHARGER_SENSE_RESISTOR_AC_ISL9238
+ #undef CONFIG_CHARGER_SENSE_RESISTOR_AC
+ #define CONFIG_CHARGER_SENSE_RESISTOR_AC \
+ CONFIG_CHARGER_SENSE_RESISTOR_AC_ISL9238
+#endif
+
+
#define DEFAULT_R_AC 20
#define DEFAULT_R_SNS 10
#define R_AC CONFIG_CHARGER_SENSE_RESISTOR_AC
@@ -39,6 +46,44 @@
#define AC_REG_TO_CURRENT(REG) ((REG) * DEFAULT_R_AC / R_AC)
#define AC_CURRENT_TO_REG(CUR) ((CUR) * R_AC / DEFAULT_R_AC)
+#if defined(CONFIG_CHARGER_ISL9237)
+#define CHARGER_NAME "isl9237"
+#define CHARGE_V_MAX ISL9237_SYS_VOLTAGE_REG_MAX
+#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
+#define CHARGE_V_STEP 8
+#elif defined(CONFIG_CHARGER_ISL9238)
+#define CHARGER_NAME "isl9238"
+#define CHARGE_V_MAX ISL9238_SYS_VOLTAGE_REG_MAX
+#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
+#define CHARGE_V_STEP 8
+#elif defined(CONFIG_CHARGER_ISL9238C)
+#define CHARGER_NAME "isl9238c"
+#define CHARGE_V_MAX ISL9238_SYS_VOLTAGE_REG_MAX
+#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
+#define CHARGE_V_STEP 8
+#elif defined(CONFIG_CHARGER_RAA489000)
+#define CHARGER_NAME "raa489000"
+#define CHARGE_V_MAX RAA489000_SYS_VOLTAGE_REG_MAX
+#define CHARGE_V_MIN RAA489000_SYS_VOLTAGE_REG_MIN
+#define CHARGE_V_STEP 64
+#endif
+
+#ifdef CONFIG_CHARGER_RAA489000
+#define CHARGE_I_MAX RAA489000_CURRENT_REG_MAX
+#else
+#define CHARGE_I_MAX ISL923X_CURRENT_REG_MAX
+#endif /* CONFIG_CHARGER_RAA489000 */
+#define CHARGE_I_MIN 4
+#define CHARGE_I_OFF 0
+#define CHARGE_I_STEP 4
+#ifdef CONFIG_CHARGER_RAA489000
+#define INPUT_I_MAX RAA489000_CURRENT_REG_MAX
+#else
+#define INPUT_I_MAX ISL923X_CURRENT_REG_MAX
+#endif /* CONFIG_CHARGER_RAA489000 */
+#define INPUT_I_MIN 4
+#define INPUT_I_STEP 4
+
/* Console output macros */
#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)
diff --git a/driver/charger/isl923x.h b/driver/charger/isl923x.h
index 1b2cf30954..9b38b623e9 100644
--- a/driver/charger/isl923x.h
+++ b/driver/charger/isl923x.h
@@ -339,44 +339,6 @@ enum isl9237_fsm_state {
#define RAA489000_C10_RP1_SHIFT 10
#define RAA489000_C10_ENABLE_DVC_MODE BIT(15)
-#if defined(CONFIG_CHARGER_ISL9237)
-#define CHARGER_NAME "isl9237"
-#define CHARGE_V_MAX ISL9237_SYS_VOLTAGE_REG_MAX
-#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
-#define CHARGE_V_STEP 8
-#elif defined(CONFIG_CHARGER_ISL9238)
-#define CHARGER_NAME "isl9238"
-#define CHARGE_V_MAX ISL9238_SYS_VOLTAGE_REG_MAX
-#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
-#define CHARGE_V_STEP 8
-#elif defined(CONFIG_CHARGER_ISL9238C)
-#define CHARGER_NAME "isl9238c"
-#define CHARGE_V_MAX ISL9238_SYS_VOLTAGE_REG_MAX
-#define CHARGE_V_MIN ISL923X_SYS_VOLTAGE_REG_MIN
-#define CHARGE_V_STEP 8
-#elif defined(CONFIG_CHARGER_RAA489000)
-#define CHARGER_NAME "raa489000"
-#define CHARGE_V_MAX RAA489000_SYS_VOLTAGE_REG_MAX
-#define CHARGE_V_MIN RAA489000_SYS_VOLTAGE_REG_MIN
-#define CHARGE_V_STEP 64
-#endif
-
-#ifdef CONFIG_CHARGER_RAA489000
-#define CHARGE_I_MAX RAA489000_CURRENT_REG_MAX
-#else
-#define CHARGE_I_MAX ISL923X_CURRENT_REG_MAX
-#endif /* CONFIG_CHARGER_RAA489000 */
-#define CHARGE_I_MIN 4
-#define CHARGE_I_OFF 0
-#define CHARGE_I_STEP 4
-#ifdef CONFIG_CHARGER_RAA489000
-#define INPUT_I_MAX RAA489000_CURRENT_REG_MAX
-#else
-#define INPUT_I_MAX ISL923X_CURRENT_REG_MAX
-#endif /* CONFIG_CHARGER_RAA489000 */
-#define INPUT_I_MIN 4
-#define INPUT_I_STEP 4
-
#define I2C_ADDR_CHARGER_FLAGS ISL923X_ADDR_FLAGS
extern const struct charger_drv isl923x_drv;
diff --git a/driver/charger/rt946x.c b/driver/charger/rt946x.c
index d78089439c..8586f989a0 100644
--- a/driver/charger/rt946x.c
+++ b/driver/charger/rt946x.c
@@ -32,6 +32,19 @@
cprints(CC_CHARGER, "%s " format, "RT946X", ## args)
/* Charger parameters */
+#define CHARGER_NAME RT946X_CHARGER_NAME
+#define CHARGE_V_MAX 4710
+#define CHARGE_V_MIN 3900
+#define CHARGE_V_STEP 10
+#define CHARGE_I_MAX 5000
+#define CHARGE_I_MIN 100
+#define CHARGE_I_OFF 0
+#define CHARGE_I_STEP 100
+#define INPUT_I_MAX 3250
+#define INPUT_I_MIN 100
+#define INPUT_I_STEP 50
+
+/* Charger parameters */
static const struct charger_info rt946x_charger_info = {
.name = CHARGER_NAME,
.voltage_max = CHARGE_V_MAX,
diff --git a/driver/charger/rt946x.h b/driver/charger/rt946x.h
index 38ec200c77..5e6f9e0223 100644
--- a/driver/charger/rt946x.h
+++ b/driver/charger/rt946x.h
@@ -8,19 +8,6 @@
#ifndef __CROS_EC_RT946X_H
#define __CROS_EC_RT946X_H
-/* Charger parameters */
-#define CHARGER_NAME RT946X_CHARGER_NAME
-#define CHARGE_V_MAX 4710
-#define CHARGE_V_MIN 3900
-#define CHARGE_V_STEP 10
-#define CHARGE_I_MAX 5000
-#define CHARGE_I_MIN 100
-#define CHARGE_I_OFF 0
-#define CHARGE_I_STEP 100
-#define INPUT_I_MAX 3250
-#define INPUT_I_MIN 100
-#define INPUT_I_STEP 50
-
/* Registers for rt9466, rt9467 */
#if defined(CONFIG_CHARGER_RT9466) || defined(CONFIG_CHARGER_RT9467)
#define RT946X_REG_CORECTRL0 0x00