mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 05:45:20 +00:00
platform/chrome: Update binary interface for EC-based charge control
The charge-control command v2/v3 is more featureful than v1, it additionally supports charge thresholds. The definitions were imported from ChromeOS EC commit 32870d602317 ("squirtle: modify motionsense rotation matrix") Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20240630-cros_ec-charge-control-v5-2-8f649d018c52@weissschuh.net Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
This commit is contained in:
parent
2681bbaa39
commit
c05cb5bdf4
@ -3843,16 +3843,61 @@ struct ec_params_i2c_write {
|
||||
* discharge the battery.
|
||||
*/
|
||||
#define EC_CMD_CHARGE_CONTROL 0x0096
|
||||
#define EC_VER_CHARGE_CONTROL 1
|
||||
#define EC_VER_CHARGE_CONTROL 3
|
||||
|
||||
enum ec_charge_control_mode {
|
||||
CHARGE_CONTROL_NORMAL = 0,
|
||||
CHARGE_CONTROL_IDLE,
|
||||
CHARGE_CONTROL_DISCHARGE,
|
||||
/* Add no more entry below. */
|
||||
CHARGE_CONTROL_COUNT,
|
||||
};
|
||||
|
||||
#define EC_CHARGE_MODE_TEXT \
|
||||
{ \
|
||||
[CHARGE_CONTROL_NORMAL] = "NORMAL", \
|
||||
[CHARGE_CONTROL_IDLE] = "IDLE", \
|
||||
[CHARGE_CONTROL_DISCHARGE] = "DISCHARGE", \
|
||||
}
|
||||
|
||||
enum ec_charge_control_cmd {
|
||||
EC_CHARGE_CONTROL_CMD_SET = 0,
|
||||
EC_CHARGE_CONTROL_CMD_GET,
|
||||
};
|
||||
|
||||
enum ec_charge_control_flag {
|
||||
EC_CHARGE_CONTROL_FLAG_NO_IDLE = BIT(0),
|
||||
};
|
||||
|
||||
struct ec_params_charge_control {
|
||||
uint32_t mode; /* enum charge_control_mode */
|
||||
uint32_t mode; /* enum charge_control_mode */
|
||||
|
||||
/* Below are the fields added in V2. */
|
||||
uint8_t cmd; /* enum ec_charge_control_cmd. */
|
||||
uint8_t flags; /* enum ec_charge_control_flag (v3+) */
|
||||
/*
|
||||
* Lower and upper thresholds for battery sustainer. This struct isn't
|
||||
* named to avoid tainting foreign projects' name spaces.
|
||||
*
|
||||
* If charge mode is explicitly set (e.g. DISCHARGE), battery sustainer
|
||||
* will be disabled. To disable battery sustainer, set mode=NORMAL,
|
||||
* lower=-1, upper=-1.
|
||||
*/
|
||||
struct {
|
||||
int8_t lower; /* Display SoC in percentage. */
|
||||
int8_t upper; /* Display SoC in percentage. */
|
||||
} sustain_soc;
|
||||
} __ec_align4;
|
||||
|
||||
/* Added in v2 */
|
||||
struct ec_response_charge_control {
|
||||
uint32_t mode; /* enum charge_control_mode */
|
||||
struct { /* Battery sustainer thresholds */
|
||||
int8_t lower;
|
||||
int8_t upper;
|
||||
} sustain_soc;
|
||||
uint8_t flags; /* enum ec_charge_control_flag (v3+) */
|
||||
uint8_t reserved;
|
||||
} __ec_align4;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
Loading…
x
Reference in New Issue
Block a user