diff options
Diffstat (limited to 'include/regulator.h')
-rw-r--r-- | include/regulator.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/regulator.h b/include/regulator.h new file mode 100644 index 0000000000..26a5e56046 --- /dev/null +++ b/include/regulator.h @@ -0,0 +1,47 @@ +#ifndef __REGULATOR_H +#define __REGULATOR_H + +/* struct regulator is an opaque object for consumers */ +struct regulator; + +struct regulator_dev { + struct regulator_ops *ops; +}; + +struct regulator_ops { + /* enable/disable regulator */ + int (*enable) (struct regulator_dev *); + int (*disable) (struct regulator_dev *); + int (*is_enabled) (struct regulator_dev *); +}; + +int of_regulator_register(struct regulator_dev *rd, struct device_node *node); + +void regulators_print(void); + +#ifdef CONFIG_REGULATOR + +struct regulator *regulator_get(struct device_d *, const char *); +int regulator_enable(struct regulator *); +int regulator_disable(struct regulator *); + +#else + +static inline struct regulator *regulator_get(struct device_d *dev, const char *id) +{ + return NULL; +} + +static inline int regulator_enable(struct regulator *r) +{ + return 0; +} + +static inline int regulator_disable(struct regulator *r) +{ + return 0; +} + +#endif + +#endif /* __REGULATOR_H */ |