NFC: Add ISO 14443 type B protocol
Some devices (e.g. Sony's PaSoRi) can not do type B polling, so we have to make a distinction between ISO14443 type A and B poll modes. Cc: Eric Lapuyade <eric.lapuyade@intel.com> Cc: Ilan Elias <ilane@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:

committed by
John W. Linville

parent
a1fbbf1817
commit
01d719a228
@@ -535,9 +535,10 @@ static int nfcwilink_probe(struct platform_device *pdev)
|
||||
drv->pdev = pdev;
|
||||
|
||||
protocols = NFC_PROTO_JEWEL_MASK
|
||||
| NFC_PROTO_MIFARE_MASK | NFC_PROTO_FELICA_MASK
|
||||
| NFC_PROTO_ISO14443_MASK
|
||||
| NFC_PROTO_NFC_DEP_MASK;
|
||||
| NFC_PROTO_MIFARE_MASK | NFC_PROTO_FELICA_MASK
|
||||
| NFC_PROTO_ISO14443_MASK
|
||||
| NFC_PROTO_ISO14443_B_MASK
|
||||
| NFC_PROTO_NFC_DEP_MASK;
|
||||
|
||||
drv->ndev = nci_allocate_device(&nfcwilink_ops,
|
||||
protocols,
|
||||
|
@@ -49,13 +49,15 @@
|
||||
#define PN533_DEVICE_STD 0x1
|
||||
#define PN533_DEVICE_PASORI 0x2
|
||||
|
||||
#define PN533_ALL_PROTOCOLS (NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK \
|
||||
| NFC_PROTO_FELICA_MASK | NFC_PROTO_ISO14443_MASK \
|
||||
| NFC_PROTO_NFC_DEP_MASK)
|
||||
#define PN533_ALL_PROTOCOLS (NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK |\
|
||||
NFC_PROTO_FELICA_MASK | NFC_PROTO_ISO14443_MASK |\
|
||||
NFC_PROTO_NFC_DEP_MASK |\
|
||||
NFC_PROTO_ISO14443_B_MASK)
|
||||
|
||||
#define PN533_NO_TYPE_B_PROTOCOLS (NFC_PROTO_JEWEL_MASK | \
|
||||
NFC_PROTO_MIFARE_MASK | \
|
||||
NFC_PROTO_FELICA_MASK | \
|
||||
NFC_PROTO_ISO14443_MASK | \
|
||||
NFC_PROTO_NFC_DEP_MASK)
|
||||
|
||||
static const struct usb_device_id pn533_table[] = {
|
||||
@@ -987,7 +989,7 @@ static int pn533_target_found_type_b(struct nfc_target *nfc_tgt, u8 *tgt_data,
|
||||
if (!pn533_target_type_b_is_valid(tgt_type_b, tgt_data_len))
|
||||
return -EPROTO;
|
||||
|
||||
nfc_tgt->supported_protocols = NFC_PROTO_ISO14443_MASK;
|
||||
nfc_tgt->supported_protocols = NFC_PROTO_ISO14443_B_MASK;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1094,7 +1096,7 @@ static void pn533_poll_create_mod_list(struct pn533 *dev,
|
||||
if (im_protocols & NFC_PROTO_JEWEL_MASK)
|
||||
pn533_poll_add_mod(dev, PN533_POLL_MOD_106KBPS_JEWEL);
|
||||
|
||||
if (im_protocols & NFC_PROTO_ISO14443_MASK)
|
||||
if (im_protocols & NFC_PROTO_ISO14443_B_MASK)
|
||||
pn533_poll_add_mod(dev, PN533_POLL_MOD_847KBPS_B);
|
||||
|
||||
if (tm_protocols)
|
||||
|
@@ -869,6 +869,7 @@ static int __devinit pn544_hci_probe(struct i2c_client *client,
|
||||
NFC_PROTO_MIFARE_MASK |
|
||||
NFC_PROTO_FELICA_MASK |
|
||||
NFC_PROTO_ISO14443_MASK |
|
||||
NFC_PROTO_ISO14443_B_MASK |
|
||||
NFC_PROTO_NFC_DEP_MASK;
|
||||
|
||||
info->shdlc = nfc_shdlc_allocate(&pn544_shdlc_ops,
|
||||
|
Reference in New Issue
Block a user