From: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Lorenzo Bianconi
<lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
lorenzo.bianconi-qxv4g6HH51o@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 1/4] iio: st_sensors: split open-drain parameters for irq1 and irq2
Date: Tue, 10 Oct 2017 20:39:14 +0100 [thread overview]
Message-ID: <20171010203914.0a50b20b@archlinux> (raw)
In-Reply-To: <20170917161712.14645-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
On Sun, 17 Sep 2017 18:17:09 +0200
Lorenzo Bianconi <lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Define st_sensor_int_drdy structure in st_sensor_data_ready_irq in order
> to contain irq line parameters of the device.
> Moreover separate data-ready open-drain configuration parameters for INT1
> and INT2 pins in st_sensor_data_ready_irq data structure.
> That change will be used to properly support LIS3DHH accel sensor.
>
> Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.
Thanks,
Jonathan
> ---
> drivers/iio/accel/st_accel_core.c | 18 ++++++++++------
> drivers/iio/common/st_sensors/st_sensors_core.c | 21 ++++++++++++++-----
> drivers/iio/pressure/st_pressure_core.c | 14 +++++++------
> include/linux/iio/common/st_sensors.h | 28 ++++++++++++++-----------
> 4 files changed, 52 insertions(+), 29 deletions(-)
>
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index 731ec3a4c82b..c88db25a1aff 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -236,15 +236,17 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
> .int1 = {
> .addr = 0x22,
> .mask = 0x02,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .int2 = {
> .addr = 0x22,
> .mask = 0x10,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .addr_ihl = 0x22,
> .mask_ihl = 0x80,
> - .addr_od = 0x22,
> - .mask_od = 0x40,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x07,
> @@ -468,15 +470,17 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
> .int1 = {
> .addr = 0x22,
> .mask = 0x04,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .int2 = {
> .addr = 0x22,
> .mask = 0x20,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .addr_ihl = 0x22,
> .mask_ihl = 0x80,
> - .addr_od = 0x22,
> - .mask_od = 0x40,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x07,
> @@ -750,15 +754,17 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
> .int1 = {
> .addr = 0x23,
> .mask = 0x01,
> + .addr_od = 0x22,
> + .mask_od = 0x20,
> },
> .int2 = {
> .addr = 0x24,
> .mask = 0x01,
> + .addr_od = 0x22,
> + .mask_od = 0x20,
> },
> .addr_ihl = 0x22,
> .mask_ihl = 0x08,
> - .addr_od = 0x22,
> - .mask_od = 0x20,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x01,
> diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c
> index 6657160b5a73..40dfdfc0906b 100644
> --- a/drivers/iio/common/st_sensors/st_sensors_core.c
> +++ b/drivers/iio/common/st_sensors/st_sensors_core.c
> @@ -319,7 +319,8 @@ static int st_sensors_set_drdy_int_pin(struct iio_dev *indio_dev,
> }
>
> if (pdata->open_drain) {
> - if (!sdata->sensor_settings->drdy_irq.addr_od)
> + if (!sdata->sensor_settings->drdy_irq.int1.addr_od &&
> + !sdata->sensor_settings->drdy_irq.int2.addr_od)
> dev_err(&indio_dev->dev,
> "open drain requested but unsupported.\n");
> else
> @@ -446,11 +447,21 @@ int st_sensors_init_sensor(struct iio_dev *indio_dev,
> }
>
> if (sdata->int_pin_open_drain) {
> + u8 addr, mask;
> +
> + if (sdata->drdy_int_pin == 1) {
> + addr = sdata->sensor_settings->drdy_irq.int1.addr_od;
> + mask = sdata->sensor_settings->drdy_irq.int1.mask_od;
> + } else {
> + addr = sdata->sensor_settings->drdy_irq.int2.addr_od;
> + mask = sdata->sensor_settings->drdy_irq.int2.mask_od;
> + }
> +
> dev_info(&indio_dev->dev,
> - "set interrupt line to open drain mode\n");
> - err = st_sensors_write_data_with_mask(indio_dev,
> - sdata->sensor_settings->drdy_irq.addr_od,
> - sdata->sensor_settings->drdy_irq.mask_od, 1);
> + "set interrupt line to open drain mode on pin %d\n",
> + sdata->drdy_int_pin);
> + err = st_sensors_write_data_with_mask(indio_dev, addr,
> + mask, 1);
> if (err < 0)
> return err;
> }
> diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c
> index 15ad6054d9f6..349e5c713c03 100644
> --- a/drivers/iio/pressure/st_pressure_core.c
> +++ b/drivers/iio/pressure/st_pressure_core.c
> @@ -283,15 +283,17 @@ static const struct st_sensor_settings st_press_sensors_settings[] = {
> .int1 = {
> .addr = 0x22,
> .mask = 0x04,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .int2 = {
> .addr = 0x22,
> .mask = 0x20,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .addr_ihl = 0x22,
> .mask_ihl = 0x80,
> - .addr_od = 0x22,
> - .mask_od = 0x40,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x03,
> @@ -404,11 +406,11 @@ static const struct st_sensor_settings st_press_sensors_settings[] = {
> .int1 = {
> .addr = 0x23,
> .mask = 0x01,
> + .addr_od = 0x22,
> + .mask_od = 0x40,
> },
> .addr_ihl = 0x22,
> .mask_ihl = 0x80,
> - .addr_od = 0x22,
> - .mask_od = 0x40,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x03,
> @@ -473,11 +475,11 @@ static const struct st_sensor_settings st_press_sensors_settings[] = {
> .int1 = {
> .addr = 0x12,
> .mask = 0x04,
> + .addr_od = 0x12,
> + .mask_od = 0x40,
> },
> .addr_ihl = 0x12,
> .mask_ihl = 0x80,
> - .addr_od = 0x12,
> - .mask_od = 0x40,
> .stat_drdy = {
> .addr = ST_SENSORS_DEFAULT_STAT_ADDR,
> .mask = 0x03,
> diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h
> index e6c646d5d6d4..f9bd6e8ab138 100644
> --- a/include/linux/iio/common/st_sensors.h
> +++ b/include/linux/iio/common/st_sensors.h
> @@ -130,32 +130,36 @@ struct st_sensor_das {
> u8 mask;
> };
>
> +/**
> + * struct st_sensor_int_drdy - ST sensor device drdy line parameters
> + * @addr: address of INT drdy register.
> + * @mask: mask to enable drdy line.
> + * @addr_od: address to enable/disable Open Drain on the INT line.
> + * @mask_od: mask to enable/disable Open Drain on the INT line.
> + */
> +struct st_sensor_int_drdy {
> + u8 addr;
> + u8 mask;
> + u8 addr_od;
> + u8 mask_od;
> +};
> +
> /**
> * struct st_sensor_data_ready_irq - ST sensor device data-ready interrupt
> * struct int1 - data-ready configuration register for INT1 pin.
> * struct int2 - data-ready configuration register for INT2 pin.
> * @addr_ihl: address to enable/disable active low on the INT lines.
> * @mask_ihl: mask to enable/disable active low on the INT lines.
> - * @addr_od: address to enable/disable Open Drain on the INT lines.
> - * @mask_od: mask to enable/disable Open Drain on the INT lines.
> * struct stat_drdy - status register of DRDY (data ready) interrupt.
> * struct ig1 - represents the Interrupt Generator 1 of sensors.
> * @en_addr: address of the enable ig1 register.
> * @en_mask: mask to write the on/off value for enable.
> */
> struct st_sensor_data_ready_irq {
> - struct {
> - u8 addr;
> - u8 mask;
> - } int1;
> - struct {
> - u8 addr;
> - u8 mask;
> - } int2;
> + struct st_sensor_int_drdy int1;
> + struct st_sensor_int_drdy int2;
> u8 addr_ihl;
> u8 mask_ihl;
> - u8 addr_od;
> - u8 mask_od;
> struct {
> u8 addr;
> u8 mask;
--
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
next prev parent reply other threads:[~2017-10-10 19:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-17 16:17 [PATCH 0/4] Add support to LIS3DHH accel sensor Lorenzo Bianconi
[not found] ` <20170917161712.14645-1-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
2017-09-17 16:17 ` [PATCH 1/4] iio: st_sensors: split open-drain parameters for irq1 and irq2 Lorenzo Bianconi
[not found] ` <20170917161712.14645-2-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
2017-10-10 19:39 ` Jonathan Cameron [this message]
2017-09-17 16:17 ` [PATCH 2/4] iio: common: st_sensors: check odr address value in st_sensors_set_odr() Lorenzo Bianconi
[not found] ` <20170917161712.14645-3-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
2017-10-10 19:40 ` Jonathan Cameron
2017-09-17 16:17 ` [PATCH 3/4] iio: accel: add support to LIS3DHH Lorenzo Bianconi
[not found] ` <20170917161712.14645-4-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
2017-10-10 19:40 ` Jonathan Cameron
2017-09-17 16:17 ` [PATCH 4/4] dt-bindings: iio: accel: add LIS3DHH device bindings Lorenzo Bianconi
[not found] ` <20170917161712.14645-5-lorenzo.bianconi-qxv4g6HH51o@public.gmane.org>
2017-09-20 20:53 ` Rob Herring
2017-10-10 19:43 ` 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=20171010203914.0a50b20b@archlinux \
--to=jic23-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lorenzo.bianconi-qxv4g6HH51o@public.gmane.org \
--cc=lorenzo.bianconi83-Re5JQEeQqe8AvxtiuMwx3w@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).