NFC: st21nfcb: Remove gpio_irq field in static and dts configuration
authorChristophe Ricard <christophe.ricard@gmail.com>
Wed, 12 Nov 2014 23:30:26 +0000 (00:30 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 1 Dec 2014 23:54:23 +0000 (00:54 +0100)
- phy->gpio_irq is never done out of the request resources.
- irq_of_parse_and_map is already done in the i2c core so client->irq is
already set when entering in st21nfcb_hci_i2c_of_request_resources
- In case of static platform configuration client->irq can be set directly.
- It simplifies the code a bit.

Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/st21nfcb/i2c.c
include/linux/platform_data/st21nfcb.h

index 73f7ddef57c4f99bcace2727a8a50af0f45d7f9a..e0c4901936f03d9ccff8178a1c96f914a9b77400 100644 (file)
@@ -50,7 +50,6 @@ struct st21nfcb_i2c_phy {
        struct i2c_client *i2c_dev;
        struct llt_ndlc *ndlc;
 
-       unsigned int gpio_irq;
        unsigned int gpio_reset;
        unsigned int irq_polarity;
 
@@ -262,15 +261,7 @@ static int st21nfcb_nci_i2c_of_request_resources(struct i2c_client *client)
        }
        phy->gpio_reset = gpio;
 
-       /* IRQ */
-       r = irq_of_parse_and_map(pp, 0);
-       if (r < 0) {
-               nfc_err(&client->dev, "Unable to get irq, error: %d\n", r);
-               return r;
-       }
-
-       phy->irq_polarity = irq_get_trigger_type(r);
-       client->irq = r;
+       phy->irq_polarity = irq_get_trigger_type(client->irq);
 
        return 0;
 }
@@ -286,7 +277,6 @@ static int st21nfcb_nci_i2c_request_resources(struct i2c_client *client)
        struct st21nfcb_nfc_platform_data *pdata;
        struct st21nfcb_i2c_phy *phy = i2c_get_clientdata(client);
        int r;
-       int irq;
 
        pdata = client->dev.platform_data;
        if (pdata == NULL) {
@@ -295,17 +285,9 @@ static int st21nfcb_nci_i2c_request_resources(struct i2c_client *client)
        }
 
        /* store for later use */
-       phy->gpio_irq = pdata->gpio_irq;
        phy->gpio_reset = pdata->gpio_reset;
        phy->irq_polarity = pdata->irq_polarity;
 
-       r = devm_gpio_request_one(&client->dev, phy->gpio_irq,
-                               GPIOF_IN, "clf_irq");
-       if (r) {
-               pr_err("%s : gpio_request failed\n", __FILE__);
-               return -ENODEV;
-       }
-
        r = devm_gpio_request_one(&client->dev,
                        phy->gpio_reset, GPIOF_OUT_INIT_HIGH, "clf_reset");
        if (r) {
@@ -313,16 +295,6 @@ static int st21nfcb_nci_i2c_request_resources(struct i2c_client *client)
                return -ENODEV;
        }
 
-       /* IRQ */
-       irq = gpio_to_irq(phy->gpio_irq);
-       if (irq < 0) {
-               nfc_err(&client->dev,
-                       "Unable to get irq number for GPIO %d error %d\n",
-                       phy->gpio_irq, r);
-               return -ENODEV;
-       }
-       client->irq = irq;
-
        return 0;
 }
 
index 2d11f1f5efaba8884b9e2c7a07ad7e26732b9d48..c3b432f5b63e7eea706738a951d64e2556033ee4 100644 (file)
@@ -24,7 +24,6 @@
 #define ST21NFCB_NCI_DRIVER_NAME "st21nfcb_nci"
 
 struct st21nfcb_nfc_platform_data {
-       unsigned int gpio_irq;
        unsigned int gpio_reset;
        unsigned int irq_polarity;
 };