diff options
author | YongBeum.Ha <ybha@samsung.corp-partner.google.com> | 2020-09-25 15:02:15 +0900 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-17 01:32:05 +0000 |
commit | 6c7aba446c0116ec91d586b3ccbe96070be08b44 (patch) | |
tree | ee77a2a14de416b00ab98d105ef4a93409deb1ef /driver | |
parent | 1d2202cd0e5b1d73170cdf4d3e07ddcc73b739d1 (diff) | |
download | chrome-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')
-rw-r--r-- | driver/charger/bd9995x.c | 13 | ||||
-rw-r--r-- | driver/charger/bd9995x.h | 13 | ||||
-rw-r--r-- | driver/charger/bq24773.c | 16 | ||||
-rw-r--r-- | driver/charger/bq24773.h | 16 | ||||
-rw-r--r-- | driver/charger/bq25710.c | 7 | ||||
-rw-r--r-- | driver/charger/isl923x.c | 45 | ||||
-rw-r--r-- | driver/charger/isl923x.h | 38 | ||||
-rw-r--r-- | driver/charger/rt946x.c | 13 | ||||
-rw-r--r-- | driver/charger/rt946x.h | 13 |
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 |