summaryrefslogtreecommitdiff
path: root/drivers/regulator/act8865-regulator.c
diff options
context:
space:
mode:
authorBeniamino Galvani <b.galvani@gmail.com>2014-07-07 23:40:47 +0200
committerMark Brown <broonie@linaro.org>2014-08-05 18:02:54 +0100
commit34e0247ffcae3228684668a6244a7308b78571c7 (patch)
tree6fba4deafcd1be4605870531068a6fedbf3cd176 /drivers/regulator/act8865-regulator.c
parent0b8eebc02a26500ad5084e421793eb15b41bb08e (diff)
regulator: act8865: fix build when OF is not enabled
act8846_matches and act8865_matches are defined only when OF is enabled. Move references to them to the act8865_pdata_from_dt() function to avoid a build error when OF is disabled. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Beniamino Galvani <b.galvani@gmail.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/regulator/act8865-regulator.c')
-rw-r--r--drivers/regulator/act8865-regulator.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c
index a5ad69a0aca9..afd06f92dfdf 100644
--- a/drivers/regulator/act8865-regulator.c
+++ b/drivers/regulator/act8865-regulator.c
@@ -198,12 +198,12 @@ static struct of_regulator_match act8865_matches[] = {
static int act8865_pdata_from_dt(struct device *dev,
struct device_node **of_node,
struct act8865_platform_data *pdata,
- struct of_regulator_match *matches,
- int num_matches)
+ unsigned long type)
{
- int matched, i;
+ int matched, i, num_matches;
struct device_node *np;
struct act8865_regulator_data *regulator;
+ struct of_regulator_match *matches;
np = of_get_child_by_name(dev->of_node, "regulators");
if (!np) {
@@ -211,6 +211,20 @@ static int act8865_pdata_from_dt(struct device *dev,
return -EINVAL;
}
+ switch (type) {
+ case ACT8846:
+ matches = act8846_matches;
+ num_matches = ARRAY_SIZE(act8846_matches);
+ break;
+ case ACT8865:
+ matches = act8865_matches;
+ num_matches = ARRAY_SIZE(act8865_matches);
+ break;
+ default:
+ dev_err(dev, "invalid device id %lu\n", type);
+ return -EINVAL;
+ }
+
matched = of_regulator_match(dev, np, matches, num_matches);
of_node_put(np);
if (matched <= 0)
@@ -238,7 +252,8 @@ static int act8865_pdata_from_dt(struct device *dev,
#else
static inline int act8865_pdata_from_dt(struct device *dev,
struct device_node **of_node,
- struct act8865_platform_data *pdata)
+ struct act8865_platform_data *pdata,
+ unsigned long type)
{
return 0;
}
@@ -265,7 +280,6 @@ static int act8865_pmic_probe(struct i2c_client *client,
{
static const struct regulator_desc *regulators;
struct act8865_platform_data pdata_of, *pdata;
- struct of_regulator_match *matches;
struct device *dev = &client->dev;
struct device_node **of_node;
int i, ret, num_regulators;
@@ -288,12 +302,10 @@ static int act8865_pmic_probe(struct i2c_client *client,
switch (type) {
case ACT8846:
- matches = act8846_matches;
regulators = act8846_regulators;
num_regulators = ARRAY_SIZE(act8846_regulators);
break;
case ACT8865:
- matches = act8865_matches;
regulators = act8865_regulators;
num_regulators = ARRAY_SIZE(act8865_regulators);
break;
@@ -308,8 +320,7 @@ static int act8865_pmic_probe(struct i2c_client *client,
return -ENOMEM;
if (dev->of_node && !pdata) {
- ret = act8865_pdata_from_dt(dev, of_node, &pdata_of, matches,
- num_regulators);
+ ret = act8865_pdata_from_dt(dev, of_node, &pdata_of, type);
if (ret < 0)
return ret;