2014-05-26 13:54:27

by Axel Lin

[permalink] [raw]
Subject: [PATCH] NFC: st21nfca: Convert to use devm_gpio_request_one

This simplifies the code a bit.

Signed-off-by: Axel Lin <[email protected]>
---
drivers/nfc/st21nfca/i2c.c | 28 ++++++----------------------
1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/drivers/nfc/st21nfca/i2c.c b/drivers/nfc/st21nfca/i2c.c
index 3f954ed..0e096ad 100644
--- a/drivers/nfc/st21nfca/i2c.c
+++ b/drivers/nfc/st21nfca/i2c.c
@@ -524,17 +524,13 @@ static int st21nfca_hci_i2c_of_request_resources(struct i2c_client *client)
}

/* GPIO request and configuration */
- r = devm_gpio_request(&client->dev, gpio, "clf_enable");
+ r = devm_gpio_request_one(&client->dev, gpio, GPIOF_OUT_INIT_HIGH,
+ "clf_enable");
if (r) {
nfc_err(&client->dev, "Failed to request enable pin\n");
return -ENODEV;
}

- r = gpio_direction_output(gpio, 1);
- if (r) {
- nfc_err(&client->dev, "Failed to set enable pin direction as output\n");
- return -ENODEV;
- }
phy->gpio_ena = gpio;

/* IRQ */
@@ -575,32 +571,20 @@ static int st21nfca_hci_i2c_request_resources(struct i2c_client *client)
phy->gpio_ena = pdata->gpio_ena;
phy->irq_polarity = pdata->irq_polarity;

- r = devm_gpio_request(&client->dev, phy->gpio_irq, "wake_up");
+ r = devm_gpio_request_one(&client->dev, phy->gpio_irq, GPIOF_IN,
+ "wake_up");
if (r) {
pr_err("%s : gpio_request failed\n", __FILE__);
return -ENODEV;
}

- r = gpio_direction_input(phy->gpio_irq);
- if (r) {
- pr_err("%s : gpio_direction_input failed\n", __FILE__);
- return -ENODEV;
- }
-
if (phy->gpio_ena > 0) {
- r = devm_gpio_request(&client->dev,
- phy->gpio_ena, "clf_enable");
+ r = devm_gpio_request_one(&client->dev, phy->gpio_ena,
+ GPIOF_OUT_INIT_HIGH, "clf_enable");
if (r) {
pr_err("%s : ena gpio_request failed\n", __FILE__);
return -ENODEV;
}
- r = gpio_direction_output(phy->gpio_ena, 1);
-
- if (r) {
- pr_err("%s : ena gpio_direction_output failed\n",
- __FILE__);
- return -ENODEV;
- }
}

/* IRQ */
--
1.8.3.2





2014-07-25 21:04:34

by Christophe Ricard

[permalink] [raw]
Subject: Re: [PATCH] NFC: st21nfca: Convert to use devm_gpio_request_one

On Mon, 26 May 2014 16:00:08 +0200
Axel Lin <[email protected]> wrote:

>
> This simplifies the code a bit.
>
> Signed-off-by: Axel Lin <[email protected]>
> ---
> drivers/nfc/st21nfca/i2c.c | 28 ++++++----------------------
> 1 file changed, 6 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/nfc/st21nfca/i2c.c b/drivers/nfc/st21nfca/i2c.c
> index 3f954ed..0e096ad 100644 --- a/drivers/nfc/st21nfca/i2c.c
> +++ b/drivers/nfc/st21nfca/i2c.c
> @@ -524,17 +524,13 @@ static int
> st21nfca_hci_i2c_of_request_resources(struct i2c_client *client) }
>
> /* GPIO request and configuration */
> - r = devm_gpio_request(&client->dev, gpio, "clf_enable");
> + r = devm_gpio_request_one(&client->dev, gpio,
> GPIOF_OUT_INIT_HIGH,
> + "clf_enable");
> if (r) {
> nfc_err(&client->dev, "Failed to request enable
> pin\n"); return -ENODEV;
> }
>
> - r = gpio_direction_output(gpio, 1);
> - if (r) {
> - nfc_err(&client->dev, "Failed to set enable pin
> direction as output\n");
> - return -ENODEV;
> - }
> phy->gpio_ena = gpio;
>
> /* IRQ */
> @@ -575,32 +571,20 @@ static int
> st21nfca_hci_i2c_request_resources(struct i2c_client *client)
> phy->gpio_ena = pdata->gpio_ena; phy->irq_polarity =
> pdata->irq_polarity;
> - r = devm_gpio_request(&client->dev, phy->gpio_irq,
> "wake_up");
> + r = devm_gpio_request_one(&client->dev, phy->gpio_irq,
> GPIOF_IN,
> + "wake_up");
> if (r) {
> pr_err("%s : gpio_request failed\n", __FILE__);
> return -ENODEV;
> }
>
> - r = gpio_direction_input(phy->gpio_irq);
> - if (r) {
> - pr_err("%s : gpio_direction_input failed\n",
> __FILE__);
> - return -ENODEV;
> - }
> -
> if (phy->gpio_ena > 0) {
> - r = devm_gpio_request(&client->dev,
> - phy->gpio_ena, "clf_enable");
> + r = devm_gpio_request_one(&client->dev,
> phy->gpio_ena,
> + GPIOF_OUT_INIT_HIGH,
> "clf_enable"); if (r) {
> pr_err("%s : ena gpio_request failed\n",
> __FILE__); return -ENODEV;
> }
> - r = gpio_direction_output(phy->gpio_ena, 1);
> -
> - if (r) {
> - pr_err("%s : ena gpio_direction_output
> failed\n",
> - __FILE__);
> - return -ENODEV;
> - }
> }
>
> /* IRQ */

Acked-by: Christophe RICARD <[email protected]>