mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
NFC: pn533: Turn radio on and off when bringing the device up and down
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
7757dc8a3e
commit
60d9edd50b
@ -163,9 +163,13 @@ struct pn533_fw_version {
|
||||
};
|
||||
|
||||
/* PN533_CMD_RF_CONFIGURATION */
|
||||
#define PN533_CFGITEM_TIMING 0x02
|
||||
#define PN533_CFGITEM_RF_FIELD 0x01
|
||||
#define PN533_CFGITEM_TIMING 0x02
|
||||
#define PN533_CFGITEM_MAX_RETRIES 0x05
|
||||
#define PN533_CFGITEM_PASORI 0x82
|
||||
#define PN533_CFGITEM_PASORI 0x82
|
||||
|
||||
#define PN533_CFGITEM_RF_FIELD_ON 0x1
|
||||
#define PN533_CFGITEM_RF_FIELD_OFF 0x0
|
||||
|
||||
#define PN533_CONFIG_TIMING_102 0xb
|
||||
#define PN533_CONFIG_TIMING_204 0xc
|
||||
@ -2540,9 +2544,36 @@ static int pn533_acr122_poweron_rdr(struct pn533 *dev)
|
||||
return arg.rc;
|
||||
}
|
||||
|
||||
static int pn533_rf_field(struct nfc_dev *nfc_dev, u8 rf)
|
||||
{
|
||||
struct pn533 *dev = nfc_get_drvdata(nfc_dev);
|
||||
u8 rf_field = !!rf;
|
||||
int rc;
|
||||
|
||||
rc = pn533_set_configuration(dev, PN533_CFGITEM_RF_FIELD,
|
||||
(u8 *)&rf_field, 1);
|
||||
if (rc) {
|
||||
nfc_dev_err(&dev->interface->dev,
|
||||
"Error on setting RF field");
|
||||
return rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
int pn533_dev_up(struct nfc_dev *nfc_dev)
|
||||
{
|
||||
return pn533_rf_field(nfc_dev, 1);
|
||||
}
|
||||
|
||||
int pn533_dev_down(struct nfc_dev *nfc_dev)
|
||||
{
|
||||
return pn533_rf_field(nfc_dev, 0);
|
||||
}
|
||||
|
||||
static struct nfc_ops pn533_nfc_ops = {
|
||||
.dev_up = NULL,
|
||||
.dev_down = NULL,
|
||||
.dev_up = pn533_dev_up,
|
||||
.dev_down = pn533_dev_down,
|
||||
.dep_link_up = pn533_dep_link_up,
|
||||
.dep_link_down = pn533_dep_link_down,
|
||||
.start_poll = pn533_start_poll,
|
||||
|
Loading…
Reference in New Issue
Block a user