Message ID | 20190503220233.64546-25-gwendal@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Update cros_ec_commands.h | expand |
Hi Gwendal, Really tiny commit message nit, otherwise look good. On Fri, May 03, 2019 at 03:02:27PM -0700, Gwendal Grignou wrote: > Allow EC to talk to other ECs that are not presented to the host. > Neeed when EC are present in detachable keyboard. s/Neeed/Needed Thanks, Benson > > Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org> > --- > include/linux/mfd/cros_ec_commands.h | 95 ++++++++++++++++++++++++++++ > 1 file changed, 95 insertions(+) > > diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h > index 59ad6bae3f9b..52fd9bfafc7f 100644 > --- a/include/linux/mfd/cros_ec_commands.h > +++ b/include/linux/mfd/cros_ec_commands.h > @@ -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 > -- > 2.21.0.1020.gf2820cf01a-goog >
diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h index 59ad6bae3f9b..52fd9bfafc7f 100644 --- a/include/linux/mfd/cros_ec_commands.h +++ b/include/linux/mfd/cros_ec_commands.h @@ -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