summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-12-15 14:10:25 +0000
committerLiam Girdwood <lrg@slimlogic.co.uk>2011-01-12 14:33:03 +0000
commit4d7071f1fdc9c27e15e8aaede27bef9f4feccafe (patch)
tree7f51701863f8d841276bfed8e82e16eb6a19a2a6
parent5e428d5cecc3f109b52e993a1bd91f82137867b3 (diff)
downloadlinux-3.10-4d7071f1fdc9c27e15e8aaede27bef9f4feccafe.tar.gz
linux-3.10-4d7071f1fdc9c27e15e8aaede27bef9f4feccafe.tar.bz2
linux-3.10-4d7071f1fdc9c27e15e8aaede27bef9f4feccafe.zip
regulator: Allow modular build of mc13xxx-core
Since the MFD core for this device and the regulator drivers for these devices can be built modular we should also support modular build of the shared code for the regulator drivers, otherwise we try to link built in code against modular code with unfortunate results. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r--drivers/regulator/Kconfig2
-rw-r--r--drivers/regulator/mc13xxx-regulator-core.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 485a9bc88ca..e1d943619ab 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -187,7 +187,7 @@ config REGULATOR_PCAP
PCAP2 PMIC.
config REGULATOR_MC13XXX_CORE
- bool
+ tristate
config REGULATOR_MC13783
tristate "Support regulators on Freescale MC13783 PMIC"
diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c
index 448e8f4cf41..f53d31b950d 100644
--- a/drivers/regulator/mc13xxx-regulator-core.c
+++ b/drivers/regulator/mc13xxx-regulator-core.c
@@ -89,6 +89,7 @@ int mc13xxx_regulator_list_voltage(struct regulator_dev *rdev,
return mc13xxx_regulators[id].voltages[selector];
}
+EXPORT_SYMBOL_GPL(mc13xxx_regulator_list_voltage);
int mc13xxx_get_best_voltage_index(struct regulator_dev *rdev,
int min_uV, int max_uV)
@@ -123,6 +124,7 @@ int mc13xxx_get_best_voltage_index(struct regulator_dev *rdev,
}
return bestindex;
}
+EXPORT_SYMBOL_GPL(mc13xxx_get_best_voltage_index);
static int mc13xxx_regulator_set_voltage(struct regulator_dev *rdev, int min_uV,
int max_uV, unsigned *selector)
@@ -185,6 +187,7 @@ struct regulator_ops mc13xxx_regulator_ops = {
.set_voltage = mc13xxx_regulator_set_voltage,
.get_voltage = mc13xxx_regulator_get_voltage,
};
+EXPORT_SYMBOL_GPL(mc13xxx_regulator_ops);
int mc13xxx_fixed_regulator_set_voltage(struct regulator_dev *rdev, int min_uV,
int max_uV, unsigned *selector)
@@ -202,6 +205,7 @@ int mc13xxx_fixed_regulator_set_voltage(struct regulator_dev *rdev, int min_uV,
else
return -EINVAL;
}
+EXPORT_SYMBOL_GPL(mc13xxx_fixed_regulator_set_voltage);
int mc13xxx_fixed_regulator_get_voltage(struct regulator_dev *rdev)
{
@@ -213,6 +217,7 @@ int mc13xxx_fixed_regulator_get_voltage(struct regulator_dev *rdev)
return mc13xxx_regulators[id].voltages[0];
}
+EXPORT_SYMBOL_GPL(mc13xxx_fixed_regulator_get_voltage);
struct regulator_ops mc13xxx_fixed_regulator_ops = {
.enable = mc13xxx_regulator_enable,
@@ -222,11 +227,13 @@ struct regulator_ops mc13xxx_fixed_regulator_ops = {
.set_voltage = mc13xxx_fixed_regulator_set_voltage,
.get_voltage = mc13xxx_fixed_regulator_get_voltage,
};
+EXPORT_SYMBOL_GPL(mc13xxx_fixed_regulator_ops);
int mc13xxx_sw_regulator_is_enabled(struct regulator_dev *rdev)
{
return 1;
}
+EXPORT_SYMBOL_GPL(mc13xxx_sw_regulator_is_enabled);
MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Yong Shen <yong.shen@linaro.org>");