mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-06 17:35:20 +02:00
iio: pressure: bmp280: Use BME prefix for BME280 specifics
[ Upstream commitb23be4cd99
] Change the rest of the defines and function names that are used specifically by the BME280 humidity sensor to BME280 as it is done for the rest of the BMP{0,1,3,5}80 sensors. Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com> Link: https://lore.kernel.org/r/20240429190046.24252-3-vassilisamir@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Stable-dep-of:b9065b0250
("iio: pressure: bmp280: Fix regmap for BMP280 device") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
b71b2d704a
commit
5da669d9ee
|
@ -234,14 +234,14 @@ static int bme280_read_calib(struct bmp280_data *data)
|
||||||
* Humidity data is only available on BME280.
|
* Humidity data is only available on BME280.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ret = regmap_read(data->regmap, BMP280_REG_COMP_H1, &tmp);
|
ret = regmap_read(data->regmap, BME280_REG_COMP_H1, &tmp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H1 comp value\n");
|
dev_err(dev, "failed to read H1 comp value\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
calib->H1 = tmp;
|
calib->H1 = tmp;
|
||||||
|
|
||||||
ret = regmap_bulk_read(data->regmap, BMP280_REG_COMP_H2,
|
ret = regmap_bulk_read(data->regmap, BME280_REG_COMP_H2,
|
||||||
&data->le16, sizeof(data->le16));
|
&data->le16, sizeof(data->le16));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H2 comp value\n");
|
dev_err(dev, "failed to read H2 comp value\n");
|
||||||
|
@ -249,14 +249,14 @@ static int bme280_read_calib(struct bmp280_data *data)
|
||||||
}
|
}
|
||||||
calib->H2 = sign_extend32(le16_to_cpu(data->le16), 15);
|
calib->H2 = sign_extend32(le16_to_cpu(data->le16), 15);
|
||||||
|
|
||||||
ret = regmap_read(data->regmap, BMP280_REG_COMP_H3, &tmp);
|
ret = regmap_read(data->regmap, BME280_REG_COMP_H3, &tmp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H3 comp value\n");
|
dev_err(dev, "failed to read H3 comp value\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
calib->H3 = tmp;
|
calib->H3 = tmp;
|
||||||
|
|
||||||
ret = regmap_bulk_read(data->regmap, BMP280_REG_COMP_H4,
|
ret = regmap_bulk_read(data->regmap, BME280_REG_COMP_H4,
|
||||||
&data->be16, sizeof(data->be16));
|
&data->be16, sizeof(data->be16));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H4 comp value\n");
|
dev_err(dev, "failed to read H4 comp value\n");
|
||||||
|
@ -265,15 +265,15 @@ static int bme280_read_calib(struct bmp280_data *data)
|
||||||
calib->H4 = sign_extend32(((be16_to_cpu(data->be16) >> 4) & 0xff0) |
|
calib->H4 = sign_extend32(((be16_to_cpu(data->be16) >> 4) & 0xff0) |
|
||||||
(be16_to_cpu(data->be16) & 0xf), 11);
|
(be16_to_cpu(data->be16) & 0xf), 11);
|
||||||
|
|
||||||
ret = regmap_bulk_read(data->regmap, BMP280_REG_COMP_H5,
|
ret = regmap_bulk_read(data->regmap, BME280_REG_COMP_H5,
|
||||||
&data->le16, sizeof(data->le16));
|
&data->le16, sizeof(data->le16));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H5 comp value\n");
|
dev_err(dev, "failed to read H5 comp value\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
calib->H5 = sign_extend32(FIELD_GET(BMP280_COMP_H5_MASK, le16_to_cpu(data->le16)), 11);
|
calib->H5 = sign_extend32(FIELD_GET(BME280_COMP_H5_MASK, le16_to_cpu(data->le16)), 11);
|
||||||
|
|
||||||
ret = regmap_read(data->regmap, BMP280_REG_COMP_H6, &tmp);
|
ret = regmap_read(data->regmap, BME280_REG_COMP_H6, &tmp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(dev, "failed to read H6 comp value\n");
|
dev_err(dev, "failed to read H6 comp value\n");
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -289,7 +289,7 @@ static int bme280_read_calib(struct bmp280_data *data)
|
||||||
*
|
*
|
||||||
* Taken from BME280 datasheet, Section 4.2.3, "Compensation formula".
|
* Taken from BME280 datasheet, Section 4.2.3, "Compensation formula".
|
||||||
*/
|
*/
|
||||||
static u32 bmp280_compensate_humidity(struct bmp280_data *data,
|
static u32 bme280_compensate_humidity(struct bmp280_data *data,
|
||||||
s32 adc_humidity)
|
s32 adc_humidity)
|
||||||
{
|
{
|
||||||
struct bmp280_calib *calib = &data->calib.bmp280;
|
struct bmp280_calib *calib = &data->calib.bmp280;
|
||||||
|
@ -429,7 +429,7 @@ static int bmp280_read_press(struct bmp280_data *data,
|
||||||
return IIO_VAL_FRACTIONAL;
|
return IIO_VAL_FRACTIONAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2)
|
static int bme280_read_humid(struct bmp280_data *data, int *val, int *val2)
|
||||||
{
|
{
|
||||||
u32 comp_humidity;
|
u32 comp_humidity;
|
||||||
s32 adc_humidity;
|
s32 adc_humidity;
|
||||||
|
@ -440,7 +440,7 @@ static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = regmap_bulk_read(data->regmap, BMP280_REG_HUMIDITY_MSB,
|
ret = regmap_bulk_read(data->regmap, BME280_REG_HUMIDITY_MSB,
|
||||||
&data->be16, sizeof(data->be16));
|
&data->be16, sizeof(data->be16));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(data->dev, "failed to read humidity\n");
|
dev_err(data->dev, "failed to read humidity\n");
|
||||||
|
@ -453,7 +453,7 @@ static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2)
|
||||||
dev_err(data->dev, "reading humidity skipped\n");
|
dev_err(data->dev, "reading humidity skipped\n");
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
comp_humidity = bmp280_compensate_humidity(data, adc_humidity);
|
comp_humidity = bme280_compensate_humidity(data, adc_humidity);
|
||||||
|
|
||||||
*val = comp_humidity * 1000 / 1024;
|
*val = comp_humidity * 1000 / 1024;
|
||||||
|
|
||||||
|
@ -537,7 +537,7 @@ static int bmp280_read_raw(struct iio_dev *indio_dev,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bmp280_write_oversampling_ratio_humid(struct bmp280_data *data,
|
static int bme280_write_oversampling_ratio_humid(struct bmp280_data *data,
|
||||||
int val)
|
int val)
|
||||||
{
|
{
|
||||||
const int *avail = data->chip_info->oversampling_humid_avail;
|
const int *avail = data->chip_info->oversampling_humid_avail;
|
||||||
|
@ -681,7 +681,7 @@ static int bmp280_write_raw(struct iio_dev *indio_dev,
|
||||||
mutex_lock(&data->lock);
|
mutex_lock(&data->lock);
|
||||||
switch (chan->type) {
|
switch (chan->type) {
|
||||||
case IIO_HUMIDITYRELATIVE:
|
case IIO_HUMIDITYRELATIVE:
|
||||||
ret = bmp280_write_oversampling_ratio_humid(data, val);
|
ret = bme280_write_oversampling_ratio_humid(data, val);
|
||||||
break;
|
break;
|
||||||
case IIO_PRESSURE:
|
case IIO_PRESSURE:
|
||||||
ret = bmp280_write_oversampling_ratio_press(data, val);
|
ret = bmp280_write_oversampling_ratio_press(data, val);
|
||||||
|
@ -831,16 +831,15 @@ EXPORT_SYMBOL_NS(bmp280_chip_info, IIO_BMP280);
|
||||||
|
|
||||||
static int bme280_chip_config(struct bmp280_data *data)
|
static int bme280_chip_config(struct bmp280_data *data)
|
||||||
{
|
{
|
||||||
u8 osrs = FIELD_PREP(BMP280_OSRS_HUMIDITY_MASK, data->oversampling_humid + 1);
|
u8 osrs = FIELD_PREP(BME280_OSRS_HUMIDITY_MASK, data->oversampling_humid + 1);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Oversampling of humidity must be set before oversampling of
|
* Oversampling of humidity must be set before oversampling of
|
||||||
* temperature/pressure is set to become effective.
|
* temperature/pressure is set to become effective.
|
||||||
*/
|
*/
|
||||||
ret = regmap_update_bits(data->regmap, BMP280_REG_CTRL_HUMIDITY,
|
ret = regmap_update_bits(data->regmap, BME280_REG_CTRL_HUMIDITY,
|
||||||
BMP280_OSRS_HUMIDITY_MASK, osrs);
|
BME280_OSRS_HUMIDITY_MASK, osrs);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -868,12 +867,12 @@ const struct bmp280_chip_info bme280_chip_info = {
|
||||||
|
|
||||||
.oversampling_humid_avail = bmp280_oversampling_avail,
|
.oversampling_humid_avail = bmp280_oversampling_avail,
|
||||||
.num_oversampling_humid_avail = ARRAY_SIZE(bmp280_oversampling_avail),
|
.num_oversampling_humid_avail = ARRAY_SIZE(bmp280_oversampling_avail),
|
||||||
.oversampling_humid_default = BMP280_OSRS_HUMIDITY_16X - 1,
|
.oversampling_humid_default = BME280_OSRS_HUMIDITY_16X - 1,
|
||||||
|
|
||||||
.chip_config = bme280_chip_config,
|
.chip_config = bme280_chip_config,
|
||||||
.read_temp = bmp280_read_temp,
|
.read_temp = bmp280_read_temp,
|
||||||
.read_press = bmp280_read_press,
|
.read_press = bmp280_read_press,
|
||||||
.read_humid = bmp280_read_humid,
|
.read_humid = bme280_read_humid,
|
||||||
.read_calib = bme280_read_calib,
|
.read_calib = bme280_read_calib,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL_NS(bme280_chip_info, IIO_BMP280);
|
EXPORT_SYMBOL_NS(bme280_chip_info, IIO_BMP280);
|
||||||
|
|
|
@ -45,7 +45,7 @@ static bool bmp280_is_writeable_reg(struct device *dev, unsigned int reg)
|
||||||
{
|
{
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case BMP280_REG_CONFIG:
|
case BMP280_REG_CONFIG:
|
||||||
case BMP280_REG_CTRL_HUMIDITY:
|
case BME280_REG_CTRL_HUMIDITY:
|
||||||
case BMP280_REG_CTRL_MEAS:
|
case BMP280_REG_CTRL_MEAS:
|
||||||
case BMP280_REG_RESET:
|
case BMP280_REG_RESET:
|
||||||
return true;
|
return true;
|
||||||
|
@ -57,8 +57,8 @@ static bool bmp280_is_writeable_reg(struct device *dev, unsigned int reg)
|
||||||
static bool bmp280_is_volatile_reg(struct device *dev, unsigned int reg)
|
static bool bmp280_is_volatile_reg(struct device *dev, unsigned int reg)
|
||||||
{
|
{
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case BMP280_REG_HUMIDITY_LSB:
|
case BME280_REG_HUMIDITY_LSB:
|
||||||
case BMP280_REG_HUMIDITY_MSB:
|
case BME280_REG_HUMIDITY_MSB:
|
||||||
case BMP280_REG_TEMP_XLSB:
|
case BMP280_REG_TEMP_XLSB:
|
||||||
case BMP280_REG_TEMP_LSB:
|
case BMP280_REG_TEMP_LSB:
|
||||||
case BMP280_REG_TEMP_MSB:
|
case BMP280_REG_TEMP_MSB:
|
||||||
|
@ -167,7 +167,7 @@ const struct regmap_config bmp280_regmap_config = {
|
||||||
.reg_bits = 8,
|
.reg_bits = 8,
|
||||||
.val_bits = 8,
|
.val_bits = 8,
|
||||||
|
|
||||||
.max_register = BMP280_REG_HUMIDITY_LSB,
|
.max_register = BME280_REG_HUMIDITY_LSB,
|
||||||
.cache_type = REGCACHE_RBTREE,
|
.cache_type = REGCACHE_RBTREE,
|
||||||
|
|
||||||
.writeable_reg = bmp280_is_writeable_reg,
|
.writeable_reg = bmp280_is_writeable_reg,
|
||||||
|
|
|
@ -192,8 +192,6 @@
|
||||||
#define BMP380_PRESS_SKIPPED 0x800000
|
#define BMP380_PRESS_SKIPPED 0x800000
|
||||||
|
|
||||||
/* BMP280 specific registers */
|
/* BMP280 specific registers */
|
||||||
#define BMP280_REG_HUMIDITY_LSB 0xFE
|
|
||||||
#define BMP280_REG_HUMIDITY_MSB 0xFD
|
|
||||||
#define BMP280_REG_TEMP_XLSB 0xFC
|
#define BMP280_REG_TEMP_XLSB 0xFC
|
||||||
#define BMP280_REG_TEMP_LSB 0xFB
|
#define BMP280_REG_TEMP_LSB 0xFB
|
||||||
#define BMP280_REG_TEMP_MSB 0xFA
|
#define BMP280_REG_TEMP_MSB 0xFA
|
||||||
|
@ -207,15 +205,6 @@
|
||||||
#define BMP280_REG_CONFIG 0xF5
|
#define BMP280_REG_CONFIG 0xF5
|
||||||
#define BMP280_REG_CTRL_MEAS 0xF4
|
#define BMP280_REG_CTRL_MEAS 0xF4
|
||||||
#define BMP280_REG_STATUS 0xF3
|
#define BMP280_REG_STATUS 0xF3
|
||||||
#define BMP280_REG_CTRL_HUMIDITY 0xF2
|
|
||||||
|
|
||||||
/* Due to non linear mapping, and data sizes we can't do a bulk read */
|
|
||||||
#define BMP280_REG_COMP_H1 0xA1
|
|
||||||
#define BMP280_REG_COMP_H2 0xE1
|
|
||||||
#define BMP280_REG_COMP_H3 0xE3
|
|
||||||
#define BMP280_REG_COMP_H4 0xE4
|
|
||||||
#define BMP280_REG_COMP_H5 0xE5
|
|
||||||
#define BMP280_REG_COMP_H6 0xE7
|
|
||||||
|
|
||||||
#define BMP280_REG_COMP_TEMP_START 0x88
|
#define BMP280_REG_COMP_TEMP_START 0x88
|
||||||
#define BMP280_COMP_TEMP_REG_COUNT 6
|
#define BMP280_COMP_TEMP_REG_COUNT 6
|
||||||
|
@ -223,8 +212,6 @@
|
||||||
#define BMP280_REG_COMP_PRESS_START 0x8E
|
#define BMP280_REG_COMP_PRESS_START 0x8E
|
||||||
#define BMP280_COMP_PRESS_REG_COUNT 18
|
#define BMP280_COMP_PRESS_REG_COUNT 18
|
||||||
|
|
||||||
#define BMP280_COMP_H5_MASK GENMASK(15, 4)
|
|
||||||
|
|
||||||
#define BMP280_CONTIGUOUS_CALIB_REGS (BMP280_COMP_TEMP_REG_COUNT + \
|
#define BMP280_CONTIGUOUS_CALIB_REGS (BMP280_COMP_TEMP_REG_COUNT + \
|
||||||
BMP280_COMP_PRESS_REG_COUNT)
|
BMP280_COMP_PRESS_REG_COUNT)
|
||||||
|
|
||||||
|
@ -235,14 +222,6 @@
|
||||||
#define BMP280_FILTER_8X 3
|
#define BMP280_FILTER_8X 3
|
||||||
#define BMP280_FILTER_16X 4
|
#define BMP280_FILTER_16X 4
|
||||||
|
|
||||||
#define BMP280_OSRS_HUMIDITY_MASK GENMASK(2, 0)
|
|
||||||
#define BMP280_OSRS_HUMIDITY_SKIP 0
|
|
||||||
#define BMP280_OSRS_HUMIDITY_1X 1
|
|
||||||
#define BMP280_OSRS_HUMIDITY_2X 2
|
|
||||||
#define BMP280_OSRS_HUMIDITY_4X 3
|
|
||||||
#define BMP280_OSRS_HUMIDITY_8X 4
|
|
||||||
#define BMP280_OSRS_HUMIDITY_16X 5
|
|
||||||
|
|
||||||
#define BMP280_OSRS_TEMP_MASK GENMASK(7, 5)
|
#define BMP280_OSRS_TEMP_MASK GENMASK(7, 5)
|
||||||
#define BMP280_OSRS_TEMP_SKIP 0
|
#define BMP280_OSRS_TEMP_SKIP 0
|
||||||
#define BMP280_OSRS_TEMP_1X 1
|
#define BMP280_OSRS_TEMP_1X 1
|
||||||
|
@ -264,6 +243,30 @@
|
||||||
#define BMP280_MODE_FORCED 1
|
#define BMP280_MODE_FORCED 1
|
||||||
#define BMP280_MODE_NORMAL 3
|
#define BMP280_MODE_NORMAL 3
|
||||||
|
|
||||||
|
/* BME280 specific registers */
|
||||||
|
#define BME280_REG_HUMIDITY_LSB 0xFE
|
||||||
|
#define BME280_REG_HUMIDITY_MSB 0xFD
|
||||||
|
|
||||||
|
#define BME280_REG_CTRL_HUMIDITY 0xF2
|
||||||
|
|
||||||
|
/* Due to non linear mapping, and data sizes we can't do a bulk read */
|
||||||
|
#define BME280_REG_COMP_H1 0xA1
|
||||||
|
#define BME280_REG_COMP_H2 0xE1
|
||||||
|
#define BME280_REG_COMP_H3 0xE3
|
||||||
|
#define BME280_REG_COMP_H4 0xE4
|
||||||
|
#define BME280_REG_COMP_H5 0xE5
|
||||||
|
#define BME280_REG_COMP_H6 0xE7
|
||||||
|
|
||||||
|
#define BME280_COMP_H5_MASK GENMASK(15, 4)
|
||||||
|
|
||||||
|
#define BME280_OSRS_HUMIDITY_MASK GENMASK(2, 0)
|
||||||
|
#define BME280_OSRS_HUMIDITY_SKIP 0
|
||||||
|
#define BME280_OSRS_HUMIDITY_1X 1
|
||||||
|
#define BME280_OSRS_HUMIDITY_2X 2
|
||||||
|
#define BME280_OSRS_HUMIDITY_4X 3
|
||||||
|
#define BME280_OSRS_HUMIDITY_8X 4
|
||||||
|
#define BME280_OSRS_HUMIDITY_16X 5
|
||||||
|
|
||||||
/* BMP180 specific registers */
|
/* BMP180 specific registers */
|
||||||
#define BMP180_REG_OUT_XLSB 0xF8
|
#define BMP180_REG_OUT_XLSB 0xF8
|
||||||
#define BMP180_REG_OUT_LSB 0xF7
|
#define BMP180_REG_OUT_LSB 0xF7
|
||||||
|
|
Loading…
Reference in New Issue
Block a user