root/include/linux/scc.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */
   3 #ifndef _SCC_H
   4 #define _SCC_H
   5 
   6 #include <uapi/linux/scc.h>
   7 
   8 
   9 enum {TX_OFF, TX_ON};   /* command for scc_key_trx() */
  10 
  11 /* Vector masks in RR2B */
  12 
  13 #define VECTOR_MASK     0x06
  14 #define TXINT           0x00
  15 #define EXINT           0x02
  16 #define RXINT           0x04
  17 #define SPINT           0x06
  18 
  19 #ifdef CONFIG_SCC_DELAY
  20 #define Inb(port)       inb_p(port)
  21 #define Outb(port, val) outb_p(val, port)
  22 #else
  23 #define Inb(port)       inb(port)
  24 #define Outb(port, val) outb(val, port)
  25 #endif
  26 
  27 /* SCC channel control structure for KISS */
  28 
  29 struct scc_kiss {
  30         unsigned char txdelay;          /* Transmit Delay 10 ms/cnt */
  31         unsigned char persist;          /* Persistence (0-255) as a % */
  32         unsigned char slottime;         /* Delay to wait on persistence hit */
  33         unsigned char tailtime;         /* Delay after last byte written */
  34         unsigned char fulldup;          /* Full Duplex mode 0=CSMA 1=DUP 2=ALWAYS KEYED */
  35         unsigned char waittime;         /* Waittime before any transmit attempt */
  36         unsigned int  maxkeyup;         /* Maximum time to transmit (seconds) */
  37         unsigned int  mintime;          /* Minimal offtime after MAXKEYUP timeout (seconds) */
  38         unsigned int  idletime;         /* Maximum idle time in ALWAYS KEYED mode (seconds) */
  39         unsigned int  maxdefer;         /* Timer for CSMA channel busy limit */
  40         unsigned char tx_inhibit;       /* Transmit is not allowed when set */  
  41         unsigned char group;            /* Group ID for AX.25 TX interlocking */
  42         unsigned char mode;             /* 'normal' or 'hwctrl' mode (unused) */
  43         unsigned char softdcd;          /* Use DPLL instead of DCD pin for carrier detect */
  44 };
  45 
  46 
  47 /* SCC channel structure */
  48 
  49 struct scc_channel {
  50         int init;                       /* channel exists? */
  51 
  52         struct net_device *dev;         /* link to device control structure */
  53         struct net_device_stats dev_stat;/* device statistics */
  54 
  55         char brand;                     /* manufacturer of the board */
  56         long clock;                     /* used clock */
  57 
  58         io_port ctrl;                   /* I/O address of CONTROL register */
  59         io_port data;                   /* I/O address of DATA register */
  60         io_port special;                /* I/O address of special function port */
  61         int irq;                        /* Number of Interrupt */
  62 
  63         char option;
  64         char enhanced;                  /* Enhanced SCC support */
  65 
  66         unsigned char wreg[16];         /* Copy of last written value in WRx */
  67         unsigned char status;           /* Copy of R0 at last external interrupt */
  68         unsigned char dcd;              /* DCD status */
  69 
  70         struct scc_kiss kiss;           /* control structure for KISS params */
  71         struct scc_stat stat;           /* statistical information */
  72         struct scc_modem modem;         /* modem information */
  73 
  74         struct sk_buff_head tx_queue;   /* next tx buffer */
  75         struct sk_buff *rx_buff;        /* pointer to frame currently received */
  76         struct sk_buff *tx_buff;        /* pointer to frame currently transmitted */
  77 
  78         /* Timer */
  79         struct timer_list tx_t;         /* tx timer for this channel */
  80         struct timer_list tx_wdog;      /* tx watchdogs */
  81         
  82         /* Channel lock */
  83         spinlock_t      lock;           /* Channel guard lock */
  84 };
  85 
  86 #endif /* defined(_SCC_H) */

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