diff options
Diffstat (limited to 'include/ocpc.h')
-rw-r--r-- | include/ocpc.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/ocpc.h b/include/ocpc.h index c5c41470cb..9dbd372ae5 100644 --- a/include/ocpc.h +++ b/include/ocpc.h @@ -13,9 +13,47 @@ #define PRIMARY_CHARGER 0 #define SECONDARY_CHARGER 1 +#define OCPC_UNINIT 0xdededede + struct ocpc_data { /* Index into chg_chips[] table for the charger IC that is switching. */ int active_chg_chip; + + int combined_rsys_rbatt_mo; /* System resistance b/w output and Vbatt */ + + /* ADC values */ + int primary_vbus_mv; /* VBUS measured by the primary charger IC */ + int primary_ibus_ma; /* IBUS measrued by the primary charger IC */ + int secondary_vbus_mv; /* VBUS measured by the secondary charger IC */ + int secondary_ibus_ma; /* IBUS measure by the secondary charger IC */ + + /* PID values */ + int last_error; + int integral; + int last_vsys; }; +/** Set the VSYS target for the secondary charger IC. + * + * @param curr: Pointer to desired_input_current + * @param ocpc: Pointer to OCPC data + * @param voltage_mv: The desired voltage + * @param current_ma: The desired current + * @return EC_SUCCESS on success, error otherwise. + */ +int ocpc_config_secondary_charger(int *desired_input_current, + struct ocpc_data *ocpc, + int voltage_mv, int current_ma); + +/** Get the runtime data from the various ADCs. + * + * @param ocpc: Pointer to OCPC data + */ +void ocpc_get_adcs(struct ocpc_data *ocpc); + +/* Set the PID constants for the charging loop */ +__overridable void ocpc_get_pid_constants(int *kp, int *kp_div, + int *ki, int *ki_div, + int *kd, int *kd_div); + #endif /* __CROS_EC_OCPC_H */ |