diff options
Diffstat (limited to 'drivers/nfc/st21nfcb/ndlc.c')
-rw-r--r-- | drivers/nfc/st21nfcb/ndlc.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/nfc/st21nfcb/ndlc.c b/drivers/nfc/st21nfcb/ndlc.c index 3ee22b44cd99..91e81f37b3a6 100644 --- a/drivers/nfc/st21nfcb/ndlc.c +++ b/drivers/nfc/st21nfcb/ndlc.c @@ -66,9 +66,19 @@ EXPORT_SYMBOL(ndlc_open); void ndlc_close(struct llt_ndlc *ndlc) { + struct nci_mode_set_cmd cmd; + + cmd.cmd_type = ST21NFCB_NCI_SET_NFC_MODE; + cmd.mode = 0; + /* toggle reset pin */ - ndlc->ops->disable(ndlc->phy_id); + ndlc->ops->enable(ndlc->phy_id); + + nci_prop_cmd(ndlc->ndev, ST21NFCB_NCI_CORE_PROP, + sizeof(struct nci_mode_set_cmd), (__u8 *)&cmd); + ndlc->powered = 0; + ndlc->ops->disable(ndlc->phy_id); } EXPORT_SYMBOL(ndlc_close); |