regulator: add get_status()
Based on previous LKML discussions: * Update docs for regulator sysfs class attributes to highlight the fact that all current attributes are intended to be control inputs, including notably "state" and "opmode" which previously implied otherwise. * Define a new regulator driver get_status() method, which is the first method reporting regulator outputs instead of inputs. It can report on/off and error status; or instead of simply "on", report the actual operating mode. For the moment, this is a sysfs-only interface, not accessible to regulator clients. Such clients can use the current notification interfaces to detect errors, if the regulator reports them. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
committed by
Liam Girdwood
parent
93e14baa44
commit
853116a105
@@ -21,6 +21,17 @@
|
||||
struct regulator_dev;
|
||||
struct regulator_init_data;
|
||||
|
||||
enum regulator_status {
|
||||
REGULATOR_STATUS_OFF,
|
||||
REGULATOR_STATUS_ON,
|
||||
REGULATOR_STATUS_ERROR,
|
||||
/* fast/normal/idle/standby are flavors of "on" */
|
||||
REGULATOR_STATUS_FAST,
|
||||
REGULATOR_STATUS_NORMAL,
|
||||
REGULATOR_STATUS_IDLE,
|
||||
REGULATOR_STATUS_STANDBY,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct regulator_ops - regulator operations.
|
||||
*
|
||||
@@ -72,6 +83,12 @@ struct regulator_ops {
|
||||
int (*set_mode) (struct regulator_dev *, unsigned int mode);
|
||||
unsigned int (*get_mode) (struct regulator_dev *);
|
||||
|
||||
/* report regulator status ... most other accessors report
|
||||
* control inputs, this reports results of combining inputs
|
||||
* from Linux (and other sources) with the actual load.
|
||||
*/
|
||||
int (*get_status)(struct regulator_dev *);
|
||||
|
||||
/* get most efficient regulator operating mode for load */
|
||||
unsigned int (*get_optimum_mode) (struct regulator_dev *, int input_uV,
|
||||
int output_uV, int load_uA);
|
||||
|
Reference in New Issue
Block a user