configure.ac: add libusb/libusbx support (for xpp)
[dahdi/tools.git] / xpp / mpptalk_defs.h
1 #ifndef MPPTALK_DEFS_H
2 #define MPPTALK_DEFS_H
3 /*
4  * Written by Oron Peled <oron@actcom.co.il>
5  * Copyright (C) 2008,2009,2010 Xorcom
6  *
7  * All rights reserved.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  */
24
25 #include <xtalk_defs.h>
26 /*
27  * MPP - Managment Processor Protocol definitions
28  */
29
30 /*
31  * OP Codes:
32  * MSB of op signifies a reply from device
33  */
34 #define MPP_RENUM                       0x0B    /* Trigger USB renumeration */
35 #define MPP_EEPROM_SET                  0x0D
36
37 /* AB capabilities      */
38 #define MPP_CAPS_GET                    0x0E
39 #define MPP_CAPS_GET_REPLY              0x8E
40 #define MPP_CAPS_SET                    0x0F
41
42 #define MPP_DEV_SEND_START              0x05
43 #define MPP_DEV_SEND_SEG                0x07
44 #define MPP_DEV_SEND_END                0x09
45
46 /* Astribank Status     */
47 #define MPP_STATUS_GET                  0x11
48 #define MPP_STATUS_GET_REPLY            0x91
49 #define MPP_STATUS_GET_REPLY_V13        0x91    /* backward compat */
50
51 /* Get extra vendor information */
52 #define MPP_EXTRAINFO_GET               0x13
53 #define MPP_EXTRAINFO_GET_REPLY         0x93
54 #define MPP_EXTRAINFO_SET               0x15    /* Set extra vendor information */
55
56 #define MPP_EEPROM_BLK_RD               0x27
57 #define MPP_EEPROM_BLK_RD_REPLY         0xA7
58
59 #define MPP_SER_SEND                    0x37
60 #define MPP_SER_RECV                    0xB7
61
62 #define MPP_RESET                       0x45    /* Reset both FPGA and USB firmwares */
63 #define MPP_HALF_RESET                  0x47    /* Reset only FPGA firmware */
64
65 /* Twinstar */
66 #define MPP_TWS_WD_MODE_SET             0x31    /* Set watchdog off/on guard    */
67 #define MPP_TWS_WD_MODE_GET             0x32    /* Current watchdog mode        */
68 #define MPP_TWS_WD_MODE_GET_REPLY       0xB2    /* Current watchdog mode        */
69 #define MPP_TWS_PORT_SET                0x34    /* USB-[0/1]                    */
70 #define MPP_TWS_PORT_GET                0x35    /* USB-[0/1]                    */
71 #define MPP_TWS_PORT_GET_REPLY          0xB5    /* USB-[0/1]                    */
72 #define MPP_TWS_PWR_GET                 0x36    /* Power: bits -> USB ports     */
73 #define MPP_TWS_PWR_GET_REPLY           0xB6    /* Power: bits -> USB ports     */
74
75 /*
76  * Statuses
77  */
78 #define STAT_OK         0x00    /* acknowledges previous command        */
79 #define STAT_FAIL       0x01    /* Last command failed          */
80 #define STAT_RESET_FAIL 0x02    /* reset failed                         */
81 #define STAT_NODEST     0x03    /* No destination is selected           */
82 #define STAT_MISMATCH   0x04    /* Data mismatch                        */
83 #define STAT_NOACCESS   0x05    /* No access                            */
84 #define STAT_BAD_CMD    0x06    /* Bad command                          */
85 #define STAT_TOO_SHORT  0x07    /* Packet is too short                  */
86 #define STAT_ERROFFS    0x08    /* Offset error                         */
87 #define STAT_NOCODE     0x09    /* Source was not burned before         */
88 #define STAT_NO_LEEPROM 0x0A    /* Large EEPROM was not found           */
89 #define STAT_NO_EEPROM  0x0B    /* No EEPROM was found                  */
90 #define STAT_WRITE_FAIL 0x0C    /* Writing to device failed             */
91 #define STAT_FPGA_ERR   0x0D    /* FPGA error                           */
92 #define STAT_KEY_ERR    0x0E    /* Bad Capabilities Key                 */
93 #define STAT_NOCAPS_ERR 0x0F    /* No matching capability               */
94 #define STAT_NOPWR_ERR  0x10    /* No power on USB connector            */
95 #define STAT_CAPS_FPGA_ERR      0x11    /* Setting of the capabilities while FPGA is loaded */
96
97 /* EEPROM_QUERY: i2cs(ID1, ID0) */
98 enum eeprom_type {
99         EEPROM_TYPE_NONE        = 0,
100         EEPROM_TYPE_SMALL       = 1,
101         EEPROM_TYPE_LARGE       = 2,
102         EEPROM_TYPE_UNUSED      = 3,
103 };
104
105 enum dev_dest {
106         DEST_NONE       = 0x00,
107         DEST_FPGA       = 0x01,
108         DEST_EEPROM     = 0x02,
109 };
110
111 #define EXTRAINFO_SIZE  24
112
113 #endif  /* MPPTALK_DEFS_H */