chromeec: Add command to override charger limit
This patch adds EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT, which overrides the max input current and voltage when a barrel jack adapter supplies power. BUG=b:64442692 BRANCH=none TEST=Boot Fizz. Use chgsup console command to verify the max current and voltage are set as expected. Change-Id: I8c6fc54e519ce13e3db82ee2cecaa96c6eb42d8a Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://review.coreboot.org/22624 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
40d0bfa212
commit
93fd8fa40f
|
@ -638,6 +638,26 @@ int google_chromeec_get_usb_pd_power_info(enum usb_chg_type *type,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int google_chromeec_override_dedicated_charger_limit(u16 current_lim,
|
||||
u16 voltage_lim)
|
||||
{
|
||||
struct ec_params_dedicated_charger_limit p = {
|
||||
.current_lim = current_lim,
|
||||
.voltage_lim = voltage_lim,
|
||||
};
|
||||
struct chromeec_command cmd = {
|
||||
.cmd_code = EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT,
|
||||
.cmd_version = 0,
|
||||
.cmd_data_in = &p,
|
||||
.cmd_size_in = sizeof(p),
|
||||
.cmd_data_out = NULL,
|
||||
.cmd_size_out = 0,
|
||||
.cmd_dev_index = 0,
|
||||
};
|
||||
|
||||
return google_chromeec_command(&cmd);
|
||||
}
|
||||
|
||||
int google_chromeec_set_usb_pd_role(u8 port, enum usb_pd_control_role role)
|
||||
{
|
||||
struct ec_params_usb_pd_control req = {
|
||||
|
|
|
@ -91,6 +91,16 @@ int google_chromeec_set_usb_pd_role(u8 port, enum usb_pd_control_role role);
|
|||
int google_chromeec_get_usb_pd_power_info(enum usb_chg_type *type,
|
||||
u32 *max_watts);
|
||||
|
||||
/*
|
||||
* Set max current and voltage of a dedicated charger.
|
||||
*
|
||||
* @param current_lim Max current in mA
|
||||
* @param voltage_lim Max voltage in mV
|
||||
* @return non-zero for error, otherwise 0.
|
||||
*/
|
||||
int google_chromeec_override_dedicated_charger_limit(u16 current_lim,
|
||||
u16 voltage_lim);
|
||||
|
||||
/* internal structure to send a command to the EC and wait for response. */
|
||||
struct chromeec_command {
|
||||
uint16_t cmd_code; /* command code in, status out */
|
||||
|
|
|
@ -3533,6 +3533,16 @@ struct __ec_align2 ec_params_external_power_limit_v1 {
|
|||
|
||||
#define EC_POWER_LIMIT_NONE 0xffff
|
||||
|
||||
/*
|
||||
* Set maximum voltage & current of a dedicated charge port
|
||||
*/
|
||||
#define EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT 0x00A3
|
||||
|
||||
struct __ec_align2 ec_params_dedicated_charger_limit {
|
||||
uint16_t current_lim; /* in mA */
|
||||
uint16_t voltage_lim; /* in mV */
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Hibernate/Deep Sleep Commands */
|
||||
|
||||
|
|
Loading…
Reference in New Issue