All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-iio@vger.kernel.org, Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	Karol Wrona <k.wrona@samsung.com>
Subject: Re: [PATCH] iio: ssp_sensors: Convert to use GPIO descriptors
Date: Sat, 7 Dec 2019 10:20:57 +0000	[thread overview]
Message-ID: <20191207102057.30010f1b@archlinux> (raw)
In-Reply-To: <20191202085350.77149-1-linus.walleij@linaro.org>

On Mon,  2 Dec 2019 09:53:50 +0100
Linus Walleij <linus.walleij@linaro.org> wrote:

> These three GPIO lines used by the Samsung sensor hub is pretty
> straight-forward to convert to use GPIO descriptors.
> 
> Cc: Karol Wrona <k.wrona@samsung.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This one looks very straight forward, so I've applied it.

However, if anyone else has time to take a look that would be great.

Thanks,

Jonathan

> ---
>  drivers/iio/common/ssp_sensors/ssp.h     | 14 ++++++------
>  drivers/iio/common/ssp_sensors/ssp_dev.c | 29 ++++++++----------------
>  drivers/iio/common/ssp_sensors/ssp_spi.c |  8 +++----
>  3 files changed, 20 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/iio/common/ssp_sensors/ssp.h b/drivers/iio/common/ssp_sensors/ssp.h
> index 0a381bb1ae6f..abb832795619 100644
> --- a/drivers/iio/common/ssp_sensors/ssp.h
> +++ b/drivers/iio/common/ssp_sensors/ssp.h
> @@ -7,7 +7,7 @@
>  #define __SSP_SENSORHUB_H__
>  
>  #include <linux/delay.h>
> -#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/iio/common/ssp_sensors.h>
>  #include <linux/iio/iio.h>
>  #include <linux/spi/spi.h>
> @@ -168,9 +168,9 @@ struct ssp_sensorhub_info {
>   * @fw_dl_state:	firmware download state
>   * @comm_lock:		lock protecting the handshake
>   * @pending_lock:	lock protecting pending list and completion
> - * @mcu_reset_gpio:	mcu reset line
> - * @ap_mcu_gpio:	ap to mcu gpio line
> - * @mcu_ap_gpio:	mcu to ap gpio line
> + * @mcu_reset_gpiod:	mcu reset line
> + * @ap_mcu_gpiod:	ap to mcu gpio line
> + * @mcu_ap_gpiod:	mcu to ap gpio line
>   * @pending_list:	pending list for messages queued to be sent/read
>   * @sensor_devs:	registered IIO devices table
>   * @enable_refcount:	enable reference count for wdt (watchdog timer)
> @@ -212,9 +212,9 @@ struct ssp_data {
>  	struct mutex comm_lock;
>  	struct mutex pending_lock;
>  
> -	int mcu_reset_gpio;
> -	int ap_mcu_gpio;
> -	int mcu_ap_gpio;
> +	struct gpio_desc *mcu_reset_gpiod;
> +	struct gpio_desc *ap_mcu_gpiod;
> +	struct gpio_desc *mcu_ap_gpiod;
>  
>  	struct list_head pending_list;
>  
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 9c70553994c6..a94dbcf491ce 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -9,7 +9,6 @@
>  #include <linux/mfd/core.h>
>  #include <linux/module.h>
>  #include <linux/of.h>
> -#include <linux/of_gpio.h>
>  #include <linux/of_platform.h>
>  #include "ssp.h"
>  
> @@ -61,9 +60,9 @@ static const struct mfd_cell sensorhub_sensor_devs[] = {
>  
>  static void ssp_toggle_mcu_reset_gpio(struct ssp_data *data)
>  {
> -	gpio_set_value(data->mcu_reset_gpio, 0);
> +	gpiod_set_value(data->mcu_reset_gpiod, 0);
>  	usleep_range(1000, 1200);
> -	gpio_set_value(data->mcu_reset_gpio, 1);
> +	gpiod_set_value(data->mcu_reset_gpiod, 1);
>  	msleep(50);
>  }
>  
> @@ -441,7 +440,6 @@ MODULE_DEVICE_TABLE(of, ssp_of_match);
>  
>  static struct ssp_data *ssp_parse_dt(struct device *dev)
>  {
> -	int ret;
>  	struct ssp_data *data;
>  	struct device_node *node = dev->of_node;
>  	const struct of_device_id *match;
> @@ -450,26 +448,17 @@ static struct ssp_data *ssp_parse_dt(struct device *dev)
>  	if (!data)
>  		return NULL;
>  
> -	data->mcu_ap_gpio = of_get_named_gpio(node, "mcu-ap-gpios", 0);
> -	if (data->mcu_ap_gpio < 0)
> -		return NULL;
> -
> -	data->ap_mcu_gpio = of_get_named_gpio(node, "ap-mcu-gpios", 0);
> -	if (data->ap_mcu_gpio < 0)
> -		return NULL;
> -
> -	data->mcu_reset_gpio = of_get_named_gpio(node, "mcu-reset-gpios", 0);
> -	if (data->mcu_reset_gpio < 0)
> +	data->mcu_ap_gpiod = devm_gpiod_get(dev, "mcu-ap", GPIOD_IN);
> +	if (IS_ERR(data->mcu_ap_gpiod))
>  		return NULL;
>  
> -	ret = devm_gpio_request_one(dev, data->ap_mcu_gpio, GPIOF_OUT_INIT_HIGH,
> -				    "ap-mcu-gpios");
> -	if (ret)
> +	data->ap_mcu_gpiod = devm_gpiod_get(dev, "ap-mcu", GPIOD_OUT_HIGH);
> +	if (IS_ERR(data->ap_mcu_gpiod))
>  		return NULL;
>  
> -	ret = devm_gpio_request_one(dev, data->mcu_reset_gpio,
> -				    GPIOF_OUT_INIT_HIGH, "mcu-reset-gpios");
> -	if (ret)
> +	data->mcu_reset_gpiod = devm_gpiod_get(dev, "mcu-reset",
> +					       GPIOD_OUT_HIGH);
> +	if (IS_ERR(data->mcu_reset_gpiod))
>  		return NULL;
>  
>  	match = of_match_node(ssp_of_match, node);
> diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/ssp_sensors/ssp_spi.c
> index 7db3d5886e3e..4864c38b8d1c 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_spi.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c
> @@ -155,9 +155,9 @@ static int ssp_check_lines(struct ssp_data *data, bool state)
>  {
>  	int delay_cnt = 0;
>  
> -	gpio_set_value_cansleep(data->ap_mcu_gpio, state);
> +	gpiod_set_value_cansleep(data->ap_mcu_gpiod, state);
>  
> -	while (gpio_get_value_cansleep(data->mcu_ap_gpio) != state) {
> +	while (gpiod_get_value_cansleep(data->mcu_ap_gpiod) != state) {
>  		usleep_range(3000, 3500);
>  
>  		if (data->shut_down || delay_cnt++ > 500) {
> @@ -165,7 +165,7 @@ static int ssp_check_lines(struct ssp_data *data, bool state)
>  				__func__, state);
>  
>  			if (!state)
> -				gpio_set_value_cansleep(data->ap_mcu_gpio, 1);
> +				gpiod_set_value_cansleep(data->ap_mcu_gpiod, 1);
>  
>  			return -ETIMEDOUT;
>  		}
> @@ -197,7 +197,7 @@ static int ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg,
>  
>  	status = spi_write(data->spi, msg->buffer, SSP_HEADER_SIZE);
>  	if (status < 0) {
> -		gpio_set_value_cansleep(data->ap_mcu_gpio, 1);
> +		gpiod_set_value_cansleep(data->ap_mcu_gpiod, 1);
>  		dev_err(SSP_DEV, "%s spi_write fail\n", __func__);
>  		goto _error_locked;
>  	}


      reply	other threads:[~2019-12-07 10:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-02  8:53 [PATCH] iio: ssp_sensors: Convert to use GPIO descriptors Linus Walleij
2019-12-07 10:20 ` 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=20191207102057.30010f1b@archlinux \
    --to=jic23@kernel.org \
    --cc=k.wrona@samsung.com \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=pmeerw@pmeerw.net \
    /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.