Commit 21503a86 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge tag 'topic/fixed' of...

Merge tag 'topic/fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into renesas-board-common

Several following board changes depend on this branch.
parents 485802a6 15719ccc
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/string.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/regulator/fixed.h> #include <linux/regulator/fixed.h>
...@@ -13,17 +14,20 @@ static void regulator_fixed_release(struct device *dev) ...@@ -13,17 +14,20 @@ static void regulator_fixed_release(struct device *dev)
{ {
struct fixed_regulator_data *data = container_of(dev, struct fixed_regulator_data *data = container_of(dev,
struct fixed_regulator_data, pdev.dev); struct fixed_regulator_data, pdev.dev);
kfree(data->cfg.supply_name);
kfree(data); kfree(data);
} }
/** /**
* regulator_register_fixed - register a no-op fixed regulator * regulator_register_fixed_name - register a no-op fixed regulator
* @id: platform device id * @id: platform device id
* @name: name to be used for the regulator
* @supplies: consumers for this regulator * @supplies: consumers for this regulator
* @num_supplies: number of consumers * @num_supplies: number of consumers
* @uv: voltage in microvolts
*/ */
struct platform_device *regulator_register_fixed(int id, struct platform_device *regulator_register_always_on(int id, const char *name,
struct regulator_consumer_supply *supplies, int num_supplies) struct regulator_consumer_supply *supplies, int num_supplies, int uv)
{ {
struct fixed_regulator_data *data; struct fixed_regulator_data *data;
...@@ -31,8 +35,13 @@ struct platform_device *regulator_register_fixed(int id, ...@@ -31,8 +35,13 @@ struct platform_device *regulator_register_fixed(int id,
if (!data) if (!data)
return NULL; return NULL;
data->cfg.supply_name = "fixed-dummy"; data->cfg.supply_name = kstrdup(name, GFP_KERNEL);
data->cfg.microvolts = 0; if (!data->cfg.supply_name) {
kfree(data);
return NULL;
}
data->cfg.microvolts = uv;
data->cfg.gpio = -EINVAL; data->cfg.gpio = -EINVAL;
data->cfg.enabled_at_boot = 1; data->cfg.enabled_at_boot = 1;
data->cfg.init_data = &data->init_data; data->cfg.init_data = &data->init_data;
......
...@@ -58,14 +58,17 @@ struct fixed_voltage_config { ...@@ -58,14 +58,17 @@ struct fixed_voltage_config {
struct regulator_consumer_supply; struct regulator_consumer_supply;
#if IS_ENABLED(CONFIG_REGULATOR) #if IS_ENABLED(CONFIG_REGULATOR)
struct platform_device *regulator_register_fixed(int id, struct platform_device *regulator_register_always_on(int id, const char *name,
struct regulator_consumer_supply *supplies, int num_supplies); struct regulator_consumer_supply *supplies, int num_supplies, int uv);
#else #else
static inline struct platform_device *regulator_register_fixed(int id, static inline struct platform_device *regulator_register_always_on(int id, const char *name,
struct regulator_consumer_supply *supplies, int num_supplies) struct regulator_consumer_supply *supplies, int num_supplies, int uv)
{ {
return NULL; return NULL;
} }
#endif #endif
#define regulator_register_fixed(id, s, ns) regulator_register_always_on(id, \
"fixed-dummy", s, ns, 0)
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment