regulator: core: Add REGULATOR_EVENT_PRE_VOLTAGE_CHANGE (and ABORT)
In some cases we need to know when a regulator is about to be changed. Add a way for clients to be notified. Note that for set_voltage() we don't necessarily know what voltage we'll end up with, so we tell the client what the range will be so they can prepare. Signed-off-by: Heiko Stübner <heiko@sntech.de> Signed-off-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Mark Brown <broonie+linaro@kernel.org>
This commit is contained in:

committed by
Mark Brown

parent
7d1311b93e
commit
7179569aeb
@@ -93,7 +93,12 @@ struct regmap;
|
||||
* OVER_TEMP Regulator over temp.
|
||||
* FORCE_DISABLE Regulator forcibly shut down by software.
|
||||
* VOLTAGE_CHANGE Regulator voltage changed.
|
||||
* Data passed is old voltage cast to (void *).
|
||||
* DISABLE Regulator was disabled.
|
||||
* PRE_VOLTAGE_CHANGE Regulator is about to have voltage changed.
|
||||
* Data passed is "struct pre_voltage_change_data"
|
||||
* ABORT_VOLTAGE_CHANGE Regulator voltage change failed for some reason.
|
||||
* Data passed is old voltage cast to (void *).
|
||||
*
|
||||
* NOTE: These events can be OR'ed together when passed into handler.
|
||||
*/
|
||||
@@ -106,6 +111,21 @@ struct regmap;
|
||||
#define REGULATOR_EVENT_FORCE_DISABLE 0x20
|
||||
#define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
|
||||
#define REGULATOR_EVENT_DISABLE 0x80
|
||||
#define REGULATOR_EVENT_PRE_VOLTAGE_CHANGE 0x100
|
||||
#define REGULATOR_EVENT_ABORT_VOLTAGE_CHANGE 0x200
|
||||
|
||||
/**
|
||||
* struct pre_voltage_change_data - Data sent with PRE_VOLTAGE_CHANGE event
|
||||
*
|
||||
* @old_uV: Current voltage before change.
|
||||
* @min_uV: Min voltage we'll change to.
|
||||
* @max_uV: Max voltage we'll change to.
|
||||
*/
|
||||
struct pre_voltage_change_data {
|
||||
unsigned long old_uV;
|
||||
unsigned long min_uV;
|
||||
unsigned long max_uV;
|
||||
};
|
||||
|
||||
struct regulator;
|
||||
|
||||
|
Reference in New Issue
Block a user