From: Jonathan Cameron <jic23@kernel.org>
To: Vlad Dogaru <vlad.dogaru@intel.com>, linux-iio@vger.kernel.org
Subject: Re: [PATCH v3 3/3] iio: sx9500: add GPIO reset pin
Date: Sat, 18 Apr 2015 20:16:32 +0100 [thread overview]
Message-ID: <5532AD90.2020300@kernel.org> (raw)
In-Reply-To: <1428858561-27994-4-git-send-email-vlad.dogaru@intel.com>
On 12/04/15 18:09, Vlad Dogaru wrote:
> If a GPIO reset pin is listed in ACPI or Device Tree, use it to reset
> the device on initialization.
>
> Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com>
Applied. Thanks for this series. The power optimization patch
in particular raised some questions in my mind about whether there
is a better way to handle these inter dependencies between different
uses of a channel. No particular ideas yet though :)
Anyhow, in the togreg branch, initially pushed out as testing to
see what I've missed today.
J
> ---
> drivers/iio/proximity/sx9500.c | 22 ++++++++++++++++++++--
> 1 file changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
> index 72efbbc..a32fa2e 100644
> --- a/drivers/iio/proximity/sx9500.c
> +++ b/drivers/iio/proximity/sx9500.c
> @@ -33,6 +33,7 @@
> #define SX9500_IRQ_NAME "sx9500_event"
>
> #define SX9500_GPIO_INT "interrupt"
> +#define SX9500_GPIO_RESET "reset"
>
> /* Register definitions. */
> #define SX9500_REG_IRQ_SRC 0x00
> @@ -85,6 +86,7 @@ struct sx9500_data {
> struct i2c_client *client;
> struct iio_trigger *trig;
> struct regmap *regmap;
> + struct gpio_desc *gpiod_rst;
> /*
> * Last reading of the proximity status for each channel. We
> * only send an event to user space when this changes.
> @@ -831,6 +833,13 @@ static int sx9500_init_device(struct iio_dev *indio_dev)
> int ret, i;
> unsigned int val;
>
> + if (data->gpiod_rst) {
> + gpiod_set_value_cansleep(data->gpiod_rst, 0);
> + usleep_range(1000, 2000);
> + gpiod_set_value_cansleep(data->gpiod_rst, 1);
> + usleep_range(1000, 2000);
> + }
> +
> ret = regmap_write(data->regmap, SX9500_REG_IRQ_MSK, 0);
> if (ret < 0)
> return ret;
> @@ -877,6 +886,13 @@ static void sx9500_gpio_probe(struct i2c_client *client,
> else
> client->irq = gpiod_to_irq(gpio);
> }
> +
> + data->gpiod_rst = devm_gpiod_get_index(dev, SX9500_GPIO_RESET,
> + 0, GPIOD_OUT_HIGH);
> + if (IS_ERR(data->gpiod_rst)) {
> + dev_warn(dev, "gpio get reset pin failed\n");
> + data->gpiod_rst = NULL;
> + }
> }
>
> static int sx9500_probe(struct i2c_client *client,
> @@ -900,8 +916,6 @@ static int sx9500_probe(struct i2c_client *client,
> if (IS_ERR(data->regmap))
> return PTR_ERR(data->regmap);
>
> - sx9500_init_device(indio_dev);
> -
> indio_dev->dev.parent = &client->dev;
> indio_dev->name = SX9500_DRIVER_NAME;
> indio_dev->channels = sx9500_channels;
> @@ -912,6 +926,10 @@ static int sx9500_probe(struct i2c_client *client,
>
> sx9500_gpio_probe(client, data);
>
> + ret = sx9500_init_device(indio_dev);
> + if (ret < 0)
> + return ret;
> +
> if (client->irq <= 0)
> dev_warn(&client->dev, "no valid irq found\n");
> else {
>
prev parent reply other threads:[~2015-04-18 19:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-12 17:09 [PATCH v3 0/3] iio: sx9500: power usage and gpio changes Vlad Dogaru
2015-04-12 17:09 ` [PATCH v3 1/3] iio: sx9500: optimize power usage Vlad Dogaru
2015-04-18 19:12 ` Jonathan Cameron
2015-06-26 11:01 ` Hartmut Knaack
2015-06-29 7:42 ` Vlad Dogaru
2015-04-12 17:09 ` [PATCH v3 2/3] iio: sx9500: refactor GPIO interrupt code Vlad Dogaru
2015-04-18 19:14 ` Jonathan Cameron
2015-04-12 17:09 ` [PATCH v3 3/3] iio: sx9500: add GPIO reset pin Vlad Dogaru
2015-04-18 19:16 ` Jonathan Cameron [this message]
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=5532AD90.2020300@kernel.org \
--to=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=vlad.dogaru@intel.com \
/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 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.