From: Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> To: jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, lorenzo.bianconi-qxv4g6HH51o@public.gmane.org Subject: [PATCH 7/9] iio: humidity: hts221: support open drain mode Date: Sun, 9 Jul 2017 18:57:02 +0200 [thread overview] Message-ID: <20170709165704.26311-8-lorenzo.bianconi@st.com> (raw) In-Reply-To: <20170709165704.26311-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> Add open drain support in order to share requested IRQ line between hts221 device and other peripherals Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> --- drivers/iio/humidity/hts221_buffer.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/iio/humidity/hts221_buffer.c b/drivers/iio/humidity/hts221_buffer.c index ad5222295b2c..f29f01a22375 100644 --- a/drivers/iio/humidity/hts221_buffer.c +++ b/drivers/iio/humidity/hts221_buffer.c @@ -20,10 +20,14 @@ #include <linux/iio/triggered_buffer.h> #include <linux/iio/buffer.h> +#include <linux/platform_data/st_sensors_pdata.h> + #include "hts221.h" #define HTS221_REG_DRDY_HL_ADDR 0x22 #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_STATUS_ADDR 0x27 #define HTS221_RH_DRDY_MASK BIT(1) #define HTS221_TEMP_DRDY_MASK BIT(0) @@ -69,7 +73,9 @@ static irqreturn_t hts221_trigger_handler_thread(int irq, void *private) int hts221_allocate_trigger(struct hts221_hw *hw) { struct iio_dev *iio_dev = iio_priv_to_dev(hw); - bool irq_active_low = false; + bool irq_active_low = false, open_drain = false; + struct device_node *np = hw->dev->of_node; + struct st_sensors_platform_data *pdata; unsigned long irq_type; int err; @@ -95,6 +101,20 @@ int hts221_allocate_trigger(struct hts221_hw *hw) HTS221_REG_DRDY_HL_MASK, irq_active_low); if (err < 0) return err; + + pdata = (struct st_sensors_platform_data *)hw->dev->platform_data; + if ((np && of_property_read_bool(np, "drive-open-drain")) || + (pdata && pdata->open_drain)) { + irq_type |= IRQF_SHARED; + open_drain = true; + } + + err = hts221_write_with_mask(hw, HTS221_REG_DRDY_PP_OD_ADDR, + HTS221_REG_DRDY_PP_OD_MASK, + open_drain); + if (err < 0) + return err; + err = devm_request_threaded_irq(hw->dev, hw->irq, NULL, hts221_trigger_handler_thread, irq_type | IRQF_ONESHOT, -- 2.13.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> To: jic23@kernel.org Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, lorenzo.bianconi@st.com Subject: [PATCH 7/9] iio: humidity: hts221: support open drain mode Date: Sun, 9 Jul 2017 18:57:02 +0200 [thread overview] Message-ID: <20170709165704.26311-8-lorenzo.bianconi@st.com> (raw) In-Reply-To: <20170709165704.26311-1-lorenzo.bianconi@st.com> Add open drain support in order to share requested IRQ line between hts221 device and other peripherals Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com> --- drivers/iio/humidity/hts221_buffer.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/iio/humidity/hts221_buffer.c b/drivers/iio/humidity/hts221_buffer.c index ad5222295b2c..f29f01a22375 100644 --- a/drivers/iio/humidity/hts221_buffer.c +++ b/drivers/iio/humidity/hts221_buffer.c @@ -20,10 +20,14 @@ #include <linux/iio/triggered_buffer.h> #include <linux/iio/buffer.h> +#include <linux/platform_data/st_sensors_pdata.h> + #include "hts221.h" #define HTS221_REG_DRDY_HL_ADDR 0x22 #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_STATUS_ADDR 0x27 #define HTS221_RH_DRDY_MASK BIT(1) #define HTS221_TEMP_DRDY_MASK BIT(0) @@ -69,7 +73,9 @@ static irqreturn_t hts221_trigger_handler_thread(int irq, void *private) int hts221_allocate_trigger(struct hts221_hw *hw) { struct iio_dev *iio_dev = iio_priv_to_dev(hw); - bool irq_active_low = false; + bool irq_active_low = false, open_drain = false; + struct device_node *np = hw->dev->of_node; + struct st_sensors_platform_data *pdata; unsigned long irq_type; int err; @@ -95,6 +101,20 @@ int hts221_allocate_trigger(struct hts221_hw *hw) HTS221_REG_DRDY_HL_MASK, irq_active_low); if (err < 0) return err; + + pdata = (struct st_sensors_platform_data *)hw->dev->platform_data; + if ((np && of_property_read_bool(np, "drive-open-drain")) || + (pdata && pdata->open_drain)) { + irq_type |= IRQF_SHARED; + open_drain = true; + } + + err = hts221_write_with_mask(hw, HTS221_REG_DRDY_PP_OD_ADDR, + HTS221_REG_DRDY_PP_OD_MASK, + open_drain); + if (err < 0) + return err; + err = devm_request_threaded_irq(hw->dev, hw->irq, NULL, hts221_trigger_handler_thread, irq_type | IRQF_ONESHOT, -- 2.13.1
next prev parent reply other threads:[~2017-07-09 16:57 UTC|newest] Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-09 16:56 [PATCH 0/9] hts221: add new features and fix power-off procedure Lorenzo Bianconi 2017-07-09 16:56 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 16:56 ` [PATCH 1/9] iio: humidity: hts221: refactor write_with_mask code Lorenzo Bianconi 2017-07-09 16:56 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:28 ` Jonathan Cameron 2017-07-09 18:28 ` Jonathan Cameron [not found] ` <20170709192827.2c343108-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-09 21:18 ` Lorenzo Bianconi 2017-07-09 21:18 ` Lorenzo Bianconi [not found] ` <CAA2SeNJmUFp7WaOsAEq+yLMSKrzQVkhmyMhB2OVWsbBAmv4nCg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-07-10 20:47 ` Jonathan Cameron 2017-07-10 20:47 ` Jonathan Cameron 2017-07-09 16:56 ` [PATCH 2/9] iio: humidity: hts221: move BDU configuration in probe routine Lorenzo Bianconi 2017-07-09 16:56 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-3-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:29 ` Jonathan Cameron 2017-07-09 18:29 ` Jonathan Cameron 2017-07-09 16:56 ` [PATCH 3/9] iio: humidity: hts221: do not overwrite reserved data during power-down Lorenzo Bianconi 2017-07-09 16:56 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-4-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:30 ` Jonathan Cameron 2017-07-09 18:30 ` Jonathan Cameron [not found] ` <20170709193042.330fcd60-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-09 21:26 ` Lorenzo Bianconi 2017-07-09 21:26 ` Lorenzo Bianconi 2017-07-09 16:56 ` [PATCH 4/9] iio: humidity: hts221: avoid useless ODR reconfiguration Lorenzo Bianconi 2017-07-09 16:56 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-5-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:32 ` Jonathan Cameron 2017-07-09 18:32 ` Jonathan Cameron [not found] ` <20170709193208.6864b158-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-09 21:27 ` Lorenzo Bianconi 2017-07-09 21:27 ` Lorenzo Bianconi 2017-07-09 16:57 ` [PATCH 5/9] iio: humidity: hts221: support active-low interrupts Lorenzo Bianconi 2017-07-09 16:57 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-6-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:39 ` Jonathan Cameron 2017-07-09 18:39 ` Jonathan Cameron [not found] ` <20170709193951.14caff79-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-10 9:36 ` Marc Zyngier 2017-07-10 9:36 ` Marc Zyngier [not found] ` <ceef5860-91ee-a922-0dd7-8f2698192b9b-5wv7dgnIgG8@public.gmane.org> 2017-07-11 18:52 ` Jonathan Cameron 2017-07-11 18:52 ` Jonathan Cameron 2017-07-09 16:57 ` [PATCH 6/9] dt-bindings: " Lorenzo Bianconi 2017-07-09 16:57 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-7-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-11 2:49 ` Rob Herring 2017-07-11 2:49 ` Rob Herring 2017-07-09 16:57 ` Lorenzo Bianconi [this message] 2017-07-09 16:57 ` [PATCH 7/9] iio: humidity: hts221: support open drain mode Lorenzo Bianconi 2017-07-09 16:57 ` [PATCH 8/9] dt-bindings: " Lorenzo Bianconi 2017-07-09 16:57 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-9-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-11 2:51 ` Rob Herring 2017-07-11 2:51 ` Rob Herring 2017-07-11 18:26 ` Jonathan Cameron 2017-07-11 18:26 ` Jonathan Cameron [not found] ` <20170711192656.7fd08a1c-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-11 18:42 ` Rob Herring 2017-07-11 18:42 ` Rob Herring [not found] ` <CAL_JsqJa7JeofpG=66AnVrTP4XtVrp9B4-QoLTyK08GzF4L5uQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-07-11 18:56 ` Jonathan Cameron 2017-07-11 18:56 ` Jonathan Cameron [not found] ` <0462CB71-6762-48F2-99B3-EA62FF81C280-tko9wxEg+fIOOJlXag/Snyp2UmYkHbXO@public.gmane.org> 2017-07-15 14:32 ` Lorenzo Bianconi 2017-07-15 14:32 ` Lorenzo Bianconi [not found] ` <CAA2SeN+2T2-G1khRNpNzccesX=cip0ConT11RJRV-HB8Ojk0pA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-07-17 11:49 ` Jonathan Cameron 2017-07-17 11:49 ` Jonathan Cameron 2017-07-09 16:57 ` [PATCH 9/9] iio: humidity: hts221: move drdy enable logic in hts221_trig_set_state() Lorenzo Bianconi 2017-07-09 16:57 ` Lorenzo Bianconi [not found] ` <20170709165704.26311-10-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org> 2017-07-09 18:41 ` Jonathan Cameron 2017-07-09 18:41 ` Jonathan Cameron [not found] ` <20170709194123.39fd6914-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2017-07-09 21:28 ` Lorenzo Bianconi 2017-07-09 21:28 ` Lorenzo Bianconi [not found] ` <CAA2SeNLhBbTbMGDHyXGN02V4n0RHrwK-Bg0D_q9phpcEa3e7Rw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-07-16 9:45 ` Lorenzo Bianconi 2017-07-16 9:45 ` Lorenzo Bianconi [not found] ` <CAA2SeNK6dd=myMk59j1To9GtvBaj1T8XXwcaqrtO8V5s-bM5WQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-07-16 19:50 ` Jonathan Cameron 2017-07-16 19:50 ` Jonathan Cameron
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170709165704.26311-8-lorenzo.bianconi@st.com \ --to=lorenzo.bianconi83-re5jqeeqqe8avxtiumwx3w@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=lorenzo.bianconi-qxv4g6HH51o@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.