diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-01-16 18:16:46 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-18 09:43:10 +0100 |
commit | cca859864b6f1af7ae4e9d699b249b59e2efa6b8 (patch) | |
tree | ac43d16260edb854e08321115c7fbc1f661d8931 /include/regulator.h | |
parent | eb41e26aaad955ae72d3ac708725dcab165eb0ca (diff) | |
download | barebox-cca859864b6f1af7ae4e9d699b249b59e2efa6b8.tar.gz barebox-cca859864b6f1af7ae4e9d699b249b59e2efa6b8.tar.xz |
regulator: Add support for setting regulator's voltage
Add code needed to implement regulator_set_voltage(). Currently only
bare minmum needed for ANATOP driver (added in follow up commit) is
supported.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/regulator.h')
-rw-r--r-- | include/regulator.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/regulator.h b/include/regulator.h index 1824e6ea14..cd1d3ccf55 100644 --- a/include/regulator.h +++ b/include/regulator.h @@ -5,8 +5,17 @@ struct regulator; struct regulator_desc { + unsigned n_voltages; const struct regulator_ops *ops; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int apply_reg; + unsigned int apply_bit; unsigned int enable_reg; unsigned int enable_mask; unsigned int enable_val; @@ -25,6 +34,9 @@ struct regulator_ops { int (*enable) (struct regulator_dev *); int (*disable) (struct regulator_dev *); int (*is_enabled) (struct regulator_dev *); + + int (*list_voltage) (struct regulator_dev *, unsigned int); + int (*set_voltage_sel) (struct regulator_dev *, unsigned int); }; #ifdef CONFIG_OFDEVICE @@ -49,6 +61,12 @@ int regulator_disable(struct regulator *); int regulator_is_enabled_regmap(struct regulator_dev *); int regulator_enable_regmap(struct regulator_dev *); int regulator_disable_regmap(struct regulator_dev *); +int regulator_set_voltage_sel_regmap(struct regulator_dev *, unsigned); +int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV); +int regulator_map_voltage_linear(struct regulator_dev *rdev, + int min_uV, int max_uV); +int regulator_list_voltage_linear(struct regulator_dev *rdev, + unsigned int selector); #else static inline struct regulator *regulator_get(struct device_d *dev, const char *id) @@ -66,6 +84,12 @@ static inline int regulator_disable(struct regulator *r) return 0; } +static inline int regulator_set_voltage(struct regulator *regulator, + int min_uV, int max_uV) +{ + return 0; +} + #endif #endif /* __REGULATOR_H */ |