diff mbox

[v1,1/2] NFC: pn544: Request GPIOs with proper connection IDs

Message ID 20170307101230.23062-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State Not Applicable
Delegated to: Samuel Ortiz
Headers show

Commit Message

Andy Shevchenko March 7, 2017, 10:12 a.m. UTC
Since ACPI does support _DSD we might have a firmware that provides a
GPIO mapping in DSDT. When GPIO is requested the core will check for
property with given name. That's why we have to follow the standard
names which are already in use in DT case.

Request GPIOs with proper connection IDs, i.e. use same names as used
for DT case.

In the future ACPI and DT cases might be unified.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/nfc/pn544/i2c.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Andy Shevchenko March 7, 2017, 10:15 a.m. UTC | #1
On Tue, 2017-03-07 at 12:12 +0200, Andy Shevchenko wrote:
> Since ACPI does support _DSD we might have a firmware that provides a
> GPIO mapping in DSDT. When GPIO is requested the core will check for
> property with given name. That's why we have to follow the standard
> names which are already in use in DT case.
> 
> Request GPIOs with proper connection IDs, i.e. use same names as used
> for DT case.
> 
> In the future ACPI and DT cases might be unified.

Discard this series, it should be v2, just resent.

> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/nfc/pn544/i2c.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/nfc/pn544/i2c.c b/drivers/nfc/pn544/i2c.c
> index f837c39a8017..2df3176205c4 100644
> --- a/drivers/nfc/pn544/i2c.c
> +++ b/drivers/nfc/pn544/i2c.c
> @@ -881,8 +881,7 @@ static int
> pn544_hci_i2c_acpi_request_resources(struct i2c_client *client)
>  	struct device *dev = &client->dev;
>  
>  	/* Get EN GPIO from ACPI */
> -	gpiod_en = devm_gpiod_get_index(dev, PN544_GPIO_NAME_EN, 1,
> -					GPIOD_OUT_LOW);
> +	gpiod_en = devm_gpiod_get_index(dev, "enable", 1,
> GPIOD_OUT_LOW);
>  	if (IS_ERR(gpiod_en)) {
>  		nfc_err(dev, "Unable to get EN GPIO\n");
>  		return -ENODEV;
> @@ -891,8 +890,7 @@ static int
> pn544_hci_i2c_acpi_request_resources(struct i2c_client *client)
>  	phy->gpio_en = desc_to_gpio(gpiod_en);
>  
>  	/* Get FW GPIO from ACPI */
> -	gpiod_fw = devm_gpiod_get_index(dev, PN544_GPIO_NAME_FW, 2,
> -					GPIOD_OUT_LOW);
> +	gpiod_fw = devm_gpiod_get_index(dev, "firmware", 2,
> GPIOD_OUT_LOW);
>  	if (IS_ERR(gpiod_fw)) {
>  		nfc_err(dev, "Unable to get FW GPIO\n");
>  		return -ENODEV;
Andy Shevchenko March 22, 2017, 5:34 p.m. UTC | #2
On Tue, 2017-03-07 at 12:15 +0200, Andy Shevchenko wrote:
> On Tue, 2017-03-07 at 12:12 +0200, Andy Shevchenko wrote:

> > Since ACPI does support _DSD we might have a firmware that provides

> > a

> > GPIO mapping in DSDT. When GPIO is requested the core will check for

> > property with given name. That's why we have to follow the standard

> > names which are already in use in DT case.

> > 

> > Request GPIOs with proper connection IDs, i.e. use same names as

> > used

> > for DT case.

> > 

> > In the future ACPI and DT cases might be unified.

> 

> Discard this series, it should be v2, just resent.


While I'm preparing v2, there is a most important question has arisen.

Do we have any evidence of NXP5440 (ACPI ID) in *real* world?

To me it (the ID itself) sounds artificial and wilfully invented. In
case I'm right it must be removed from the driver. Otherwise, I would
like to see documentation or alike with DSDT excerpt and model of the
real device which has it.

-- 
Andy Shevchenko <andriy.shevchenko@intel.com>
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
diff mbox

Patch

diff --git a/drivers/nfc/pn544/i2c.c b/drivers/nfc/pn544/i2c.c
index f837c39a8017..2df3176205c4 100644
--- a/drivers/nfc/pn544/i2c.c
+++ b/drivers/nfc/pn544/i2c.c
@@ -881,8 +881,7 @@  static int pn544_hci_i2c_acpi_request_resources(struct i2c_client *client)
 	struct device *dev = &client->dev;
 
 	/* Get EN GPIO from ACPI */
-	gpiod_en = devm_gpiod_get_index(dev, PN544_GPIO_NAME_EN, 1,
-					GPIOD_OUT_LOW);
+	gpiod_en = devm_gpiod_get_index(dev, "enable", 1, GPIOD_OUT_LOW);
 	if (IS_ERR(gpiod_en)) {
 		nfc_err(dev, "Unable to get EN GPIO\n");
 		return -ENODEV;
@@ -891,8 +890,7 @@  static int pn544_hci_i2c_acpi_request_resources(struct i2c_client *client)
 	phy->gpio_en = desc_to_gpio(gpiod_en);
 
 	/* Get FW GPIO from ACPI */
-	gpiod_fw = devm_gpiod_get_index(dev, PN544_GPIO_NAME_FW, 2,
-					GPIOD_OUT_LOW);
+	gpiod_fw = devm_gpiod_get_index(dev, "firmware", 2, GPIOD_OUT_LOW);
 	if (IS_ERR(gpiod_fw)) {
 		nfc_err(dev, "Unable to get FW GPIO\n");
 		return -ENODEV;