~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/net/irda/toshoboe.h

Version: ~ [ 2.2.5 ] ~ [ 2.4.1 ] ~ [ 2.4.9 ] ~ [ 2.6.17.10 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*********************************************************************
  2  *                
  3  * Filename:      toshoboe.h
  4  * Version:       0.1
  5  * Description:   Driver for the Toshiba OBOE (or type-O)
  6  *                FIR Chipset. 
  7  * Status:        Experimental.
  8  * Author:        James McKenzie <james@fishsoup.dhs.org>
  9  * Created at:    Sat May 8  12:35:27 1999
 10  * 
 11  *     Copyright (c) 1999-2000 James McKenzie, All Rights Reserved.
 12  *      
 13  *     This program is free software; you can redistribute it and/or 
 14  *     modify it under the terms of the GNU General Public License as 
 15  *     published by the Free Software Foundation; either version 2 of 
 16  *     the License, or (at your option) any later version.
 17  *  
 18  *     Neither James McKenzie nor Cambridge University admit liability nor
 19  *     provide warranty for any of this software. This material is 
 20  *     provided "AS-IS" and at no charge.
 21  *
 22  *     Applicable Models : Libretto 100CT. and many more
 23  *
 24  ********************************************************************/
 25 
 26 #ifndef TOSHOBOE_H
 27 #define TOSHOBOE_H
 28 
 29 /* Registers */
 30 /*Receive and transmit task registers (read only) */
 31 #define OBOE_RCVT       (0x00+(self->base))
 32 #define OBOE_XMTT       (0x01+(self->base))
 33 #define OBOE_XMTT_OFFSET        0x40
 34 
 35 /*Page pointers to the TaskFile structure */
 36 #define OBOE_TFP2       (0x02+(self->base))
 37 #define OBOE_TFP0       (0x04+(self->base))
 38 #define OBOE_TFP1       (0x05+(self->base))
 39 
 40 /*Dunno */
 41 #define OBOE_REG_3      (0x03+(self->base))
 42 
 43 /*Number of tasks to use in Xmit and Recv queues */
 44 #define OBOE_NTR        (0x07+(self->base))
 45 #define OBOE_NTR_XMIT4  0x00
 46 #define OBOE_NTR_XMIT8  0x10
 47 #define OBOE_NTR_XMIT16 0x30
 48 #define OBOE_NTR_XMIT32 0x70
 49 #define OBOE_NTR_XMIT64 0xf0
 50 #define OBOE_NTR_RECV4  0x00
 51 #define OBOE_NTR_RECV8  0x01
 52 #define OBOE_NTR_RECV6  0x03
 53 #define OBOE_NTR_RECV32 0x07
 54 #define OBOE_NTR_RECV64 0x0f
 55 
 56 /* Dunno */
 57 #define OBOE_REG_9      (0x09+(self->base))
 58 
 59 /* Interrupt Status Register */
 60 #define OBOE_ISR        (0x0c+(self->base))
 61 #define OBOE_ISR_TXDONE 0x80
 62 #define OBOE_ISR_RXDONE 0x40
 63 #define OBOE_ISR_20     0x20
 64 #define OBOE_ISR_10     0x10
 65 #define OBOE_ISR_8      0x08         /*This is collision or parity or something */
 66 #define OBOE_ISR_4      0x08
 67 #define OBOE_ISR_2      0x08
 68 #define OBOE_ISR_1      0x08
 69 
 70 /*Dunno */
 71 #define OBOE_REG_D      (0x0d+(self->base))
 72 
 73 /*Register Lock Register */
 74 #define OBOE_LOCK       ((self->base)+0x0e)
 75 
 76 
 77 
 78 /*Speed control registers */
 79 #define OBOE_PMDL       (0x10+(self->base))
 80 #define OBOE_PMDL_SIR   0x18
 81 #define OBOE_PMDL_MIR   0xa0
 82 #define OBOE_PMDL_FIR   0x40
 83 
 84 #define OBOE_SMDL       (0x18+(self->base))
 85 #define OBOE_SMDL_SIR   0x20
 86 #define OBOE_SMDL_MIR   0x01
 87 #define OBOE_SMDL_FIR   0x0f
 88 
 89 #define OBOE_UDIV       (0x19+(self->base))
 90 
 91 /*Dunno */
 92 #define OBOE_REG_11     (0x11+(self->base))
 93 
 94 /*Chip Reset Register */
 95 #define OBOE_RST        (0x15+(self->base))
 96 #define OBOE_RST_WRAP   0x8
 97 
 98 /*Dunno */
 99 #define OBOE_REG_1A     (0x1a+(self->base))
100 #define OBOE_REG_1B     (0x1b+(self->base))
101 
102 /* The PCI ID of the OBOE chip */
103 #ifndef PCI_DEVICE_ID_FIR701
104 #define PCI_DEVICE_ID_FIR701    0x0701
105 #endif
106 
107 typedef unsigned int dword;
108 typedef unsigned short int word;
109 typedef unsigned char byte;
110 typedef dword Paddr;
111 
112 struct OboeTask
113   {
114     __u16 len;
115     __u8 unused;
116     __u8 control;
117     __u32 buffer;
118   };
119 
120 #define OBOE_NTASKS 64
121 
122 struct OboeTaskFile
123   {
124     struct OboeTask recv[OBOE_NTASKS];
125     struct OboeTask xmit[OBOE_NTASKS];
126   };
127 
128 #define OBOE_TASK_BUF_LEN (sizeof(struct OboeTaskFile) << 1)
129 
130 /*These set the number of slots in use */
131 #define TX_SLOTS        4
132 #define RX_SLOTS        4
133 
134 /* You need also to change this, toshiba uses 4,8 and 4,4 */
135 /* It makes no difference if you are only going to use ONETASK mode */
136 /* remember each buffer use XX_BUF_SZ more _PHYSICAL_ memory */
137 #define OBOE_NTR_VAL    (OBOE_NTR_XMIT4 | OBOE_NTR_RECV4)
138 
139 struct toshoboe_cb
140   {
141     struct net_device *netdev;      /* Yes! we are some kind of netdevice */
142     struct net_device_stats stats;
143 
144     struct irlap_cb    *irlap;  /* The link layer we are binded to */
145     struct qos_info     qos;    /* QoS capabilities for this device */
146 
147     chipio_t io;                /* IrDA controller information */
148 
149     __u32 flags;                /* Interface flags */
150     __u32 new_speed;
151 
152     struct pci_dev *pdev;       /*PCI device */
153     int base;                   /*IO base */
154     int txpending;              /*how many tx's are pending */
155     int txs, rxs;               /*Which slots are we at  */
156     void *taskfilebuf;          /*The unaligned taskfile buffer */
157     struct OboeTaskFile *taskfile;  /*The taskfile   */
158     void *xmit_bufs[TX_SLOTS];  /*The buffers   */
159     void *recv_bufs[RX_SLOTS];
160     int open;
161     int stopped;                /*Stopped by some or other APM stuff*/
162   };
163 
164 
165 #endif
166 
167 
168 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.