[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     ! 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