summaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax/icc.h
blob: f367df5d3669e6846c012dda3529342979b9bc20 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* $Id: icc.h,v 1.4.2.2 2004/01/12 22:52:26 keil Exp $
 *
 * ICC specific routines
 *
 * Author       Matt Henderson & Guy Ellis
 * Copyright    by Traverse Technologies Pty Ltd, www.travers.com.au
 *
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 * 1999.7.14 Initial implementation of routines for Siemens ISDN
 * Communication Controller PEB 2070 based on the ISAC routines
 * written by Karsten Keil.
 */

/* All Registers original Siemens Spec  */

#define ICC_MASK 0x20
#define ICC_ISTA 0x20
#define ICC_STAR 0x21
#define ICC_CMDR 0x21
#define ICC_EXIR 0x24
#define ICC_ADF2 0x39
#define ICC_SPCR 0x30
#define ICC_ADF1 0x38
#define ICC_CIR0 0x31
#define ICC_CIX0 0x31
#define ICC_CIR1 0x33
#define ICC_CIX1 0x33
#define ICC_STCR 0x37
#define ICC_MODE 0x22
#define ICC_RSTA 0x27
#define ICC_RBCL 0x25
#define ICC_RBCH 0x2A
#define ICC_TIMR 0x23
#define ICC_SQXR 0x3b
#define ICC_MOSR 0x3a
#define ICC_MOCR 0x3a
#define ICC_MOR0 0x32
#define ICC_MOX0 0x32
#define ICC_MOR1 0x34
#define ICC_MOX1 0x34

#define ICC_RBCH_XAC 0x80

#define ICC_CMD_TIM    0x0
#define ICC_CMD_RES    0x1
#define ICC_CMD_DU     0x3
#define ICC_CMD_EI1    0x4
#define ICC_CMD_SSP    0x5
#define ICC_CMD_DT     0x6
#define ICC_CMD_AR     0x8
#define ICC_CMD_ARL    0xA
#define ICC_CMD_AI     0xC
#define ICC_CMD_DI     0xF

#define ICC_IND_DR     0x0
#define ICC_IND_FJ     0x2
#define ICC_IND_EI1    0x4
#define ICC_IND_INT    0x6
#define ICC_IND_PU     0x7
#define ICC_IND_AR     0x8
#define ICC_IND_ARL    0xA
#define ICC_IND_AI     0xC
#define ICC_IND_AIL    0xE
#define ICC_IND_DC     0xF

extern void ICCVersion(struct IsdnCardState *cs, char *s);
extern void initicc(struct IsdnCardState *cs);
extern void icc_interrupt(struct IsdnCardState *cs, u_char val);
extern void clear_pending_icc_ints(struct IsdnCardState *cs);
extern void setup_icc(struct IsdnCardState *);