forked from Minki/linux
platform/chrome: cros_ec: Add command for regulator control.
Add host commands for voltage regulator control through ChromeOS EC. Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org> Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Link: https://lore.kernel.org/r/20200612040526.192878-3-pihsun@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
54bd53b9c1
commit
dff08caf35
@ -161,6 +161,11 @@
|
||||
TRACE_SYMBOL(EC_CMD_ADC_READ), \
|
||||
TRACE_SYMBOL(EC_CMD_ROLLBACK_INFO), \
|
||||
TRACE_SYMBOL(EC_CMD_AP_RESET), \
|
||||
TRACE_SYMBOL(EC_CMD_REGULATOR_GET_INFO), \
|
||||
TRACE_SYMBOL(EC_CMD_REGULATOR_ENABLE), \
|
||||
TRACE_SYMBOL(EC_CMD_REGULATOR_IS_ENABLED), \
|
||||
TRACE_SYMBOL(EC_CMD_REGULATOR_SET_VOLTAGE), \
|
||||
TRACE_SYMBOL(EC_CMD_REGULATOR_GET_VOLTAGE), \
|
||||
TRACE_SYMBOL(EC_CMD_CR51_BASE), \
|
||||
TRACE_SYMBOL(EC_CMD_CR51_LAST), \
|
||||
TRACE_SYMBOL(EC_CMD_FP_PASSTHRU), \
|
||||
|
@ -5430,6 +5430,88 @@ struct ec_response_rollback_info {
|
||||
/* Issue AP reset */
|
||||
#define EC_CMD_AP_RESET 0x0125
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Voltage regulator controls */
|
||||
|
||||
/*
|
||||
* Get basic info of voltage regulator for given index.
|
||||
*
|
||||
* Returns the regulator name and supported voltage list in mV.
|
||||
*/
|
||||
#define EC_CMD_REGULATOR_GET_INFO 0x012B
|
||||
|
||||
/* Maximum length of regulator name */
|
||||
#define EC_REGULATOR_NAME_MAX_LEN 16
|
||||
|
||||
/* Maximum length of the supported voltage list. */
|
||||
#define EC_REGULATOR_VOLTAGE_MAX_COUNT 16
|
||||
|
||||
struct ec_params_regulator_get_info {
|
||||
uint32_t index;
|
||||
} __ec_align4;
|
||||
|
||||
struct ec_response_regulator_get_info {
|
||||
char name[EC_REGULATOR_NAME_MAX_LEN];
|
||||
uint16_t num_voltages;
|
||||
uint16_t voltages_mv[EC_REGULATOR_VOLTAGE_MAX_COUNT];
|
||||
} __ec_align1;
|
||||
|
||||
/*
|
||||
* Configure the regulator as enabled / disabled.
|
||||
*/
|
||||
#define EC_CMD_REGULATOR_ENABLE 0x012C
|
||||
|
||||
struct ec_params_regulator_enable {
|
||||
uint32_t index;
|
||||
uint8_t enable;
|
||||
} __ec_align4;
|
||||
|
||||
/*
|
||||
* Query if the regulator is enabled.
|
||||
*
|
||||
* Returns 1 if the regulator is enabled, 0 if not.
|
||||
*/
|
||||
#define EC_CMD_REGULATOR_IS_ENABLED 0x012D
|
||||
|
||||
struct ec_params_regulator_is_enabled {
|
||||
uint32_t index;
|
||||
} __ec_align4;
|
||||
|
||||
struct ec_response_regulator_is_enabled {
|
||||
uint8_t enabled;
|
||||
} __ec_align1;
|
||||
|
||||
/*
|
||||
* Set voltage for the voltage regulator within the range specified.
|
||||
*
|
||||
* The driver should select the voltage in range closest to min_mv.
|
||||
*
|
||||
* Also note that this might be called before the regulator is enabled, and the
|
||||
* setting should be in effect after the regulator is enabled.
|
||||
*/
|
||||
#define EC_CMD_REGULATOR_SET_VOLTAGE 0x012E
|
||||
|
||||
struct ec_params_regulator_set_voltage {
|
||||
uint32_t index;
|
||||
uint32_t min_mv;
|
||||
uint32_t max_mv;
|
||||
} __ec_align4;
|
||||
|
||||
/*
|
||||
* Get the currently configured voltage for the voltage regulator.
|
||||
*
|
||||
* Note that this might be called before the regulator is enabled.
|
||||
*/
|
||||
#define EC_CMD_REGULATOR_GET_VOLTAGE 0x012F
|
||||
|
||||
struct ec_params_regulator_get_voltage {
|
||||
uint32_t index;
|
||||
} __ec_align4;
|
||||
|
||||
struct ec_response_regulator_get_voltage {
|
||||
uint32_t voltage_mv;
|
||||
} __ec_align4;
|
||||
|
||||
/*****************************************************************************/
|
||||
/* The command range 0x200-0x2FF is reserved for Rotor. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user