partial ISO15693 support (based on patch by Bjoern Kaiser)
[librfid] / src / rfid_reader_spidev.c
index e546380..b704e9b 100644 (file)
@@ -260,6 +260,15 @@ static int spidev_15693_init(struct rfid_reader_handle *rh)
        return rh->ah->asic->priv.rc632.fn.iso15693.init(rh->ah);
 }
 
+static int spidev_15693_transceive_ac(struct rfid_reader_handle *rh,
+                                     struct iso15693_anticol_cmd *acf,
+                                     unsigned char uuid[ISO15693_UID_LEN],
+                                     char *bit_of_col)
+{
+       return rh->ah->asic->priv.rc632.fn.iso15693.transceive_ac(
+                                       rh->ah, acf, uuid, bit_of_col);
+}
+
 static int
 spidev_mifare_setkey(struct rfid_reader_handle *rh, const u_int8_t * key)
 {
@@ -274,6 +283,11 @@ spidev_mifare_auth(struct rfid_reader_handle *rh, u_int8_t cmd,
                                                               cmd, serno,
                                                               block);
 }
+static int
+spidev_rf_power(struct rfid_reader_handle *rh, int on)
+{
+       return rh->ah->asic->priv.rc632.fn.rf_power(rh->ah, on);
+}
 
 static struct rfid_reader_handle *spidev_open(void *data)
 {
@@ -363,6 +377,7 @@ struct rfid_reader rfid_reader_spidev = {
        .id = RFID_READER_SPIDEV,
        .open = &spidev_open,
        .close = &spidev_close,
+       .rf_power = &spidev_rf_power,
        .transceive = &spidev_transceive,
        .l2_supported = (1 << RFID_LAYER2_ISO14443A) |
                        (1 << RFID_LAYER2_ISO14443B) |
@@ -381,6 +396,10 @@ struct rfid_reader rfid_reader_spidev = {
        .iso14443b = {
                      .init = &spidev_14443b_init,
        },
+       .iso15693 = {
+                    .init = &spidev_15693_init,
+                    .transceive_ac = &spidev_15693_transceive_ac,
+       },
        .mifare_classic = {
                .setkey = &spidev_mifare_setkey,
                .auth = &spidev_mifare_auth,