From 91f920e0d37910c789528f3422dc904615f1a53c Mon Sep 17 00:00:00 2001 From: laforge Date: Sun, 23 Jul 2006 18:38:25 +0000 Subject: add support for new OpenPCD design git-svn-id: https://svn.gnumonks.org/trunk/librfid@1851 e0336214-984f-0b4b-a45f-81c69e1f0ede --- include/librfid/rfid_reader.h | 1 + include/librfid/rfid_reader_openpcd.h | 42 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 include/librfid/rfid_reader_openpcd.h (limited to 'include') diff --git a/include/librfid/rfid_reader.h b/include/librfid/rfid_reader.h index 695221d..f604852 100644 --- a/include/librfid/rfid_reader.h +++ b/include/librfid/rfid_reader.h @@ -48,6 +48,7 @@ struct rfid_reader { enum rfid_reader_id { RFID_READER_CM5121, RFID_READER_PEGODA, + RFID_READER_OPENPCD, }; struct rfid_reader_handle { diff --git a/include/librfid/rfid_reader_openpcd.h b/include/librfid/rfid_reader_openpcd.h new file mode 100644 index 0000000..3f8a071 --- /dev/null +++ b/include/librfid/rfid_reader_openpcd.h @@ -0,0 +1,42 @@ +#ifndef _OPENPCD_PROTO_H +#define _OPENPCD_PROTO_H + +/* This header file describes the USB protocol of the OpenPCD RFID reader */ + +#include + +struct openpcd_hdr { + u_int8_t cmd; /* command */ + u_int8_t flags; + u_int8_t reg; /* register */ + u_int8_t val; /* value (in case of write *) */ + u_int16_t len; + u_int16_t res; + u_int8_t data[0]; +} __attribute__((packed)); + +#define OPENPCD_REG_MAX 0x3f + +#define OPENPCD_CMD_WRITE_REG 0x01 +#define OPENPCD_CMD_WRITE_FIFO 0x02 +#define OPENPCD_CMD_WRITE_VFIFO 0x03 +#define OPENPCD_CMD_REG_BITS_CLEAR 0x04 +#define OPENPCD_CMD_REG_BITS_SET 0x05 + +#define OPENPCD_CMD_READ_REG 0x11 +#define OPENPCD_CMD_READ_FIFO 0x12 +#define OPENPCD_CMD_READ_VFIFO 0x13 + +#define OPENPCD_CMD_SET_LED 0x21 + +#define OPENPCD_CMD_IRQ 0x40 /* IRQ reported by RC632 */ + +#define OPENPCD_VENDOR_ID 0x2342 +#define OPENPCD_PRODUCT_ID 0x0001 +#define OPENPCD_OUT_EP 0x01 +#define OPENPCD_IN_EP 0x82 +#define OPENPCD_IRQ_EP 0x83 + +extern struct rfid_reader rfid_reader_openpcd; + +#endif -- cgit v1.2.3