mfd: cros_ec: Add API for EC-EC communication
Allow EC to talk to other ECs that are not presented to the host. Neeed when EC are present in detachable keyboard. Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Acked-by: Benson Leung <bleung@chromium.org> Reviewed-by: Fabien Lahoudere <fabien.lahoudere@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
Родитель
a47bc8a4e8
Коммит
d90a4121bf
|
@ -5043,6 +5043,101 @@ struct ec_response_pd_chip_info_v1 {
|
|||
};
|
||||
} __ec_align2;
|
||||
|
||||
/*****************************************************************************/
|
||||
/* EC-EC communication commands: range 0x0600-0x06FF */
|
||||
|
||||
#define EC_COMM_TEXT_MAX 8
|
||||
|
||||
/*
|
||||
* Get battery static information, i.e. information that never changes, or
|
||||
* very infrequently.
|
||||
*/
|
||||
#define EC_CMD_BATTERY_GET_STATIC 0x0600
|
||||
|
||||
/**
|
||||
* struct ec_params_battery_static_info - Battery static info parameters
|
||||
* @index: Battery index.
|
||||
*/
|
||||
struct ec_params_battery_static_info {
|
||||
uint8_t index;
|
||||
} __ec_align_size1;
|
||||
|
||||
/**
|
||||
* struct ec_response_battery_static_info - Battery static info response
|
||||
* @design_capacity: Battery Design Capacity (mAh)
|
||||
* @design_voltage: Battery Design Voltage (mV)
|
||||
* @manufacturer: Battery Manufacturer String
|
||||
* @model: Battery Model Number String
|
||||
* @serial: Battery Serial Number String
|
||||
* @type: Battery Type String
|
||||
* @cycle_count: Battery Cycle Count
|
||||
*/
|
||||
struct ec_response_battery_static_info {
|
||||
uint16_t design_capacity;
|
||||
uint16_t design_voltage;
|
||||
char manufacturer[EC_COMM_TEXT_MAX];
|
||||
char model[EC_COMM_TEXT_MAX];
|
||||
char serial[EC_COMM_TEXT_MAX];
|
||||
char type[EC_COMM_TEXT_MAX];
|
||||
/* TODO(crbug.com/795991): Consider moving to dynamic structure. */
|
||||
uint32_t cycle_count;
|
||||
} __ec_align4;
|
||||
|
||||
/*
|
||||
* Get battery dynamic information, i.e. information that is likely to change
|
||||
* every time it is read.
|
||||
*/
|
||||
#define EC_CMD_BATTERY_GET_DYNAMIC 0x0601
|
||||
|
||||
/**
|
||||
* struct ec_params_battery_dynamic_info - Battery dynamic info parameters
|
||||
* @index: Battery index.
|
||||
*/
|
||||
struct ec_params_battery_dynamic_info {
|
||||
uint8_t index;
|
||||
} __ec_align_size1;
|
||||
|
||||
/**
|
||||
* struct ec_response_battery_dynamic_info - Battery dynamic info response
|
||||
* @actual_voltage: Battery voltage (mV)
|
||||
* @actual_current: Battery current (mA); negative=discharging
|
||||
* @remaining_capacity: Remaining capacity (mAh)
|
||||
* @full_capacity: Capacity (mAh, might change occasionally)
|
||||
* @flags: Flags, see EC_BATT_FLAG_*
|
||||
* @desired_voltage: Charging voltage desired by battery (mV)
|
||||
* @desired_current: Charging current desired by battery (mA)
|
||||
*/
|
||||
struct ec_response_battery_dynamic_info {
|
||||
int16_t actual_voltage;
|
||||
int16_t actual_current;
|
||||
int16_t remaining_capacity;
|
||||
int16_t full_capacity;
|
||||
int16_t flags;
|
||||
int16_t desired_voltage;
|
||||
int16_t desired_current;
|
||||
} __ec_align2;
|
||||
|
||||
/*
|
||||
* Control charger chip. Used to control charger chip on the slave.
|
||||
*/
|
||||
#define EC_CMD_CHARGER_CONTROL 0x0602
|
||||
|
||||
/**
|
||||
* struct ec_params_charger_control - Charger control parameters
|
||||
* @max_current: Charger current (mA). Positive to allow base to draw up to
|
||||
* max_current and (possibly) charge battery, negative to request current
|
||||
* from base (OTG).
|
||||
* @otg_voltage: Voltage (mV) to use in OTG mode, ignored if max_current is
|
||||
* >= 0.
|
||||
* @allow_charging: Allow base battery charging (only makes sense if
|
||||
* max_current > 0).
|
||||
*/
|
||||
struct ec_params_charger_control {
|
||||
int16_t max_current;
|
||||
uint16_t otg_voltage;
|
||||
uint8_t allow_charging;
|
||||
} __ec_align_size1;
|
||||
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
* Reserve a range of host commands for board-specific, experimental, or
|
||||
|
|
Загрузка…
Ссылка в новой задаче