nci.h (251f39fe42dae863bd24e30864e6b66076ba076d) | nci.h (637d85a7cdfe4240a56da7d70cf95cca65ea21d3) |
---|---|
1/* 2 * The NFC Controller Interface is the communication protocol between an 3 * NFC Controller (NFCC) and a Device Host (DH). 4 * 5 * Copyright (C) 2011 Texas Instruments, Inc. 6 * 7 * Written by Ilan Elias <ilane@ti.com> 8 * --- 20 unchanged lines hidden (view full) --- 29#define __NCI_H 30 31/* NCI constants */ 32#define NCI_MAX_NUM_MAPPING_CONFIGS 10 33#define NCI_MAX_NUM_RF_CONFIGS 10 34#define NCI_MAX_NUM_CONN 10 35 36/* NCI Status Codes */ | 1/* 2 * The NFC Controller Interface is the communication protocol between an 3 * NFC Controller (NFCC) and a Device Host (DH). 4 * 5 * Copyright (C) 2011 Texas Instruments, Inc. 6 * 7 * Written by Ilan Elias <ilane@ti.com> 8 * --- 20 unchanged lines hidden (view full) --- 29#define __NCI_H 30 31/* NCI constants */ 32#define NCI_MAX_NUM_MAPPING_CONFIGS 10 33#define NCI_MAX_NUM_RF_CONFIGS 10 34#define NCI_MAX_NUM_CONN 10 35 36/* NCI Status Codes */ |
37#define NCI_STATUS_OK 0x00 38#define NCI_STATUS_REJECTED 0x01 39#define NCI_STATUS_MESSAGE_CORRUPTED 0x02 40#define NCI_STATUS_BUFFER_FULL 0x03 41#define NCI_STATUS_FAILED 0x04 42#define NCI_STATUS_NOT_INITIALIZED 0x05 43#define NCI_STATUS_SYNTAX_ERROR 0x06 44#define NCI_STATUS_SEMANTIC_ERROR 0x07 45#define NCI_STATUS_UNKNOWN_GID 0x08 46#define NCI_STATUS_UNKNOWN_OID 0x09 47#define NCI_STATUS_INVALID_PARAM 0x0a 48#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0b | 37#define NCI_STATUS_OK 0x00 38#define NCI_STATUS_REJECTED 0x01 39#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02 40#define NCI_STATUS_FAILED 0x03 41#define NCI_STATUS_NOT_INITIALIZED 0x04 42#define NCI_STATUS_SYNTAX_ERROR 0x05 43#define NCI_STATUS_SEMANTIC_ERROR 0x06 44#define NCI_STATUS_UNKNOWN_GID 0x07 45#define NCI_STATUS_UNKNOWN_OID 0x08 46#define NCI_STATUS_INVALID_PARAM 0x09 47#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a |
49/* Discovery Specific Status Codes */ | 48/* Discovery Specific Status Codes */ |
50#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0 51#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1 | 49#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0 50#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1 51#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2 |
52/* RF Interface Specific Status Codes */ | 52/* RF Interface Specific Status Codes */ |
53#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0 54#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1 55#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2 56#define NCI_STATUS_RF_LINK_LOSS_ERROR 0xb3 | 53#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0 54#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1 55#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2 |
57/* NFCEE Interface Specific Status Codes */ | 56/* NFCEE Interface Specific Status Codes */ |
58#define NCI_STATUS_MAX_ACTIVE_NFCEE_INTERFACES_REACHED 0xc0 59#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc1 60#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc2 61#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc3 62#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc4 | 57#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc0 58#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc1 59#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc2 60#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc3 |
63 64/* NCI RF Technology and Mode */ 65#define NCI_NFC_A_PASSIVE_POLL_MODE 0x00 66#define NCI_NFC_B_PASSIVE_POLL_MODE 0x01 67#define NCI_NFC_F_PASSIVE_POLL_MODE 0x02 68#define NCI_NFC_A_ACTIVE_POLL_MODE 0x03 69#define NCI_NFC_F_ACTIVE_POLL_MODE 0x05 | 61 62/* NCI RF Technology and Mode */ 63#define NCI_NFC_A_PASSIVE_POLL_MODE 0x00 64#define NCI_NFC_B_PASSIVE_POLL_MODE 0x01 65#define NCI_NFC_F_PASSIVE_POLL_MODE 0x02 66#define NCI_NFC_A_ACTIVE_POLL_MODE 0x03 67#define NCI_NFC_F_ACTIVE_POLL_MODE 0x05 |
68#define NCI_NFC_15693_PASSIVE_POLL_MODE 0x06 |
|
70#define NCI_NFC_A_PASSIVE_LISTEN_MODE 0x80 71#define NCI_NFC_B_PASSIVE_LISTEN_MODE 0x81 72#define NCI_NFC_F_PASSIVE_LISTEN_MODE 0x82 73#define NCI_NFC_A_ACTIVE_LISTEN_MODE 0x83 74#define NCI_NFC_F_ACTIVE_LISTEN_MODE 0x85 | 69#define NCI_NFC_A_PASSIVE_LISTEN_MODE 0x80 70#define NCI_NFC_B_PASSIVE_LISTEN_MODE 0x81 71#define NCI_NFC_F_PASSIVE_LISTEN_MODE 0x82 72#define NCI_NFC_A_ACTIVE_LISTEN_MODE 0x83 73#define NCI_NFC_F_ACTIVE_LISTEN_MODE 0x85 |
74#define NCI_NFC_15693_PASSIVE_LISTEN_MODE 0x86 |
|
75 | 75 |
76/* NCI RF Technologies */ 77#define NCI_NFC_RF_TECHNOLOGY_A 0x00 78#define NCI_NFC_RF_TECHNOLOGY_B 0x01 79#define NCI_NFC_RF_TECHNOLOGY_F 0x02 80#define NCI_NFC_RF_TECHNOLOGY_15693 0x03 81 82/* NCI Bit Rates */ 83#define NCI_NFC_BIT_RATE_106 0x00 84#define NCI_NFC_BIT_RATE_212 0x01 85#define NCI_NFC_BIT_RATE_424 0x02 86#define NCI_NFC_BIT_RATE_848 0x03 87#define NCI_NFC_BIT_RATE_1695 0x04 88#define NCI_NFC_BIT_RATE_3390 0x05 89#define NCI_NFC_BIT_RATE_6780 0x06 90 |
|
76/* NCI RF Protocols */ 77#define NCI_RF_PROTOCOL_UNKNOWN 0x00 78#define NCI_RF_PROTOCOL_T1T 0x01 79#define NCI_RF_PROTOCOL_T2T 0x02 80#define NCI_RF_PROTOCOL_T3T 0x03 81#define NCI_RF_PROTOCOL_ISO_DEP 0x04 82#define NCI_RF_PROTOCOL_NFC_DEP 0x05 83 84/* NCI RF Interfaces */ | 91/* NCI RF Protocols */ 92#define NCI_RF_PROTOCOL_UNKNOWN 0x00 93#define NCI_RF_PROTOCOL_T1T 0x01 94#define NCI_RF_PROTOCOL_T2T 0x02 95#define NCI_RF_PROTOCOL_T3T 0x03 96#define NCI_RF_PROTOCOL_ISO_DEP 0x04 97#define NCI_RF_PROTOCOL_NFC_DEP 0x05 98 99/* NCI RF Interfaces */ |
85#define NCI_RF_INTERFACE_RFU 0x00 86#define NCI_RF_INTERFACE_FRAME 0x01 87#define NCI_RF_INTERFACE_ISO_DEP 0x02 88#define NCI_RF_INTERFACE_NFC_DEP 0x03 | 100#define NCI_RF_INTERFACE_NFCEE_DIRECT 0x00 101#define NCI_RF_INTERFACE_FRAME 0x01 102#define NCI_RF_INTERFACE_ISO_DEP 0x02 103#define NCI_RF_INTERFACE_NFC_DEP 0x03 |
89 | 104 |
105/* NCI Reset types */ 106#define NCI_RESET_TYPE_KEEP_CONFIG 0x00 107#define NCI_RESET_TYPE_RESET_CONFIG 0x01 108 109/* NCI Static RF connection ID */ 110#define NCI_STATIC_RF_CONN_ID 0x00 111 112/* NCI Data Flow Control */ 113#define NCI_DATA_FLOW_CONTROL_NOT_USED 0xff 114 |
|
90/* NCI RF_DISCOVER_MAP_CMD modes */ 91#define NCI_DISC_MAP_MODE_POLL 0x01 92#define NCI_DISC_MAP_MODE_LISTEN 0x02 | 115/* NCI RF_DISCOVER_MAP_CMD modes */ 116#define NCI_DISC_MAP_MODE_POLL 0x01 117#define NCI_DISC_MAP_MODE_LISTEN 0x02 |
93#define NCI_DISC_MAP_MODE_BOTH 0x03 | |
94 | 118 |
95/* NCI Discovery Types */ 96#define NCI_DISCOVERY_TYPE_POLL_A_PASSIVE 0x00 97#define NCI_DISCOVERY_TYPE_POLL_B_PASSIVE 0x01 98#define NCI_DISCOVERY_TYPE_POLL_F_PASSIVE 0x02 99#define NCI_DISCOVERY_TYPE_POLL_A_ACTIVE 0x03 100#define NCI_DISCOVERY_TYPE_POLL_F_ACTIVE 0x05 101#define NCI_DISCOVERY_TYPE_WAKEUP_A_PASSIVE 0x06 102#define NCI_DISCOVERY_TYPE_WAKEUP_B_PASSIVE 0x07 103#define NCI_DISCOVERY_TYPE_WAKEUP_A_ACTIVE 0x09 104#define NCI_DISCOVERY_TYPE_LISTEN_A_PASSIVE 0x80 105#define NCI_DISCOVERY_TYPE_LISTEN_B_PASSIVE 0x81 106#define NCI_DISCOVERY_TYPE_LISTEN_F_PASSIVE 0x82 107#define NCI_DISCOVERY_TYPE_LISTEN_A_ACTIVE 0x83 108#define NCI_DISCOVERY_TYPE_LISTEN_F_ACTIVE 0x85 109 | |
110/* NCI Deactivation Type */ | 119/* NCI Deactivation Type */ |
111#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00 112#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01 113#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02 114#define NCI_DEACTIVATE_TYPE_RF_LINK_LOSS 0x03 115#define NCI_DEACTIVATE_TYPE_DISCOVERY_ERROR 0x04 | 120#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00 121#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01 122#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02 123#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03 |
116 117/* Message Type (MT) */ 118#define NCI_MT_DATA_PKT 0x00 119#define NCI_MT_CMD_PKT 0x01 120#define NCI_MT_RSP_PKT 0x02 121#define NCI_MT_NTF_PKT 0x03 122 123#define nci_mt(hdr) (((hdr)[0]>>5)&0x07) --- 15 unchanged lines hidden (view full) --- 139 140/* Payload Length */ 141#define nci_plen(hdr) (__u8)((hdr)[2]) 142 143/* Connection ID */ 144#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f) 145 146/* GID values */ | 124 125/* Message Type (MT) */ 126#define NCI_MT_DATA_PKT 0x00 127#define NCI_MT_CMD_PKT 0x01 128#define NCI_MT_RSP_PKT 0x02 129#define NCI_MT_NTF_PKT 0x03 130 131#define nci_mt(hdr) (((hdr)[0]>>5)&0x07) --- 15 unchanged lines hidden (view full) --- 147 148/* Payload Length */ 149#define nci_plen(hdr) (__u8)((hdr)[2]) 150 151/* Connection ID */ 152#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f) 153 154/* GID values */ |
147#define NCI_GID_CORE 0x0 148#define NCI_GID_RF_MGMT 0x1 149#define NCI_GID_NFCEE_MGMT 0x2 150#define NCI_GID_PROPRIETARY 0xf | 155#define NCI_GID_CORE 0x0 156#define NCI_GID_RF_MGMT 0x1 157#define NCI_GID_NFCEE_MGMT 0x2 158#define NCI_GID_PROPRIETARY 0xf |
151 152/* ---- NCI Packet structures ---- */ 153#define NCI_CTRL_HDR_SIZE 3 154#define NCI_DATA_HDR_SIZE 3 155 156struct nci_ctrl_hdr { 157 __u8 gid; /* MT & PBF & GID */ 158 __u8 oid; --- 5 unchanged lines hidden (view full) --- 164 __u8 rfu; 165 __u8 plen; 166} __packed; 167 168/* ------------------------ */ 169/* ----- NCI Commands ---- */ 170/* ------------------------ */ 171#define NCI_OP_CORE_RESET_CMD nci_opcode_pack(NCI_GID_CORE, 0x00) | 159 160/* ---- NCI Packet structures ---- */ 161#define NCI_CTRL_HDR_SIZE 3 162#define NCI_DATA_HDR_SIZE 3 163 164struct nci_ctrl_hdr { 165 __u8 gid; /* MT & PBF & GID */ 166 __u8 oid; --- 5 unchanged lines hidden (view full) --- 172 __u8 rfu; 173 __u8 plen; 174} __packed; 175 176/* ------------------------ */ 177/* ----- NCI Commands ---- */ 178/* ------------------------ */ 179#define NCI_OP_CORE_RESET_CMD nci_opcode_pack(NCI_GID_CORE, 0x00) |
180struct nci_core_reset_cmd { 181 __u8 reset_type; 182} __packed; |
|
172 173#define NCI_OP_CORE_INIT_CMD nci_opcode_pack(NCI_GID_CORE, 0x01) 174 | 183 184#define NCI_OP_CORE_INIT_CMD nci_opcode_pack(NCI_GID_CORE, 0x01) 185 |
175#define NCI_OP_CORE_SET_CONFIG_CMD nci_opcode_pack(NCI_GID_CORE, 0x02) 176 177#define NCI_OP_CORE_CONN_CREATE_CMD nci_opcode_pack(NCI_GID_CORE, 0x04) 178struct nci_core_conn_create_cmd { 179 __u8 target_handle; 180 __u8 num_target_specific_params; 181} __packed; 182 183#define NCI_OP_CORE_CONN_CLOSE_CMD nci_opcode_pack(NCI_GID_CORE, 0x06) 184 | |
185#define NCI_OP_RF_DISCOVER_MAP_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 186struct disc_map_config { 187 __u8 rf_protocol; 188 __u8 mode; | 186#define NCI_OP_RF_DISCOVER_MAP_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 187struct disc_map_config { 188 __u8 rf_protocol; 189 __u8 mode; |
189 __u8 rf_interface_type; | 190 __u8 rf_interface; |
190} __packed; 191 192struct nci_rf_disc_map_cmd { 193 __u8 num_mapping_configs; 194 struct disc_map_config mapping_configs 195 [NCI_MAX_NUM_MAPPING_CONFIGS]; 196} __packed; 197 198#define NCI_OP_RF_DISCOVER_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x03) 199struct disc_config { | 191} __packed; 192 193struct nci_rf_disc_map_cmd { 194 __u8 num_mapping_configs; 195 struct disc_map_config mapping_configs 196 [NCI_MAX_NUM_MAPPING_CONFIGS]; 197} __packed; 198 199#define NCI_OP_RF_DISCOVER_CMD nci_opcode_pack(NCI_GID_RF_MGMT, 0x03) 200struct disc_config { |
200 __u8 type; | 201 __u8 rf_tech_and_mode; |
201 __u8 frequency; 202} __packed; 203 204struct nci_rf_disc_cmd { 205 __u8 num_disc_configs; 206 struct disc_config disc_configs[NCI_MAX_NUM_RF_CONFIGS]; 207} __packed; 208 --- 4 unchanged lines hidden (view full) --- 213 214/* ----------------------- */ 215/* ---- NCI Responses ---- */ 216/* ----------------------- */ 217#define NCI_OP_CORE_RESET_RSP nci_opcode_pack(NCI_GID_CORE, 0x00) 218struct nci_core_reset_rsp { 219 __u8 status; 220 __u8 nci_ver; | 202 __u8 frequency; 203} __packed; 204 205struct nci_rf_disc_cmd { 206 __u8 num_disc_configs; 207 struct disc_config disc_configs[NCI_MAX_NUM_RF_CONFIGS]; 208} __packed; 209 --- 4 unchanged lines hidden (view full) --- 214 215/* ----------------------- */ 216/* ---- NCI Responses ---- */ 217/* ----------------------- */ 218#define NCI_OP_CORE_RESET_RSP nci_opcode_pack(NCI_GID_CORE, 0x00) 219struct nci_core_reset_rsp { 220 __u8 status; 221 __u8 nci_ver; |
222 __u8 config_status; |
|
221} __packed; 222 223#define NCI_OP_CORE_INIT_RSP nci_opcode_pack(NCI_GID_CORE, 0x01) 224struct nci_core_init_rsp_1 { 225 __u8 status; 226 __le32 nfcc_features; 227 __u8 num_supported_rf_interfaces; 228 __u8 supported_rf_interfaces[0]; /* variable size array */ 229 /* continuted in nci_core_init_rsp_2 */ 230} __packed; 231 232struct nci_core_init_rsp_2 { 233 __u8 max_logical_connections; 234 __le16 max_routing_table_size; | 223} __packed; 224 225#define NCI_OP_CORE_INIT_RSP nci_opcode_pack(NCI_GID_CORE, 0x01) 226struct nci_core_init_rsp_1 { 227 __u8 status; 228 __le32 nfcc_features; 229 __u8 num_supported_rf_interfaces; 230 __u8 supported_rf_interfaces[0]; /* variable size array */ 231 /* continuted in nci_core_init_rsp_2 */ 232} __packed; 233 234struct nci_core_init_rsp_2 { 235 __u8 max_logical_connections; 236 __le16 max_routing_table_size; |
235 __u8 max_control_packet_payload_length; 236 __le16 rf_sending_buffer_size; 237 __le16 rf_receiving_buffer_size; 238 __le16 manufacturer_id; | 237 __u8 max_ctrl_pkt_payload_len; 238 __le16 max_size_for_large_params; 239 __u8 manufact_id; 240 __le32 manufact_specific_info; |
239} __packed; 240 | 241} __packed; 242 |
241#define NCI_OP_CORE_SET_CONFIG_RSP nci_opcode_pack(NCI_GID_CORE, 0x02) 242 243#define NCI_OP_CORE_CONN_CREATE_RSP nci_opcode_pack(NCI_GID_CORE, 0x04) 244struct nci_core_conn_create_rsp { 245 __u8 status; 246 __u8 max_pkt_payload_size; 247 __u8 initial_num_credits; 248 __u8 conn_id; 249} __packed; 250 251#define NCI_OP_CORE_CONN_CLOSE_RSP nci_opcode_pack(NCI_GID_CORE, 0x06) 252 | |
253#define NCI_OP_RF_DISCOVER_MAP_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 254 255#define NCI_OP_RF_DISCOVER_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x03) 256 257#define NCI_OP_RF_DEACTIVATE_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x06) 258 259/* --------------------------- */ 260/* ---- NCI Notifications ---- */ 261/* --------------------------- */ | 243#define NCI_OP_RF_DISCOVER_MAP_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x00) 244 245#define NCI_OP_RF_DISCOVER_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x03) 246 247#define NCI_OP_RF_DEACTIVATE_RSP nci_opcode_pack(NCI_GID_RF_MGMT, 0x06) 248 249/* --------------------------- */ 250/* ---- NCI Notifications ---- */ 251/* --------------------------- */ |
262#define NCI_OP_CORE_CONN_CREDITS_NTF nci_opcode_pack(NCI_GID_CORE, 0x07) | 252#define NCI_OP_CORE_CONN_CREDITS_NTF nci_opcode_pack(NCI_GID_CORE, 0x06) |
263struct conn_credit_entry { 264 __u8 conn_id; 265 __u8 credits; 266} __packed; 267 268struct nci_core_conn_credit_ntf { 269 __u8 num_entries; 270 struct conn_credit_entry conn_entries[NCI_MAX_NUM_CONN]; 271} __packed; 272 | 253struct conn_credit_entry { 254 __u8 conn_id; 255 __u8 credits; 256} __packed; 257 258struct nci_core_conn_credit_ntf { 259 __u8 num_entries; 260 struct conn_credit_entry conn_entries[NCI_MAX_NUM_CONN]; 261} __packed; 262 |
273#define NCI_OP_RF_FIELD_INFO_NTF nci_opcode_pack(NCI_GID_CORE, 0x08) 274struct nci_rf_field_info_ntf { 275 __u8 rf_field_status; 276} __packed; 277 278#define NCI_OP_RF_ACTIVATE_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x05) | 263#define NCI_OP_RF_INTF_ACTIVATED_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x05) |
279struct rf_tech_specific_params_nfca_poll { 280 __u16 sens_res; 281 __u8 nfcid1_len; /* 0, 4, 7, or 10 Bytes */ 282 __u8 nfcid1[10]; 283 __u8 sel_res_len; /* 0 or 1 Bytes */ 284 __u8 sel_res; 285} __packed; 286 287struct activation_params_nfca_poll_iso_dep { 288 __u8 rats_res_len; 289 __u8 rats_res[20]; 290}; 291 | 264struct rf_tech_specific_params_nfca_poll { 265 __u16 sens_res; 266 __u8 nfcid1_len; /* 0, 4, 7, or 10 Bytes */ 267 __u8 nfcid1[10]; 268 __u8 sel_res_len; /* 0 or 1 Bytes */ 269 __u8 sel_res; 270} __packed; 271 272struct activation_params_nfca_poll_iso_dep { 273 __u8 rats_res_len; 274 __u8 rats_res[20]; 275}; 276 |
292struct nci_rf_activate_ntf { 293 __u8 target_handle; | 277struct nci_rf_intf_activated_ntf { 278 __u8 rf_discovery_id; 279 __u8 rf_interface; |
294 __u8 rf_protocol; | 280 __u8 rf_protocol; |
295 __u8 rf_tech_and_mode; | 281 __u8 activation_rf_tech_and_mode; 282 __u8 max_data_pkt_payload_size; 283 __u8 initial_num_credits; |
296 __u8 rf_tech_specific_params_len; 297 298 union { 299 struct rf_tech_specific_params_nfca_poll nfca_poll; 300 } rf_tech_specific_params; 301 | 284 __u8 rf_tech_specific_params_len; 285 286 union { 287 struct rf_tech_specific_params_nfca_poll nfca_poll; 288 } rf_tech_specific_params; 289 |
302 __u8 rf_interface_type; | 290 __u8 data_exch_rf_tech_and_mode; 291 __u8 data_exch_tx_bit_rate; 292 __u8 data_exch_rx_bit_rate; |
303 __u8 activation_params_len; 304 305 union { 306 struct activation_params_nfca_poll_iso_dep nfca_poll_iso_dep; 307 } activation_params; 308 309} __packed; 310 311#define NCI_OP_RF_DEACTIVATE_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x06) | 293 __u8 activation_params_len; 294 295 union { 296 struct activation_params_nfca_poll_iso_dep nfca_poll_iso_dep; 297 } activation_params; 298 299} __packed; 300 301#define NCI_OP_RF_DEACTIVATE_NTF nci_opcode_pack(NCI_GID_RF_MGMT, 0x06) |
302struct nci_rf_deactivate_ntf { 303 __u8 type; 304 __u8 reason; 305} __packed; |
|
312 313#endif /* __NCI_H */ | 306 307#endif /* __NCI_H */ |