summaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-09-14 11:44:10 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-09-14 11:47:09 +0200
commit4def29f141c99d3d77bb7f5813cbd630d571e970 (patch)
tree500e69583000625e54364cd94fcb9024c6e7ad2d /drivers/mfd
parent0757da680213ffaa79c6dd9c86c475465aa33605 (diff)
downloadbarebox-4def29f141c99d3d77bb7f5813cbd630d571e970.tar.gz
barebox-4def29f141c99d3d77bb7f5813cbd630d571e970.tar.xz
mfd mc34708: Separate I2C and SPI probe
Upcoming patches will put I2C/SPI on their own busses with spi_register_driver / i2c_register_driver which will only be available if the subsystem is enabled. We could provide static inlines, but it wouldn't make much sense to compile a spi/i2c driver if the corresponding subsystem is disabled. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/mc34708.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/drivers/mfd/mc34708.c b/drivers/mfd/mc34708.c
index 02c58a997d..c765e14b59 100644
--- a/drivers/mfd/mc34708.c
+++ b/drivers/mfd/mc34708.c
@@ -266,31 +266,40 @@ static int mc_probe(struct device_d *dev, enum mc34708_mode mode)
return 0;
}
+#ifdef CONFIG_I2C
static int mc_i2c_probe(struct device_d *dev)
{
return mc_probe(dev, MC34708_MODE_I2C);
}
-static int mc_spi_probe(struct device_d *dev)
-{
- return mc_probe(dev, MC34708_MODE_SPI);
-}
-
static struct driver_d mc_i2c_driver = {
.name = "mc34708-i2c",
.probe = mc_i2c_probe,
};
+static int mc_i2c_init(void)
+{
+ return register_driver(&mc_i2c_driver);
+}
+
+device_initcall(mc_i2c_init);
+#endif
+
+#ifdef CONFIG_SPI
+static int mc_spi_probe(struct device_d *dev)
+{
+ return mc_probe(dev, MC34708_MODE_SPI);
+}
+
static struct driver_d mc_spi_driver = {
.name = "mc34708-spi",
.probe = mc_spi_probe,
};
-static int mc_init(void)
+static int mc_spi_init(void)
{
- register_driver(&mc_i2c_driver);
- register_driver(&mc_spi_driver);
- return 0;
+ return register_driver(&mc_spi_driver);
}
-device_initcall(mc_init);
+device_initcall(mc_spi_init);
+#endif