initial checkin of harald welte's original librfid project
[rfid/librfid.git] / pegoda / pegoda.h
1 #ifndef _PEGODA_H
2 #define _PEGODA_H
3 /*
4  *  (C) 2005 by Harald Welte <laforge@gnumonks.org>
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License version 2 
8  *  as published by the Free Software Foundation
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 #define USB_VENDOR_PHILIPS      0x0742
21 #define USB_DEVICE_PEGODA       0xff01
22
23 /* header of a pegoda usb command packet */
24 struct pegoda_cmd_hdr {
25         u_int8_t seq;
26         u_int8_t cmd;
27         u_int16_t len;
28 };
29
30 enum {
31         PEGODA_CMD_WRITE_RC                     = 0x01,
32         PEGODA_CMD_READ_RC                      = 0x02,
33         PEGODA_CMD_EXCHANGE_BYTESTREAM          = 0x03,
34         PEGODA_CMD_WRITE_MULTIPLE               = 0x04,
35         PEGODA_CMD_READ_MULTIPLE                = 0x05,
36         PEGODA_CMD_READ_WORD                    = 0x06,
37
38         
39         PEGODA_CMD_PCD_CONFIG                   = 0x10,
40         PEGODA_CMD_PICC_REQUEST                 = 0x11,
41         PEGODA_CMD_PICC_ANTICOLL                = 0x12,
42         PEGODA_CMD_PICC_SELECT                  = 0x13,
43         PEGODA_CMD_PICC_AUTH                    = 0x14,
44         PEGODA_CMD_PICC_AUTH_E2                 = 0x15,
45         PEGODA_CMD_LOAD_KEY_E2                  = 0x17,
46         PEGODA_CMD_PICC_AUTH_KEY                = 0x18,
47         PEGODA_CMD_PICC_READ                    = 0x19,
48         PEGODA_CMD_PICC_WRITE                   = 0x1a,
49         PEGODA_CMD_PICC_VALUE                   = 0x1b,
50         PEGODA_CMD_PICC_VALUE_DEBIT             = 0x1c,
51         PEGODA_CMD_PICC_HALT                    = 0x1d,
52         PEGODA_CMD_PICC_WRITE4                  = 0x1e,
53         PEGODA_CMD_PICC_COMMON_WRITE            = 0x1f,
54
55         PEGODA_CMD_PCD_RF_RESET                 = 0x20,
56         PEGODA_CMD_PCD_RESET                    = 0x21,
57         PEGODA_CMD_PCD_GET_SNR                  = 0x22,
58         PEGODA_CMD_PCD_READ_E2                  = 0x23,
59         PEGODA_CMD_PCD_SET_TMO                  = 0x27,
60         PEGODA_CMD_PICC_COMMON_READ             = 0x28,
61         PEGODA_CMD_PCD_INITIALIZE_E2            = 0x29,
62         PEGODA_CMD_ACTIVE_ANTENNA_MASTER        = 0x2a,
63         PEGODA_CMD_ACTIVE_ANTENNA_SLAVE         = 0x2b,
64
65         PEGODA_CMD_HOST_TRANS_TMR_START         = 0x30,
66         PEGODA_CMD_HOST_TRANS_TMR_STOP          = 0x31,
67         PEGODA_CMD_HOST_GET_EXEC_TIME           = 0x32,
68
69         PEGODA_CMD_PICC_COMMON_REQUEST          = 0x40,
70         PEGODA_CMD_PICC_CASC_ANTICOLL           = 0x41,
71         PEGODA_CMD_PICC_CASC_SELECT             = 0x42,
72         PEGODA_CMD_PICC_ACTIVATE_IDLE           = 0x43,
73         PEGODA_CMD_PICC_ACTIVATE_WAKEUP         = 0x44,
74         PEGODA_CMD_PCD_SET_DEFAULT_ATTRIB       = 0x45,
75         PEGODA_CMD_PCD_SET_ATTRIB               = 0x46,
76         PEGODA_CMD_PCD_GET_ATTRIB               = 0x47,
77         PEGODA_CMD_PICC_EXCHANGE_BLOCK          = 0x48,
78         PEGODA_CMD_PICC_ACTIVATE_IDLE_LOOP      = 0x49,
79         PEGODA_CMD_PICC_ACTTIVATION             = 0x4a,
80         PEGODA_CMD_PCD_ENABLE_HIGH_BAUD_RATES   = 0x4b,
81
82         PEGODA_CMD_SWITCH_LED                   = 0x60,
83         PEGODA_CMD_TEST_FLASH_NR                = 0x61,
84         PEGODA_CMD_START_DOWNLOAD               = 0x62,
85         PEGODA_CMD_GET_FW_VERSION               = 0x63,
86         PEGODA_CMD_GET_RIC_VERSION              = 0x64,
87         PEGODA_CMD_ENABLE_DEBUG_PINS            = 0x65,
88         PEGODA_CMD_MIRROR_DATA                  = 0x66,
89         PEGODA_CMD_TEST_CMDS                    = 0x67,
90
91         PEGODA_CMD_TEST_PCD                     = 0x70,
92         PEGODA_CMD_TEST_PICC                    = 0x71,
93         PEGODA_CMD_GET_ONLINE_STATUS            = 0x72,
94
95         PEGODA_CMD_I1_PCD_CONFIG                = 0x80,
96         PEGODA_CMD_I1_INIT_STD_MODE             = 0x81,
97         PEGODA_CMD_I1_CALC_TSE_HASH             = 0x82,
98         PEGODA_CMD_I1_INIT_FAST_MODE            = 0x83,
99         PEGODA_CMD_I1_OUTPUT_READ               = 0x85,
100         PEGODA_CMD_I1_OUTPUT_ANTICOL_SELECT     = 0x86,
101         PEGODA_CMD_I1_OUTPUT_WRITE              = 0x87,
102         PEGODA_CMD_I1_OUTPUT_HALT               = 0x88,
103         PEGODA_CMD_I1_OUTPUT_EAS                = 0x89,
104         PEGODA_CMD_I1_RESET_QUIET               = 0x8a,
105         PEGODA_CMD_I1_PCD_RF_RESET              = 0x8b,
106         PEGODA_CMD_I1_SET_BIT_PHASE             = 0x8c,
107
108         PEGODA_CMD_I2_INIT_STD_MODE             = 0x90,
109         PEGODA_CMD_I2_INIT_FAST_MODE            = 0x91,
110         PEGODA_CMD_15693_READ_SM                = 0x92,
111         PEGODA_CMD_15693_INVENTORY              = 0x93,
112         PEGODA_CMD_15693_WRITE_SM               = 0x94,
113         PEGODA_CMD_15693_STAY_QUIET             = 0x95,
114         PEGODA_CMD_15693_LOCK_BLOCK             = 0x96,
115         PEGODA_CMD_15693_SELECT                 = 0x97,
116         PEGODA_CMD_15693_RESET_TO_READY         = 0x98,
117         PEGODA_CMD_15693_WRITE_AFI              = 0x99,
118         PEGODA_CMD_15693_LOCK_AFI               = 0x9a,
119         PEGODA_CMD_15693_WRITE_DSFID            = 0x9b,
120         PEGODA_CMD_15693_LOCK_DSFID             = 0x9c,
121         PEGODA_CMD_15693_GET_SYSTEM_INFO        = 0x9d,
122         PEGODA_CMD_15693_GET_MULTI_BLOCK_SEC    = 0x9e,
123         PEGODA_CMD_15693_INVENTORY_READ         = 0x9f,
124         PEGODA_CMD_15693_FAST_INVENTORY_READ    = 0xa0,
125         PEGODA_CMD_15693_SET_EAS                = 0xa1,
126         PEGODA_CMD_15693_RESET_EAS              = 0xa2,
127         PEGODA_CMD_15693_LOCK_EAS               = 0xa3,
128         PEGODA_CMD_15693_EAS_ALARM              = 0xa4,
129
130         PEGODA_CMD_PC_PCD_CONFIG                = 0xb0,
131         PEGODA_CMD_PC_BEGIN_ROUND               = 0xb1,
132         PEGODA_CMD_PC_WRITE                     = 0xb3,
133
134         PEGODA_CMD_UID_PCD_CONFIG               = 0xb8,
135         PEGODA_CMD_UID_BEGIN_ROUND              = 0xb9,
136         PEGODA_CMD_UID_WRITE                    = 0xba,
137         PEGODA_CMD_UID_DESTROY                  = 0xbb,
138 };
139
140 #endif