Prepare RFID compilation in firmware mode
[librfid] / include / librfid / rfid_layer2_iso14443a.h
index 50a6f43..283e6b6 100644 (file)
@@ -2,8 +2,8 @@
 #define _RFID_ISO14443A_H
 
 enum rfid_14443a_opt {
-       RFID_OPT_14443A_SPEED_RX        = 0x00000001,
-       RFID_OPT_14443A_SPEED_TX        = 0x00000002,
+       RFID_OPT_14443A_SPEED_RX        = 0x00010001,
+       RFID_OPT_14443A_SPEED_TX        = 0x00010002,
 };
 
 enum rfid_14443_opt_speed {
@@ -33,7 +33,7 @@ struct iso14443a_atqa {
                 uid_size:2;
        u_int8_t proprietary:4,
                 rfu2:4;
-};
+} __attribute__((packed));
 
 #define ISO14443A_HLTA         0x5000
 
@@ -42,7 +42,7 @@ struct iso14443a_anticol_cmd {
        unsigned char           sel_code;
        unsigned char           nvb;
        unsigned char           uid_bits[5];
-};
+} __attribute__((packed));
 
 enum iso14443a_anticol_sel_code {
        ISO14443A_AC_SEL_CODE_CL1       = 0x93,
@@ -75,8 +75,16 @@ enum iso14443a_state {
        ISO14443A_STATE_SELECTED,
 };
 
+/* Section 6.1.2 values in usec, rounded up to next usec */
+#define ISO14443A_FDT_ANTICOL_LAST1    92      /* 1236 / fc = 91.15 usec */
+#define ISO14443A_FDT_ANTICOL_LAST0    87      /* 1172 / fc = 86.43 usec */
+
+#define ISO14443_CARRIER_FREQ  13560000
+#define ISO14443A_FDT_OTHER_LAST1(n)   (((n*128+84)*1000000)/ISO14443_CARRIER_FREQ)
+
+
 #include <librfid/rfid_layer2.h>
-struct rfid_layer2 rfid_layer2_iso14443a;
+extern const struct rfid_layer2 rfid_layer2_iso14443a;
 
 #endif /* __LIBRFID__ */