summaryrefslogtreecommitdiff
path: root/common/ocpc.c
diff options
context:
space:
mode:
authorYH Lin <yueherngl@chromium.org>2022-12-03 00:19:30 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-05 17:43:05 +0000
commitc8af732351cc5c7167f27e8390e26f0556f53a5a (patch)
treebdff671e5ad3e71e30ab56f4f084f34a2fd72e28 /common/ocpc.c
parentaf25602b15b22b9ef5821dcba9934311f2157c48 (diff)
downloadchrome-ec-c8af732351cc5c7167f27e8390e26f0556f53a5a.tar.gz
Revert "Merge remote-tracking branch cros/main into factory-brya-14517.B-main"factory-brya-14517.B-main
This reverts commit af25602b15b22b9ef5821dcba9934311f2157c48. Reason for revert: broken build due to ec-utils. Original change's description: > Merge remote-tracking branch cros/main into factory-brya-14517.B-main > > Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file > baseboard/brya/relevant-paths.txt factory-brya-14517.B-main > > Relevant changes: > > git log --oneline 54462f034b..aa40b859b3 -- baseboard/brya board/agah > board/anahera board/banshee board/brya board/crota board/felwinter > board/gimble board/kano board/mithrax board/osiris board/primus > board/redrix board/taeko board/taniks board/vell board/volmar > driver/bc12/pi3usb9201_public.* driver/charger/bq25710.* > driver/ppc/nx20p348x.* driver/ppc/syv682x_public.* > driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.* > driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake* > include/intel_x86.h power/alderlake* power/intel_x86.c > util/getversion.sh > > e6da633c38 driver: Sort header files > 234a87ae2d tcpci: Add FRS enable to driver structure > a56be59ccd tcpm_header: add test for tcpm_dump_registers > 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT > e420c8ff9a marasov: Modify TypeC and TypeA configuration. > 43b53e0045 Add default implementation of board_set_charge_limit > b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT > f1b563c350 baseboard: Sort header files > 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70 > ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT > 8f89f69a5b crota: disable lid angle sensor for clamshell > > BRANCH=None > BUG=b:259002141 b:255184961 b:247100970 b:259354679 b:260630630 > BUG=b:163093572 b:254328661 > TEST=`emerge-brya chromeos-ec` > > Force-Relevant-Builds: all > Change-Id: Ia85a701fbf6b8e67ec214b9e25e0e55e980a6f47 > Signed-off-by: YH Lin <yueherngl@google.com> Bug: b:259002141 b:255184961 b:247100970 b:259354679 b:260630630 Bug: b:163093572 b:254328661 Change-Id: I48d5aa4cc67a69ee1f6ac9255ac3087d34da4c72 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4077248 Tested-by: YH Lin <yueherngl@chromium.org> Commit-Queue: YH Lin <yueherngl@chromium.org> Reviewed-by: Boris Mittelberg <bmbm@google.com> Auto-Submit: YH Lin <yueherngl@chromium.org>
Diffstat (limited to 'common/ocpc.c')
-rw-r--r--common/ocpc.c63
1 files changed, 16 insertions, 47 deletions
diff --git a/common/ocpc.c b/common/ocpc.c
index 88308e5bc7..c27cf4efe5 100644
--- a/common/ocpc.c
+++ b/common/ocpc.c
@@ -58,7 +58,6 @@ static int k_d = KD;
static int k_p_div = KP_DIV;
static int k_i_div = KI_DIV;
static int k_d_div = KD_DIV;
-static int drive_limit = CONFIG_OCPC_DEF_DRIVELIMIT_MILLIVOLTS;
static int debug_output;
static int viz_output;
@@ -248,10 +247,9 @@ enum ec_error_list ocpc_calc_resistances(struct ocpc_data *ocpc,
return EC_SUCCESS;
}
-int ocpc_config_secondary_charger(int *desired_charger_input_current,
- struct ocpc_data *ocpc,
- int desired_batt_voltage_mv,
- int desired_batt_current_ma)
+int ocpc_config_secondary_charger(int *desired_input_current,
+ struct ocpc_data *ocpc, int voltage_mv,
+ int current_ma)
{
int rv = EC_SUCCESS;
struct batt_params batt;
@@ -287,8 +285,8 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
batt_info = battery_get_info();
- if (desired_batt_current_ma == 0) {
- vsys_target = desired_batt_voltage_mv;
+ if (current_ma == 0) {
+ vsys_target = voltage_mv;
goto set_vsys;
}
@@ -319,8 +317,8 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
if (!timestamp_expired(delay, NULL))
return EC_ERROR_BUSY;
- result = charger_set_vsys_compensation(
- chgnum, ocpc, desired_batt_current_ma, desired_batt_voltage_mv);
+ result = charger_set_vsys_compensation(chgnum, ocpc, current_ma,
+ voltage_mv);
switch (result) {
case EC_SUCCESS:
/* No further action required, so we're done here. */
@@ -378,9 +376,8 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
if (batt.desired_voltage) {
if (((batt.voltage < batt_info->voltage_min) ||
((batt.voltage < batt_info->voltage_normal) &&
- (desired_batt_current_ma >= 0) &&
- (desired_batt_current_ma <=
- batt_info->precharge_current))) &&
+ (current_ma >= 0) &&
+ (current_ma <= batt_info->precharge_current))) &&
(ph != PHASE_PRECHARGE)) {
/*
* If the charger IC doesn't support the linear charge
@@ -392,12 +389,11 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
} else if (result == EC_SUCCESS) {
CPRINTS("OCPC: Enabling linear precharge");
ph = PHASE_PRECHARGE;
- i_ma = desired_batt_current_ma;
+ i_ma = current_ma;
}
} else if (batt.voltage < batt.desired_voltage) {
if ((ph == PHASE_PRECHARGE) &&
- (desired_batt_current_ma >
- batt_info->precharge_current)) {
+ (current_ma > batt_info->precharge_current)) {
/*
* Precharge phase is complete. Now set the
* target VSYS to the battery voltage to prevent
@@ -426,7 +422,7 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
if ((ph != PHASE_PRECHARGE) && (ph < PHASE_CV_TRIP))
ph = PHASE_CC;
- i_ma = desired_batt_current_ma;
+ i_ma = current_ma;
} else {
/*
* Once the battery voltage reaches the desired voltage,
@@ -456,16 +452,6 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
*/
if (ocpc->last_vsys != OCPC_UNINIT) {
error = i_ma - batt.current;
-
- /* Uses charger input error if controller is proportional only.
- */
- if ((k_i == 0) && (k_d == 0)) {
- int charger_input_error =
- (*desired_charger_input_current -
- ocpc->secondary_ibus_ma);
- error = MIN(error, charger_input_error);
- }
-
/* Add some hysteresis. */
if (ABS(error) < (i_step / 2))
error = 0;
@@ -504,15 +490,11 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
* VSYS rather quickly, but we'll be conservative on
* increasing VSYS.
*/
- if (drive > drive_limit)
- drive = drive_limit;
+ if (drive > 10)
+ drive = 10;
CPRINTS_DBG("drive = %d", drive);
}
- CPRINTS_DBG("##DATA = %d %d %d %d %d %d %d", batt.desired_current,
- batt.current, *desired_charger_input_current,
- ocpc->secondary_ibus_ma, error, ocpc->last_vsys, drive);
-
/*
* For the pre-charge phase, simply keep the VSYS target at the desired
* voltage.
@@ -555,7 +537,7 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
/* If we're input current limited, we cannot increase VSYS any more. */
CPRINTS_DBG("OCPC: Inst. Input Current: %dmA (Limit: %dmA)",
- ocpc->secondary_ibus_ma, *desired_charger_input_current);
+ ocpc->secondary_ibus_ma, *desired_input_current);
if (charger_is_icl_reached(chgnum, &icl_reached) != EC_SUCCESS) {
/*
@@ -564,7 +546,7 @@ int ocpc_config_secondary_charger(int *desired_charger_input_current,
* 95% of the limit.
*/
if (ocpc->secondary_ibus_ma >=
- (*desired_charger_input_current * 95 / 100))
+ (*desired_input_current * 95 / 100))
icl_reached = true;
}
@@ -783,16 +765,3 @@ static int command_ocpcpid(int argc, const char **argv)
DECLARE_SAFE_CONSOLE_COMMAND(ocpcpid, command_ocpcpid,
"[<k/p/d> <numerator> <denominator>]",
"Show/Set PID constants for OCPC PID loop");
-
-static int command_ocpcdrvlmt(int argc, const char **argv)
-{
- if (argc == 2) {
- drive_limit = atoi(argv[1]);
- }
-
- /* Print the current constants */
- ccprintf("Drive Limit = %d\n", drive_limit);
- return EC_SUCCESS;
-}
-DECLARE_SAFE_CONSOLE_COMMAND(ocpcdrvlmt, command_ocpcdrvlmt, "[<drive_limit>]",
- "Show/Set drive limit for OCPC PID loop");