diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2012-07-03 18:14:04 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-07-09 16:42:24 -0400 |
commit | 01d719a2287ec34f631800d10f1fad3c134c3e89 (patch) | |
tree | 9b718a6c24ad36433f15febdc52ed25b23f41847 /drivers/nfc/pn533.c | |
parent | a1fbbf1817c671a396b7ae3832bdfab63acea2e5 (diff) |
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>
Diffstat (limited to 'drivers/nfc/pn533.c')
-rw-r--r-- | drivers/nfc/pn533.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/nfc/pn533.c b/drivers/nfc/pn533.c index 84d8175db818..d606f52fec84 100644 --- a/drivers/nfc/pn533.c +++ b/drivers/nfc/pn533.c | |||
@@ -49,13 +49,15 @@ | |||
49 | #define PN533_DEVICE_STD 0x1 | 49 | #define PN533_DEVICE_STD 0x1 |
50 | #define PN533_DEVICE_PASORI 0x2 | 50 | #define PN533_DEVICE_PASORI 0x2 |
51 | 51 | ||
52 | #define PN533_ALL_PROTOCOLS (NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK \ | 52 | #define PN533_ALL_PROTOCOLS (NFC_PROTO_JEWEL_MASK | NFC_PROTO_MIFARE_MASK |\ |
53 | | NFC_PROTO_FELICA_MASK | NFC_PROTO_ISO14443_MASK \ | 53 | NFC_PROTO_FELICA_MASK | NFC_PROTO_ISO14443_MASK |\ |
54 | | NFC_PROTO_NFC_DEP_MASK) | 54 | NFC_PROTO_NFC_DEP_MASK |\ |
55 | NFC_PROTO_ISO14443_B_MASK) | ||
55 | 56 | ||
56 | #define PN533_NO_TYPE_B_PROTOCOLS (NFC_PROTO_JEWEL_MASK | \ | 57 | #define PN533_NO_TYPE_B_PROTOCOLS (NFC_PROTO_JEWEL_MASK | \ |
57 | NFC_PROTO_MIFARE_MASK | \ | 58 | NFC_PROTO_MIFARE_MASK | \ |
58 | NFC_PROTO_FELICA_MASK | \ | 59 | NFC_PROTO_FELICA_MASK | \ |
60 | NFC_PROTO_ISO14443_MASK | \ | ||
59 | NFC_PROTO_NFC_DEP_MASK) | 61 | NFC_PROTO_NFC_DEP_MASK) |
60 | 62 | ||
61 | static const struct usb_device_id pn533_table[] = { | 63 | 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, | |||
987 | if (!pn533_target_type_b_is_valid(tgt_type_b, tgt_data_len)) | 989 | if (!pn533_target_type_b_is_valid(tgt_type_b, tgt_data_len)) |
988 | return -EPROTO; | 990 | return -EPROTO; |
989 | 991 | ||
990 | nfc_tgt->supported_protocols = NFC_PROTO_ISO14443_MASK; | 992 | nfc_tgt->supported_protocols = NFC_PROTO_ISO14443_B_MASK; |
991 | 993 | ||
992 | return 0; | 994 | return 0; |
993 | } | 995 | } |
@@ -1094,7 +1096,7 @@ static void pn533_poll_create_mod_list(struct pn533 *dev, | |||
1094 | if (im_protocols & NFC_PROTO_JEWEL_MASK) | 1096 | if (im_protocols & NFC_PROTO_JEWEL_MASK) |
1095 | pn533_poll_add_mod(dev, PN533_POLL_MOD_106KBPS_JEWEL); | 1097 | pn533_poll_add_mod(dev, PN533_POLL_MOD_106KBPS_JEWEL); |
1096 | 1098 | ||
1097 | if (im_protocols & NFC_PROTO_ISO14443_MASK) | 1099 | if (im_protocols & NFC_PROTO_ISO14443_B_MASK) |
1098 | pn533_poll_add_mod(dev, PN533_POLL_MOD_847KBPS_B); | 1100 | pn533_poll_add_mod(dev, PN533_POLL_MOD_847KBPS_B); |
1099 | 1101 | ||
1100 | if (tm_protocols) | 1102 | if (tm_protocols) |