Skip to content

Commit

Permalink
platform/chrome: cros_ec: Add command for regulator control.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
peter50216 authored and broonie committed Jun 15, 2020
1 parent 54bd53b commit dff08ca
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/platform/chrome/cros_ec_trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -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), \
Expand Down
82 changes: 82 additions & 0 deletions include/linux/platform_data/cros_ec_commands.h
Original file line number Diff line number Diff line change
Expand Up @@ -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. */

Expand Down

0 comments on commit dff08ca

Please sign in to comment.