diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2020-02-20 11:01:06 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-02-25 09:10:40 +0100 |
commit | 4695b7bbba2b19011fee0c34236234c7cefde323 (patch) | |
tree | 9abcf4d234aee9a16453881b65732a0b010fd4bb /include/regulator.h | |
parent | ca001226d30824156ccf3b1f3be0bfd3990e2ebd (diff) | |
download | barebox-4695b7bbba2b19011fee0c34236234c7cefde323.tar.gz barebox-4695b7bbba2b19011fee0c34236234c7cefde323.tar.xz |
regulator: import Linux regulator_bulk API
Linux v5.6-rc1 contains 168 references to regultor_bulk_get, which
allows getting multiple regulators to set at once. Instead of open
coding them when porting code, port over the helpers to barebox.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include/regulator.h')
-rw-r--r-- | include/regulator.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/regulator.h b/include/regulator.h index d01535df52..dfa808d662 100644 --- a/include/regulator.h +++ b/include/regulator.h @@ -6,6 +6,23 @@ struct regulator; /** + * struct regulator_bulk_data - Data used for bulk regulator operations. + * + * @supply: The name of the supply. Initialised by the user before + * using the bulk regulator APIs. + * @consumer: The regulator consumer for the supply. This will be managed + * by the bulk API. + * + * The regulator APIs provide a series of regulator_bulk_() API calls as + * a convenience to consumers which require multiple supplies. This + * structure is used to manage data for these calls. + */ +struct regulator_bulk_data { + const char *supply; + struct regulator *consumer; +}; + +/** * struct regulator_desc - Static regulator descriptor * * Each regulator registered with the core is described with a @@ -136,6 +153,14 @@ int regulator_list_voltage_linear_range(struct regulator_dev *rdev, int regulator_get_voltage_sel_regmap(struct regulator_dev *rdev); int regulator_map_voltage_iterate(struct regulator_dev *rdev, int min_uV, int max_uV); +int regulator_bulk_get(struct device_d *dev, int num_consumers, + struct regulator_bulk_data *consumers); +int regulator_bulk_enable(int num_consumers, + struct regulator_bulk_data *consumers); +int regulator_bulk_disable(int num_consumers, + struct regulator_bulk_data *consumers); +void regulator_bulk_free(int num_consumers, + struct regulator_bulk_data *consumers); /* * Helper functions intended to be used by regulator drivers prior registering @@ -166,6 +191,30 @@ static inline int regulator_set_voltage(struct regulator *regulator, return 0; } +static inline int regulator_bulk_get(struct device_d *dev, int num_consumers, + struct regulator_bulk_data *consumers) +{ + return 0; +} + +static inline int regulator_bulk_enable(int num_consumers, + struct regulator_bulk_data *consumers) +{ + return 0; +} + +static inline int regulator_bulk_disable(int num_consumers, + struct regulator_bulk_data *consumers) +{ + return 0; +} + +static inline void regulator_bulk_free(int num_consumers, + struct regulator_bulk_data *consumers) +{ + return 0; +} + #endif #endif /* __REGULATOR_H */ |