Annotation of sys/dev/usb/ueaglereg.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: ueaglereg.h,v 1.3 2007/06/09 11:06:53 mbalmer Exp $ */
2:
3: /*-
4: * Copyright (c) 2003-2005
5: * Damien Bergamini <damien.bergamini@free.fr>
6: *
7: * Permission to use, copy, modify, and distribute this software for any
8: * purpose with or without fee is hereby granted, provided that the above
9: * copyright notice and this permission notice appear in all copies.
10: *
11: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18: */
19:
20: /* OPTN: default values from analog devices */
21: #ifndef UEAGLE_OPTN0
22: #define UEAGLE_OPTN0 0x80020066
23: #endif
24: #ifndef UEAGLE_OPTN2
25: #define UEAGLE_OPTN2 0x23700000
26: #endif
27: #ifndef UEAGLE_OPTN7
28: #define UEAGLE_OPTN7 0x02cd8044
29: #endif
30:
31: #define UEAGLE_CONFIG_NO 1
32:
33: #define UEAGLE_INTR_IFACE_NO 0
34: #define UEAGLE_US_IFACE_NO 1
35: #define UEAGLE_DS_IFACE_NO 2
36:
37: #define UEAGLE_ESISTR 4
38:
39: #define UEAGLE_TX_PIPE 0x02
40: #define UEAGLE_IDMA_PIPE 0x04
41: #define UEAGLE_INTR_PIPE 0x84
42: #define UEAGLE_RX_PIPE 0x88
43:
44: #define UEAGLE_REQUEST 0
45:
46: #define UEAGLE_SETBLOCK 0x0001
47: #define UEAGLE_SETMODE 0x0003
48: #define UEAGLE_SET2183DATA 0x0004
49:
50: #define UEAGLE_LOOPBACKOFF 0x0002
51: #define UEAGLE_LOOPBACKON 0x0003
52: #define UEAGLE_BOOTIDMA 0x0006
53: #define UEAGLE_STARTRESET 0x0007
54: #define UEAGLE_ENDRESET 0x0008
55: #define UEAGLE_SWAPMAILBOX 0x7fcd
56: #define UEAGLE_MPTXSTART 0x7fce
57: #define UEAGLE_MPTXMAILBOX 0x7fd6
58: #define UEAGLE_MPRXMAILBOX 0x7fdf
59:
60: /* block within a firmware page */
61: struct ueagle_block_info {
62: uWord wHdr;
63: #define UEAGLE_BLOCK_INFO_HDR 0xabcd
64:
65: uWord wAddress;
66: uWord wSize;
67: uWord wOvlOffset;
68: uWord wOvl; /* overlay */
69: uWord wLast;
70: } __packed;
71:
72: /* CMV (Configuration and Management Variable) */
73: struct ueagle_cmv {
74: uWord wPreamble;
75: #define UEAGLE_CMV_PREAMBLE 0x535c
76:
77: uByte bDst;
78: #define UEAGLE_HOST 0x01
79: #define UEAGLE_MODEM 0x10
80:
81: uByte bFunction;
82: #define UEAGLE_CR 0x10
83: #define UEAGLE_CW 0x11
84: #define UEAGLE_CR_ACK 0x12
85: #define UEAGLE_CW_ACK 0x13
86: #define UEAGLE_MODEMREADY 0x71
87:
88: uWord wIndex;
89: uDWord dwSymbolicAddress;
90: #define UEAGLE_MAKESA(a, b, c, d) ((c) << 24 | (d) << 16 | (a) << 8 | (b))
91: #define UEAGLE_CMV_CNTL UEAGLE_MAKESA('C', 'N', 'T', 'L')
92: #define UEAGLE_CMV_DIAG UEAGLE_MAKESA('D', 'I', 'A', 'G')
93: #define UEAGLE_CMV_INFO UEAGLE_MAKESA('I', 'N', 'F', 'O')
94: #define UEAGLE_CMV_OPTN UEAGLE_MAKESA('O', 'P', 'T', 'N')
95: #define UEAGLE_CMV_RATE UEAGLE_MAKESA('R', 'A', 'T', 'E')
96: #define UEAGLE_CMV_STAT UEAGLE_MAKESA('S', 'T', 'A', 'T')
97:
98: uWord wOffsetAddress;
99: uDWord dwData;
100: #define UGETDATA(w) ((w)[2] | (w)[3] << 8 | (w)[0] << 16 | (w)[1] << 24)
101: #define USETDATA(w, v) \
102: ((w)[2] = (uint8_t)(v), \
103: (w)[3] = (uint8_t)((v) >> 8), \
104: (w)[0] = (uint8_t)((v) >> 16), \
105: (w)[1] = (uint8_t)((v) >> 24))
106: } __packed;
107:
108: struct ueagle_swap {
109: uByte bPageNo;
110: uByte bOvl; /* overlay */
111: } __packed;
112:
113: struct ueagle_intr {
114: uByte bType;
115: uByte bNotification;
116: uWord wValue;
117: uWord wIndex;
118: uWord wLength;
119: uWord wInterrupt;
120: #define UEAGLE_INTR_SWAP 1
121: #define UEAGLE_INTR_CMV 2
122: } __packed;
123:
124: #define UEAGLE_INTR_MAXSIZE 28
CVSweb