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;
|
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)
|
int google_chromeec_set_usb_pd_role(u8 port, enum usb_pd_control_role role)
|
||||||
{
|
{
|
||||||
struct ec_params_usb_pd_control req = {
|
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,
|
int google_chromeec_get_usb_pd_power_info(enum usb_chg_type *type,
|
||||||
u32 *max_watts);
|
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. */
|
/* internal structure to send a command to the EC and wait for response. */
|
||||||
struct chromeec_command {
|
struct chromeec_command {
|
||||||
uint16_t cmd_code; /* command code in, status out */
|
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
|
#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 */
|
/* Hibernate/Deep Sleep Commands */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue