summaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2016-06-30 03:48:50 +0200
committerJonathan Cameron <jic23@kernel.org>2016-07-03 12:27:14 +0200
commit17118843a563c681aaafb29621befba02f28c592 (patch)
treeb54dbe176ad9432f92122f0a55b60be390238f0d /drivers/iio
parentiio: pressure: bmp280: split driver in logical parts (diff)
downloadlinux-17118843a563c681aaafb29621befba02f28c592.tar.xz
linux-17118843a563c681aaafb29621befba02f28c592.zip
iio: pressure: bmp280: split off an I2C Kconfig entry
This creates a separate BMP280_I2C Kconfig entry that gets selected by BMP280 for I2C transport. As we currently only support I2C transport there is not much practical change other than getting a separate object file (or module) for the I2C driver part. The old Kconfig symbol BMP280 will still select the stuff we need so that oldconfig and old defconfigs works fine. Tested-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/pressure/Kconfig17
-rw-r--r--drivers/iio/pressure/Makefile3
-rw-r--r--drivers/iio/pressure/bmp280-core.c7
-rw-r--r--drivers/iio/pressure/bmp280-regmap.c3
4 files changed, 24 insertions, 6 deletions
diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig
index 8d654f671b6b..3d0d311acb1d 100644
--- a/drivers/iio/pressure/Kconfig
+++ b/drivers/iio/pressure/Kconfig
@@ -6,17 +6,24 @@
menu "Pressure sensors"
config BMP280
- tristate "Bosch Sensortec BMP180 and BMP280 pressure sensor driver"
+ tristate "Bosch Sensortec BMP180/BMP280 pressure sensor I2C driver"
depends on I2C
depends on !(BMP085_I2C=y || BMP085_I2C=m)
- select REGMAP_I2C
+ select REGMAP
+ select BMP280_I2C if (I2C)
help
Say yes here to build support for Bosch Sensortec BMP180 and BMP280
pressure and temperature sensors. Also supports the BE280 with
- an additional humidty sensor channel.
+ an additional humidity sensor channel.
- To compile this driver as a module, choose M here: the module
- will be called bmp280.
+ To compile this driver as a module, choose M here: the modules
+ will be called bmp280-i2c and bmp280.
+
+config BMP280_I2C
+ tristate
+ depends on BMP280
+ depends on I2C
+ select REGMAP_I2C
config HID_SENSOR_PRESS
depends on HID_SENSOR_HUB
diff --git a/drivers/iio/pressure/Makefile b/drivers/iio/pressure/Makefile
index 2d98a7ff77a8..736f4305fe46 100644
--- a/drivers/iio/pressure/Makefile
+++ b/drivers/iio/pressure/Makefile
@@ -4,7 +4,8 @@
# When adding new entries keep the list in alphabetical order
obj-$(CONFIG_BMP280) += bmp280.o
-bmp280-objs := bmp280-core.o bmp280-regmap.o bmp280-i2c.o
+bmp280-objs := bmp280-core.o bmp280-regmap.o
+obj-$(CONFIG_BMP280_I2C) += bmp280-i2c.o
obj-$(CONFIG_HID_SENSOR_PRESS) += hid-sensor-press.o
obj-$(CONFIG_HP03) += hp03.o
obj-$(CONFIG_MPL115) += mpl115.o
diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
index 83b96fe71f3b..f1b5f8c0ac8c 100644
--- a/drivers/iio/pressure/bmp280-core.c
+++ b/drivers/iio/pressure/bmp280-core.c
@@ -16,6 +16,7 @@
#define pr_fmt(fmt) "bmp280: " fmt
#include <linux/device.h>
+#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/delay.h>
#include <linux/iio/iio.h>
@@ -955,6 +956,7 @@ out_disable_vddd:
regulator_disable(data->vddd);
return ret;
}
+EXPORT_SYMBOL(bmp280_common_probe);
int bmp280_common_remove(struct device *dev)
{
@@ -966,3 +968,8 @@ int bmp280_common_remove(struct device *dev)
regulator_disable(data->vddd);
return 0;
}
+EXPORT_SYMBOL(bmp280_common_remove);
+
+MODULE_AUTHOR("Vlad Dogaru <vlad.dogaru@intel.com>");
+MODULE_DESCRIPTION("Driver for Bosch Sensortec BMP180/BMP280 pressure and temperature sensor");
+MODULE_LICENSE("GPL v2");
diff --git a/drivers/iio/pressure/bmp280-regmap.c b/drivers/iio/pressure/bmp280-regmap.c
index 3341189d0975..6807113ec09f 100644
--- a/drivers/iio/pressure/bmp280-regmap.c
+++ b/drivers/iio/pressure/bmp280-regmap.c
@@ -1,4 +1,5 @@
#include <linux/device.h>
+#include <linux/module.h>
#include <linux/regmap.h>
#include "bmp280.h"
@@ -37,6 +38,7 @@ const struct regmap_config bmp180_regmap_config = {
.writeable_reg = bmp180_is_writeable_reg,
.volatile_reg = bmp180_is_volatile_reg,
};
+EXPORT_SYMBOL(bmp180_regmap_config);
static bool bmp280_is_writeable_reg(struct device *dev, unsigned int reg)
{
@@ -79,3 +81,4 @@ const struct regmap_config bmp280_regmap_config = {
.writeable_reg = bmp280_is_writeable_reg,
.volatile_reg = bmp280_is_volatile_reg,
};
+EXPORT_SYMBOL(bmp280_regmap_config);