[BACK]Return to ueaglereg.h CVS log [TXT][DIR] Up to [local] / sys / dev / usb

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