On 16 July 2017 10:45:15 BST, Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> wrote: >>> On Sun, 9 Jul 2017 18:57:04 +0200 >>> Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx> wrote: >>> >>>> Move data-ready configuration in hts221_buffer.c since it is only >related >>>> to trigger logic >>>> >>>> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@xxxxxx> >>> The rest of the series looks good to me. We are early in the cycle >>> so should have plenty of time to pin down the question on how to >handle >>> irq line inversion visibility to the kernel. >> >> Fine, pretty interesting stuff :) >> Regards, >> Lorenzo > >Hi Jonathan, > >I added all suggested changes in v2. What is the best way to support >that possibility (irq line inversion visibility)? >Is it up to hts221? I think the only real conclusion so far is that there are irqchip drivers dealing with this already. Hence on basis of precedence alone, not an issue for the ultimate client driver. Which I thought would be the case but wanted to get more info. Hence ignore whole issue in this driver. J > >Regards, >Lorenzo > >> >>> >>> Jonathan >>>> --- >>>> drivers/iio/humidity/hts221.h | 1 - >>>> drivers/iio/humidity/hts221_buffer.c | 8 +++++++- >>>> drivers/iio/humidity/hts221_core.c | 14 -------------- >>>> 3 files changed, 7 insertions(+), 16 deletions(-) >>>> >>>> diff --git a/drivers/iio/humidity/hts221.h >b/drivers/iio/humidity/hts221.h >>>> index 0fbc89fe213d..2b4e5246447a 100644 >>>> --- a/drivers/iio/humidity/hts221.h >>>> +++ b/drivers/iio/humidity/hts221.h >>>> @@ -66,7 +66,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); >>>> diff --git a/drivers/iio/humidity/hts221_buffer.c >b/drivers/iio/humidity/hts221_buffer.c >>>> index f29f01a22375..9690dfe9a844 100644 >>>> --- a/drivers/iio/humidity/hts221_buffer.c >>>> +++ b/drivers/iio/humidity/hts221_buffer.c >>>> @@ -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 = { >>>> diff --git a/drivers/iio/humidity/hts221_core.c >b/drivers/iio/humidity/hts221_core.c >>>> index dfacf64a6f2e..12c2bc5954e4 100644 >>>> --- a/drivers/iio/humidity/hts221_core.c >>>> +++ b/drivers/iio/humidity/hts221_core.c >>>> @@ -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 >>>> @@ -180,16 +176,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; >>> >> >> >> >> -- >> UNIX is Sexy: who | grep -i blonde | talk; cd ~; wine; talk; touch; >> unzip; touch; strip; gasp; finger; gasp; mount; fsck; more; yes; >gasp; >> umount; make clean; sleep -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html