]> git.karo-electronics.de Git - linux-beck.git/commitdiff
NFC: st21nfcb: Move powered flag from phy to ndlc layer
authorChristophe Ricard <christophe.ricard@gmail.com>
Sat, 6 Jun 2015 11:16:50 +0000 (13:16 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 8 Jun 2015 22:34:25 +0000 (00:34 +0200)
The powered flag can be set from the ndlc_open and ndlc_close layer.

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

index c44f8cf5391a67e5c405d3e3d844a2e6373c5eea..41b5bdb11cdbca10c073e3b5429df0580c369b13 100644 (file)
@@ -52,8 +52,6 @@ struct st21nfcb_i2c_phy {
 
        unsigned int gpio_reset;
        unsigned int irq_polarity;
-
-       int powered;
 };
 
 #define I2C_DUMP_SKB(info, skb)                                        \
@@ -70,7 +68,6 @@ static int st21nfcb_nci_i2c_enable(void *phy_id)
        gpio_set_value(phy->gpio_reset, 0);
        usleep_range(10000, 15000);
        gpio_set_value(phy->gpio_reset, 1);
-       phy->powered = 1;
        usleep_range(80000, 85000);
 
        return 0;
@@ -80,7 +77,6 @@ static void st21nfcb_nci_i2c_disable(void *phy_id)
 {
        struct st21nfcb_i2c_phy *phy = phy_id;
 
-       phy->powered = 0;
        /* reset chip in order to flush clf */
        gpio_set_value(phy->gpio_reset, 0);
        usleep_range(10000, 15000);
@@ -203,7 +199,7 @@ static irqreturn_t st21nfcb_nci_irq_thread_fn(int irq, void *phy_id)
        if (phy->ndlc->hard_fault)
                return IRQ_HANDLED;
 
-       if (!phy->powered) {
+       if (!phy->ndlc->powered) {
                st21nfcb_nci_i2c_disable(phy);
                return IRQ_HANDLED;
        }
index 429cf055d532b4c43f4094ee33154a7b441f295a..3ee22b44cd99518268f51d1a4c0a92f69ed41868 100644 (file)
@@ -59,6 +59,7 @@ int ndlc_open(struct llt_ndlc *ndlc)
 {
        /* toggle reset pin */
        ndlc->ops->enable(ndlc->phy_id);
+       ndlc->powered = 1;
        return 0;
 }
 EXPORT_SYMBOL(ndlc_open);
@@ -67,6 +68,7 @@ void ndlc_close(struct llt_ndlc *ndlc)
 {
        /* toggle reset pin */
        ndlc->ops->disable(ndlc->phy_id);
+       ndlc->powered = 0;
 }
 EXPORT_SYMBOL(ndlc_close);
 
@@ -262,6 +264,7 @@ int ndlc_probe(void *phy_id, struct nfc_phy_ops *phy_ops, struct device *dev,
        ndlc->ops = phy_ops;
        ndlc->phy_id = phy_id;
        ndlc->dev = dev;
+       ndlc->powered = 0;
 
        *ndlc_id = ndlc;
 
index b28140e0cd78865fa5635ea3394e7f5fc2695858..cf6a9d9f2983f70cb54627f95fb815e44578f401 100644 (file)
@@ -47,6 +47,7 @@ struct llt_ndlc {
         * and prevents normal operation.
         */
        int hard_fault;
+       int powered;
 };
 
 int ndlc_open(struct llt_ndlc *ndlc);