On 03/07/16 11:06, Jonathan Cameron wrote: > On 30/06/16 02:48, Linus Walleij wrote: >> 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@xxxxxxxxx> >> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > Hmm. I'm not 100% sure why this wasn't just merged with the > previous patch which would have made life a lot easier. > > There is various spill between them (such as iio_common_probe was > exported in the previous patch and iio_common_remove only in this one). Scratch that - it was merely in a block that applied cleanly so I'm talking rubbish ;) only the module.h and appropriate macros were in the wrong patch. J > > The odd premature export aside it will now bisect successfully > between the two patches so all is fine (if a touch messier than ideal). > > Anyhow, applied in some fashion to the togreg branch of iio.git > > Thanks, > > Jonathan >> --- >> ChangeLog v3->v4: >> - Rebase, no other changes. >> ChangeLog v2->v3: >> - Fix up Kconfig to put the dependencies to not use the old driver >> directly under the main driver instead of under the I2C part >> - Export the common probe, remove and regmap symbols as the I2C driver part >> becomes its own module and need to find those symbols from the >> other parts. >> ChangeLog v1->v2: >> - None >> --- >> drivers/iio/pressure/Kconfig | 17 ++++++++++++----- >> drivers/iio/pressure/Makefile | 3 ++- >> drivers/iio/pressure/bmp280-core.c | 3 +++ >> drivers/iio/pressure/bmp280-regmap.c | 3 +++ >> 4 files changed, 20 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig >> index 9125a9382b3e..851c4f5aec41 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 af981b14b954..e11635d7139e 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) >> { >> @@ -964,6 +966,7 @@ int bmp280_common_remove(struct device *dev) >> regulator_disable(data->vddd); >> return 0; >> } >> +EXPORT_SYMBOL(bmp280_common_remove); >> >> MODULE_AUTHOR("Vlad Dogaru <vlad.dogaru@xxxxxxxxx>"); >> MODULE_DESCRIPTION("Driver for Bosch Sensortec BMP180/BMP280 pressure and temperature sensor"); >> 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); >> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html