aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/regulator/driver.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/regulator/driver.h')
-rw-r--r--include/linux/regulator/driver.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index 0cf37bc85c41..2255468d456f 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -45,6 +45,10 @@ enum regulator_status {
45 * @set_voltage: Set the voltage for the regulator within the range specified. 45 * @set_voltage: Set the voltage for the regulator within the range specified.
46 * The driver should select the voltage closest to min_uV. 46 * The driver should select the voltage closest to min_uV.
47 * @get_voltage: Return the currently configured voltage for the regulator. 47 * @get_voltage: Return the currently configured voltage for the regulator.
48 * @list_voltage: Return one of the supported voltages, in microvolts; zero
49 * if the selector indicates a voltage that is unusable on this system;
50 * or negative errno. Selectors range from zero to one less than
51 * regulator_desc.n_voltages. Voltages may be reported in any order.
48 * 52 *
49 * @set_current_limit: Configure a limit for a current-limited regulator. 53 * @set_current_limit: Configure a limit for a current-limited regulator.
50 * @get_current_limit: Get the limit for a current-limited regulator. 54 * @get_current_limit: Get the limit for a current-limited regulator.
@@ -66,6 +70,9 @@ enum regulator_status {
66 */ 70 */
67struct regulator_ops { 71struct regulator_ops {
68 72
73 /* enumerate supported voltages */
74 int (*list_voltage) (struct regulator_dev *, unsigned selector);
75
69 /* get/set regulator voltage */ 76 /* get/set regulator voltage */
70 int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV); 77 int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV);
71 int (*get_voltage) (struct regulator_dev *); 78 int (*get_voltage) (struct regulator_dev *);
@@ -124,6 +131,7 @@ enum regulator_type {
124 * 131 *
125 * @name: Identifying name for the regulator. 132 * @name: Identifying name for the regulator.
126 * @id: Numerical identifier for the regulator. 133 * @id: Numerical identifier for the regulator.
134 * @n_voltages: Number of selectors available for ops.list_voltage().
127 * @ops: Regulator operations table. 135 * @ops: Regulator operations table.
128 * @irq: Interrupt number for the regulator. 136 * @irq: Interrupt number for the regulator.
129 * @type: Indicates if the regulator is a voltage or current regulator. 137 * @type: Indicates if the regulator is a voltage or current regulator.
@@ -132,6 +140,7 @@ enum regulator_type {
132struct regulator_desc { 140struct regulator_desc {
133 const char *name; 141 const char *name;
134 int id; 142 int id;
143 unsigned n_voltages;
135 struct regulator_ops *ops; 144 struct regulator_ops *ops;
136 int irq; 145 int irq;
137 enum regulator_type type; 146 enum regulator_type type;