NFC: Extend and fix the internal secure element API
[deliverable/linux.git] / include / net / nfc / nfc.h
index 5eb80bb3cbb233f02401cec1f1ee8103119f3da0..5187ec70b66a710fd34ca7d69938d23b8784d597 100644 (file)
@@ -68,8 +68,12 @@ struct nfc_ops {
                             void *cb_context);
        int (*tm_send)(struct nfc_dev *dev, struct sk_buff *skb);
        int (*check_presence)(struct nfc_dev *dev, struct nfc_target *target);
-       int (*enable_se)(struct nfc_dev *dev, u32 secure_element);
-       int (*disable_se)(struct nfc_dev *dev, u32 secure_element);
+       int (*fw_upload)(struct nfc_dev *dev, const char *firmware_name);
+
+       /* Secure Element API */
+       int (*discover_se)(struct nfc_dev *dev);
+       int (*enable_se)(struct nfc_dev *dev, u32 se_idx);
+       int (*disable_se)(struct nfc_dev *dev, u32 se_idx);
 };
 
 #define NFC_TARGET_IDX_ANY -1
@@ -83,6 +87,8 @@ struct nfc_target {
        u8 sel_res;
        u8 nfcid1_len;
        u8 nfcid1[NFC_NFCID1_MAXSIZE];
+       u8 nfcid2_len;
+       u8 nfcid2[NFC_NFCID2_MAXSIZE];
        u8 sensb_res_len;
        u8 sensb_res[NFC_SENSB_RES_MAXSIZE];
        u8 sensf_res_len;
@@ -104,6 +110,7 @@ struct nfc_dev {
        int targets_generation;
        struct device dev;
        bool dev_up;
+       bool fw_upload_in_progress;
        u8 rf_mode;
        bool polling;
        struct nfc_target *active_target;
@@ -111,7 +118,6 @@ struct nfc_dev {
        struct nfc_genl_data genl_data;
        u32 supported_protocols;
 
-       u32 supported_se;
        u32 active_se;
 
        int tx_headroom;
@@ -132,7 +138,6 @@ extern struct class nfc_class;
 
 struct nfc_dev *nfc_allocate_device(struct nfc_ops *ops,
                                    u32 supported_protocols,
-                                   u32 supported_se,
                                    int tx_headroom,
                                    int tx_tailroom);
 
This page took 0.033305 seconds and 5 git commands to generate.