root/dev/usb/ueaglereg.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    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

/* [<][>][^][v][top][bottom][index][help] */