linux/drivers/isdn/hisax/isar.h
<<
>>
Prefs
   1/* $Id: isar.h,v 1.11.2.2 2004/01/12 22:52:27 keil Exp $
   2 *
   3 * ISAR (Siemens PSB 7110) specific defines
   4 *
   5 * Author       Karsten Keil
   6 * Copyright    by Karsten Keil      <keil@isdn4linux.de>
   7 * 
   8 * This software may be used and distributed according to the terms
   9 * of the GNU General Public License, incorporated herein by reference.
  10 *
  11 */
  12 
  13#define ISAR_IRQMSK     0x04
  14#define ISAR_IRQSTA     0x04
  15#define ISAR_IRQBIT     0x75
  16#define ISAR_CTRL_H     0x61
  17#define ISAR_CTRL_L     0x60
  18#define ISAR_IIS        0x58
  19#define ISAR_IIA        0x58
  20#define ISAR_HIS        0x50
  21#define ISAR_HIA        0x50
  22#define ISAR_MBOX       0x4c
  23#define ISAR_WADR       0x4a
  24#define ISAR_RADR       0x48 
  25
  26#define ISAR_HIS_VNR            0x14
  27#define ISAR_HIS_DKEY           0x02
  28#define ISAR_HIS_FIRM           0x1e
  29#define ISAR_HIS_STDSP          0x08
  30#define ISAR_HIS_DIAG           0x05
  31#define ISAR_HIS_WAITSTATE      0x27
  32#define ISAR_HIS_TIMERIRQ       0x25
  33#define ISAR_HIS_P0CFG          0x3c
  34#define ISAR_HIS_P12CFG         0x24
  35#define ISAR_HIS_SARTCFG        0x25    
  36#define ISAR_HIS_PUMPCFG        0x26    
  37#define ISAR_HIS_PUMPCTRL       0x2a    
  38#define ISAR_HIS_IOM2CFG        0x27
  39#define ISAR_HIS_IOM2REQ        0x07
  40#define ISAR_HIS_IOM2CTRL       0x2b
  41#define ISAR_HIS_BSTREQ         0x0c
  42#define ISAR_HIS_PSTREQ         0x0e
  43#define ISAR_HIS_SDATA          0x20
  44#define ISAR_HIS_DPS1           0x40
  45#define ISAR_HIS_DPS2           0x80
  46#define SET_DPS(x)              ((x<<6) & 0xc0)
  47
  48#define ISAR_CMD_TIMERIRQ_OFF   0x20
  49#define ISAR_CMD_TIMERIRQ_ON    0x21
  50
  51
  52#define ISAR_IIS_MSCMSD         0x3f
  53#define ISAR_IIS_VNR            0x15
  54#define ISAR_IIS_DKEY           0x03
  55#define ISAR_IIS_FIRM           0x1f
  56#define ISAR_IIS_STDSP          0x09
  57#define ISAR_IIS_DIAG           0x25
  58#define ISAR_IIS_GSTEV          0x00
  59#define ISAR_IIS_BSTEV          0x28
  60#define ISAR_IIS_BSTRSP         0x2c
  61#define ISAR_IIS_PSTRSP         0x2e
  62#define ISAR_IIS_PSTEV          0x2a
  63#define ISAR_IIS_IOM2RSP        0x27
  64#define ISAR_IIS_RDATA          0x20
  65#define ISAR_IIS_INVMSG         0x3f
  66
  67#define ISAR_CTRL_SWVER 0x10
  68#define ISAR_CTRL_STST  0x40
  69
  70#define ISAR_MSG_HWVER  {0x20, 0, 1}
  71
  72#define ISAR_DP1_USE    1
  73#define ISAR_DP2_USE    2
  74#define ISAR_RATE_REQ   3
  75
  76#define PMOD_DISABLE    0
  77#define PMOD_FAX        1
  78#define PMOD_DATAMODEM  2
  79#define PMOD_HALFDUPLEX 3
  80#define PMOD_V110       4
  81#define PMOD_DTMF       5
  82#define PMOD_DTMF_TRANS 6
  83#define PMOD_BYPASS     7
  84
  85#define PCTRL_ORIG      0x80
  86#define PV32P2_V23R     0x40
  87#define PV32P2_V22A     0x20
  88#define PV32P2_V22B     0x10
  89#define PV32P2_V22C     0x08
  90#define PV32P2_V21      0x02
  91#define PV32P2_BEL      0x01
  92
  93// LSB MSB in ISAR doc wrong !!! Arghhh
  94#define PV32P3_AMOD     0x80
  95#define PV32P3_V32B     0x02
  96#define PV32P3_V23B     0x01
  97#define PV32P4_48       0x11
  98#define PV32P5_48       0x05
  99#define PV32P4_UT48     0x11
 100#define PV32P5_UT48     0x0d
 101#define PV32P4_96       0x11
 102#define PV32P5_96       0x03
 103#define PV32P4_UT96     0x11
 104#define PV32P5_UT96     0x0f
 105#define PV32P4_B96      0x91
 106#define PV32P5_B96      0x0b
 107#define PV32P4_UTB96    0xd1
 108#define PV32P5_UTB96    0x0f
 109#define PV32P4_120      0xb1
 110#define PV32P5_120      0x09
 111#define PV32P4_UT120    0xf1
 112#define PV32P5_UT120    0x0f
 113#define PV32P4_144      0x99
 114#define PV32P5_144      0x09
 115#define PV32P4_UT144    0xf9
 116#define PV32P5_UT144    0x0f
 117#define PV32P6_CTN      0x01
 118#define PV32P6_ATN      0x02
 119
 120#define PFAXP2_CTN      0x01
 121#define PFAXP2_ATN      0x04
 122
 123#define PSEV_10MS_TIMER 0x02
 124#define PSEV_CON_ON     0x18
 125#define PSEV_CON_OFF    0x19
 126#define PSEV_V24_OFF    0x20
 127#define PSEV_CTS_ON     0x21
 128#define PSEV_CTS_OFF    0x22
 129#define PSEV_DCD_ON     0x23
 130#define PSEV_DCD_OFF    0x24
 131#define PSEV_DSR_ON     0x25
 132#define PSEV_DSR_OFF    0x26
 133#define PSEV_REM_RET    0xcc
 134#define PSEV_REM_REN    0xcd
 135#define PSEV_GSTN_CLR   0xd4
 136
 137#define PSEV_RSP_READY  0xbc
 138#define PSEV_LINE_TX_H  0xb3
 139#define PSEV_LINE_TX_B  0xb2
 140#define PSEV_LINE_RX_H  0xb1
 141#define PSEV_LINE_RX_B  0xb0
 142#define PSEV_RSP_CONN   0xb5
 143#define PSEV_RSP_DISC   0xb7
 144#define PSEV_RSP_FCERR  0xb9
 145#define PSEV_RSP_SILDET 0xbe
 146#define PSEV_RSP_SILOFF 0xab
 147#define PSEV_FLAGS_DET  0xba
 148
 149#define PCTRL_CMD_FTH   0xa7
 150#define PCTRL_CMD_FRH   0xa5
 151#define PCTRL_CMD_FTM   0xa8
 152#define PCTRL_CMD_FRM   0xa6
 153#define PCTRL_CMD_SILON 0xac
 154#define PCTRL_CMD_CONT  0xa2
 155#define PCTRL_CMD_ESC   0xa4
 156#define PCTRL_CMD_SILOFF 0xab
 157#define PCTRL_CMD_HALT  0xa9
 158
 159#define PCTRL_LOC_RET   0xcf
 160#define PCTRL_LOC_REN   0xce
 161
 162#define SMODE_DISABLE   0
 163#define SMODE_V14       2
 164#define SMODE_HDLC      3
 165#define SMODE_BINARY    4
 166#define SMODE_FSK_V14   5
 167
 168#define SCTRL_HDMC_BOTH 0x00
 169#define SCTRL_HDMC_DTX  0x80
 170#define SCTRL_HDMC_DRX  0x40
 171#define S_P1_OVSP       0x40
 172#define S_P1_SNP        0x20
 173#define S_P1_EOP        0x10
 174#define S_P1_EDP        0x08
 175#define S_P1_NSB        0x04
 176#define S_P1_CHS_8      0x03
 177#define S_P1_CHS_7      0x02
 178#define S_P1_CHS_6      0x01
 179#define S_P1_CHS_5      0x00
 180
 181#define S_P2_BFT_DEF    0x10
 182
 183#define IOM_CTRL_ENA    0x80
 184#define IOM_CTRL_NOPCM  0x00
 185#define IOM_CTRL_ALAW   0x02
 186#define IOM_CTRL_ULAW   0x04
 187#define IOM_CTRL_RCV    0x01
 188
 189#define IOM_P1_TXD      0x10
 190
 191#define HDLC_FED        0x40
 192#define HDLC_FSD        0x20
 193#define HDLC_FST        0x20
 194#define HDLC_ERROR      0x1c
 195#define HDLC_ERR_FAD    0x10
 196#define HDLC_ERR_RER    0x08
 197#define HDLC_ERR_CER    0x04
 198#define SART_NMD        0x01
 199
 200#define BSTAT_RDM0      0x1
 201#define BSTAT_RDM1      0x2
 202#define BSTAT_RDM2      0x4
 203#define BSTAT_RDM3      0x8
 204#define BSTEV_TBO       0x1f
 205#define BSTEV_RBO       0x2f
 206
 207/* FAX State Machine */
 208#define STFAX_NULL      0
 209#define STFAX_READY     1
 210#define STFAX_LINE      2
 211#define STFAX_CONT      3
 212#define STFAX_ACTIV     4
 213#define STFAX_ESCAPE    5
 214#define STFAX_SILDET    6
 215
 216#define ISDN_FAXPUMP_HALT       100
 217
 218extern int ISARVersion(struct IsdnCardState *cs, char *s);
 219extern void isar_int_main(struct IsdnCardState *cs);
 220extern void initisar(struct IsdnCardState *cs);
 221extern void isar_fill_fifo(struct BCState *bcs);
 222extern int isar_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic);
 223