aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/nfc/nci.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/nfc/nci.h')
-rw-r--r--include/net/nfc/nci.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/include/net/nfc/nci.h b/include/net/nfc/nci.h
index e7257a4653b4..a2f2f3d3196d 100644
--- a/include/net/nfc/nci.h
+++ b/include/net/nfc/nci.h
@@ -62,6 +62,25 @@
62#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc2 62#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc2
63#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc3 63#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc3
64 64
65/* NFCEE Interface/Protocols */
66#define NCI_NFCEE_INTERFACE_APDU 0x00
67#define NCI_NFCEE_INTERFACE_HCI_ACCESS 0x01
68#define NCI_NFCEE_INTERFACE_TYPE3_CMD_SET 0x02
69#define NCI_NFCEE_INTERFACE_TRANSPARENT 0x03
70
71/* Destination type */
72#define NCI_DESTINATION_NFCC_LOOPBACK 0x01
73#define NCI_DESTINATION_REMOTE_NFC_ENDPOINT 0x02
74#define NCI_DESTINATION_NFCEE 0x03
75
76/* Destination-specific parameters type */
77#define NCI_DESTINATION_SPECIFIC_PARAM_RF_TYPE 0x00
78#define NCI_DESTINATION_SPECIFIC_PARAM_NFCEE_TYPE 0x01
79
80/* NFCEE Discovery Action */
81#define NCI_NFCEE_DISCOVERY_ACTION_DISABLE 0x00
82#define NCI_NFCEE_DISCOVERY_ACTION_ENABLE 0x01
83
65/* NCI RF Technology and Mode */ 84/* NCI RF Technology and Mode */
66#define NCI_NFC_A_PASSIVE_POLL_MODE 0x00 85#define NCI_NFC_A_PASSIVE_POLL_MODE 0x00
67#define NCI_NFC_B_PASSIVE_POLL_MODE 0x01 86#define NCI_NFC_B_PASSIVE_POLL_MODE 0x01
@@ -224,6 +243,28 @@ struct nci_core_set_config_cmd {
224 struct set_config_param param; /* support 1 param per cmd is enough */ 243 struct set_config_param param; /* support 1 param per cmd is enough */
225} __packed; 244} __packed;
226 245
246#define NCI_OP_CORE_CONN_CREATE_CMD nci_opcode_pack(NCI_GID_CORE, 0x04)
247#define DEST_SPEC_PARAMS_ID_INDEX 0
248#define DEST_SPEC_PARAMS_PROTOCOL_INDEX 1
249struct dest_spec_params {
250 __u8 id;
251 __u8 protocol;
252} __packed;
253
254struct core_conn_create_dest_spec_params {
255 __u8 type;
256 __u8 length;
257 __u8 value[0];
258} __packed;
259
260struct nci_core_conn_create_cmd {
261 __u8 destination_type;
262 __u8 number_destination_params;
263 struct core_conn_create_dest_spec_params params[0];
264} __packed;
265
266#define NCI_OP_CORE_CONN_CLOSE_CMD nci_opcode_pack(NCI_GID_CORE, 0x05)
267
227#define NCI_OP_RF_DISCOVER_MAP_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 268#define NCI_OP_RF_DISCOVER_MAP_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x00)
228struct disc_map_config { 269struct disc_map_config {
229 __u8 rf_protocol; 270 __u8 rf_protocol;
@@ -260,6 +301,19 @@ struct nci_rf_deactivate_cmd {
260 __u8 type; 301 __u8 type;
261} __packed; 302} __packed;
262 303
304#define NCI_OP_NFCEE_DISCOVER_CMD nci_opcode_pack(NCI_GID_NFCEE_MGMT, 0x00)
305struct nci_nfcee_discover_cmd {
306 __u8 discovery_action;
307} __packed;
308
309#define NCI_OP_NFCEE_MODE_SET_CMD nci_opcode_pack(NCI_GID_NFCEE_MGMT, 0x01)
310#define NCI_NFCEE_DISABLE 0x00
311#define NCI_NFCEE_ENABLE 0x01
312struct nci_nfcee_mode_set_cmd {
313 __u8 nfcee_id;
314 __u8 nfcee_mode;
315} __packed;
316
263/* ----------------------- */ 317/* ----------------------- */
264/* ---- NCI Responses ---- */ 318/* ---- NCI Responses ---- */
265/* ----------------------- */ 319/* ----------------------- */
@@ -295,6 +349,16 @@ struct nci_core_set_config_rsp {
295 __u8 params_id[0]; /* variable size array */ 349 __u8 params_id[0]; /* variable size array */
296} __packed; 350} __packed;
297 351
352#define NCI_OP_CORE_CONN_CREATE_RSP nci_opcode_pack(NCI_GID_CORE, 0x04)
353struct nci_core_conn_create_rsp {
354 __u8 status;
355 __u8 max_ctrl_pkt_payload_len;
356 __u8 credits_cnt;
357 __u8 conn_id;
358} __packed;
359
360#define NCI_OP_CORE_CONN_CLOSE_RSP nci_opcode_pack(NCI_GID_CORE, 0x05)
361
298#define NCI_OP_RF_DISCOVER_MAP_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 362#define NCI_OP_RF_DISCOVER_MAP_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x00)
299 363
300#define NCI_OP_RF_DISCOVER_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x03) 364#define NCI_OP_RF_DISCOVER_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
@@ -303,6 +367,13 @@ struct nci_core_set_config_rsp {
303 367
304#define NCI_OP_RF_DEACTIVATE_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x06) 368#define NCI_OP_RF_DEACTIVATE_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
305 369
370#define NCI_OP_NFCEE_DISCOVER_RSP nci_opcode_pack(NCI_GID_NFCEE_MGMT, 0x00)
371struct nci_nfcee_discover_rsp {
372 __u8 status;
373 __u8 num_nfcee;
374} __packed;
375
376#define NCI_OP_NFCEE_MODE_SET_RSP nci_opcode_pack(NCI_GID_NFCEE_MGMT, 0x01)
306/* --------------------------- */ 377/* --------------------------- */
307/* ---- NCI Notifications ---- */ 378/* ---- NCI Notifications ---- */
308/* --------------------------- */ 379/* --------------------------- */
@@ -430,4 +501,30 @@ struct nci_rf_deactivate_ntf {
430 __u8 reason; 501 __u8 reason;
431} __packed; 502} __packed;
432 503
504#define NCI_OP_RF_NFCEE_ACTION_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x09)
505struct nci_rf_nfcee_action_ntf {
506 __u8 nfcee_id;
507 __u8 trigger;
508 __u8 supported_data_length;
509 __u8 supported_data[0];
510} __packed;
511
512#define NCI_OP_NFCEE_DISCOVER_NTF nci_opcode_pack(NCI_GID_NFCEE_MGMT, 0x00)
513struct nci_nfcee_supported_protocol {
514 __u8 num_protocol;
515 __u8 supported_protocol[0];
516} __packed;
517
518struct nci_nfcee_information_tlv {
519 __u8 num_tlv;
520 __u8 information_tlv[0];
521} __packed;
522
523struct nci_nfcee_discover_ntf {
524 __u8 nfcee_id;
525 __u8 nfcee_status;
526 struct nci_nfcee_supported_protocol supported_protocols;
527 struct nci_nfcee_information_tlv information_tlv;
528} __packed;
529
433#endif /* __NCI_H */ 530#endif /* __NCI_H */