diff options
author | Beniamino Galvani <b.galvani@gmail.com> | 2014-07-07 23:40:47 +0200 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-08-05 18:02:54 +0100 |
commit | 34e0247ffcae3228684668a6244a7308b78571c7 (patch) | |
tree | 6fba4deafcd1be4605870531068a6fedbf3cd176 /drivers/regulator | |
parent | 0b8eebc02a26500ad5084e421793eb15b41bb08e (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')
-rw-r--r-- | drivers/regulator/act8865-regulator.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c index a5ad69a0aca..afd06f92dfd 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; |