Commit f3f0ae16 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jonathan Cameron
Browse files

iio: humidity: hts221: move drdy enable logic in hts221_trig_set_state()



Move data-ready configuration in hts221_buffer.c since it is only related
to trigger logic

Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@st.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 21d841b2
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -60,7 +60,6 @@ struct hts221_hw {

extern const struct dev_pm_ops hts221_pm_ops;

int hts221_config_drdy(struct hts221_hw *hw, bool enable);
int hts221_write_with_mask(struct hts221_hw *hw, u8 addr, u8 mask, u8 val);
int hts221_probe(struct iio_dev *iio_dev);
int hts221_set_enable(struct hts221_hw *hw, bool enable);
+7 −1
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@
#define HTS221_REG_DRDY_HL_MASK		BIT(7)
#define HTS221_REG_DRDY_PP_OD_ADDR	0x22
#define HTS221_REG_DRDY_PP_OD_MASK	BIT(6)
#define HTS221_REG_DRDY_EN_ADDR		0x22
#define HTS221_REG_DRDY_EN_MASK		BIT(2)
#define HTS221_REG_STATUS_ADDR		0x27
#define HTS221_RH_DRDY_MASK		BIT(1)
#define HTS221_TEMP_DRDY_MASK		BIT(0)
@@ -36,8 +38,12 @@ static int hts221_trig_set_state(struct iio_trigger *trig, bool state)
{
	struct iio_dev *iio_dev = iio_trigger_get_drvdata(trig);
	struct hts221_hw *hw = iio_priv(iio_dev);
	int err;

	err = hts221_write_with_mask(hw, HTS221_REG_DRDY_EN_ADDR,
				     HTS221_REG_DRDY_EN_MASK, state);

	return hts221_config_drdy(hw, state);
	return err < 0 ? err : 0;
}

static const struct iio_trigger_ops hts221_trigger_ops = {
+0 −14
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@

#define HTS221_REG_CNTRL1_ADDR		0x20
#define HTS221_REG_CNTRL2_ADDR		0x21
#define HTS221_REG_CNTRL3_ADDR		0x22

#define HTS221_REG_AVG_ADDR		0x10
#define HTS221_REG_H_OUT_L		0x28
@@ -36,9 +35,6 @@
#define HTS221_BDU_MASK			BIT(2)
#define HTS221_ENABLE_MASK		BIT(7)

#define HTS221_DRDY_MASK		BIT(2)


/* calibration registers */
#define HTS221_REG_0RH_CAL_X_H		0x36
#define HTS221_REG_1RH_CAL_X_H		0x3a
@@ -181,16 +177,6 @@ static int hts221_check_whoami(struct hts221_hw *hw)
	return 0;
}

int hts221_config_drdy(struct hts221_hw *hw, bool enable)
{
	int err;

	err = hts221_write_with_mask(hw, HTS221_REG_CNTRL3_ADDR,
				     HTS221_DRDY_MASK, enable);

	return err < 0 ? err : 0;
}

static int hts221_update_odr(struct hts221_hw *hw, u8 odr)
{
	int i, err;