Re: [PATCH 9/9] iio: humidity: hts221: move drdy enable logic in hts221_trig_set_state()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux