blob: 4b98096a585826aea7f97cf51231ebf95c638871 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* $Id: jade.h,v 1.5.2.3 2004/01/14 16:04:48 keil Exp $
2 *
3 * JADE specific defines
4 *
5 * Author Roland Klabunde
6 * Copyright by Roland Klabunde <R.Klabunde@Berkom.de>
Joe Perches475be4d2012-02-19 19:52:38 -08007 *
Linus Torvalds1da177e2005-04-16 15:20:36 -07008 * 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/* All Registers original Siemens Spec */
14#ifndef __JADE_H__
15#define __JADE_H__
16
17/* Special registers for access to indirect accessible JADE regs */
18#define DIRECT_IO_JADE 0x0000 /* Jade direct io access area */
Joe Perches475be4d2012-02-19 19:52:38 -080019#define COMM_JADE 0x0040 /* Jade communication area */
Linus Torvalds1da177e2005-04-16 15:20:36 -070020
21/********************************************************************/
Joe Perches475be4d2012-02-19 19:52:38 -080022/* JADE-HDLC registers */
Linus Torvalds1da177e2005-04-16 15:20:36 -070023/********************************************************************/
Joe Perches475be4d2012-02-19 19:52:38 -080024#define jade_HDLC_RFIFO 0x00 /* R */
25#define jade_HDLC_XFIFO 0x00 /* W */
Linus Torvalds1da177e2005-04-16 15:20:36 -070026
Joe Perches475be4d2012-02-19 19:52:38 -080027#define jade_HDLC_STAR 0x20 /* R */
28#define jadeSTAR_XDOV 0x80
29#define jadeSTAR_XFW 0x40 /* Does not work*/
30#define jadeSTAR_XCEC 0x20
31#define jadeSTAR_RCEC 0x10
32#define jadeSTAR_BSY 0x08
33#define jadeSTAR_RNA 0x04
34#define jadeSTAR_STR 0x02
35#define jadeSTAR_STX 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Joe Perches475be4d2012-02-19 19:52:38 -080037#define jade_HDLC_XCMD 0x20 /* W */
38#define jadeXCMD_XF 0x80
39#define jadeXCMD_XME 0x40
40#define jadeXCMD_XRES 0x20
41#define jadeXCMD_STX 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -070042
Joe Perches475be4d2012-02-19 19:52:38 -080043#define jade_HDLC_RSTA 0x21 /* R */
44#define jadeRSTA_VFR 0x80
45#define jadeRSTA_RDO 0x40
46#define jadeRSTA_CRC 0x20
47#define jadeRSTA_RAB 0x10
48#define jadeRSTA_MASK 0xF0
Linus Torvalds1da177e2005-04-16 15:20:36 -070049
50#define jade_HDLC_MODE 0x22 /* RW*/
Joe Perches475be4d2012-02-19 19:52:38 -080051#define jadeMODE_TMO 0x80
52#define jadeMODE_RAC 0x40
53#define jadeMODE_XAC 0x20
54#define jadeMODE_TLP 0x10
55#define jadeMODE_ERFS 0x02
56#define jadeMODE_ETFS 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -070057
58#define jade_HDLC_RBCH 0x24 /* R */
59
Joe Perches475be4d2012-02-19 19:52:38 -080060#define jade_HDLC_RBCL 0x25 /* R */
61#define jade_HDLC_RCMD 0x25 /* W */
62#define jadeRCMD_RMC 0x80
63#define jadeRCMD_RRES 0x40
64#define jadeRCMD_RMD 0x20
65#define jadeRCMD_STR 0x02
Linus Torvalds1da177e2005-04-16 15:20:36 -070066
67#define jade_HDLC_CCR0 0x26 /* RW*/
Joe Perches475be4d2012-02-19 19:52:38 -080068#define jadeCCR0_PU 0x80
69#define jadeCCR0_ITF 0x40
70#define jadeCCR0_C32 0x20
71#define jadeCCR0_CRL 0x10
72#define jadeCCR0_RCRC 0x08
73#define jadeCCR0_XCRC 0x04
74#define jadeCCR0_RMSB 0x02
75#define jadeCCR0_XMSB 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -070076
77#define jade_HDLC_CCR1 0x27 /* RW*/
Joe Perches475be4d2012-02-19 19:52:38 -080078#define jadeCCR1_RCS0 0x80
79#define jadeCCR1_RCONT 0x40
80#define jadeCCR1_RFDIS 0x20
81#define jadeCCR1_XCS0 0x10
82#define jadeCCR1_XCONT 0x08
83#define jadeCCR1_XFDIS 0x04
Linus Torvalds1da177e2005-04-16 15:20:36 -070084
85#define jade_HDLC_TSAR 0x28 /* RW*/
86#define jade_HDLC_TSAX 0x29 /* RW*/
87#define jade_HDLC_RCCR 0x2A /* RW*/
88#define jade_HDLC_XCCR 0x2B /* RW*/
89
Joe Perches475be4d2012-02-19 19:52:38 -080090#define jade_HDLC_ISR 0x2C /* R */
91#define jade_HDLC_IMR 0x2C /* W */
92#define jadeISR_RME 0x80
93#define jadeISR_RPF 0x40
94#define jadeISR_RFO 0x20
95#define jadeISR_XPR 0x10
96#define jadeISR_XDU 0x08
97#define jadeISR_ALLS 0x04
Linus Torvalds1da177e2005-04-16 15:20:36 -070098
Joe Perches475be4d2012-02-19 19:52:38 -080099#define jade_INT 0x75
100#define jadeINT_HDLC1 0x02
101#define jadeINT_HDLC2 0x01
102#define jadeINT_DSP 0x04
103#define jade_INTR 0x70
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104
105/********************************************************************/
Joe Perches475be4d2012-02-19 19:52:38 -0800106/* Indirect accessible JADE registers of common interest */
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107/********************************************************************/
108#define jade_CHIPVERSIONNR 0x00 /* Does not work*/
109
Joe Perches475be4d2012-02-19 19:52:38 -0800110#define jade_HDLCCNTRACCESS 0x10
111#define jadeINDIRECT_HAH1 0x02
112#define jadeINDIRECT_HAH2 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -0700113
114#define jade_HDLC1SERRXPATH 0x1D
115#define jade_HDLC1SERTXPATH 0x1E
116#define jade_HDLC2SERRXPATH 0x1F
117#define jade_HDLC2SERTXPATH 0x20
Joe Perches475be4d2012-02-19 19:52:38 -0800118#define jadeINDIRECT_SLIN1 0x10
119#define jadeINDIRECT_SLIN0 0x08
120#define jadeINDIRECT_LMOD1 0x04
121#define jadeINDIRECT_LMOD0 0x02
122#define jadeINDIRECT_HHR 0x01
123#define jadeINDIRECT_HHX 0x01
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124
125#define jade_RXAUDIOCH1CFG 0x11
126#define jade_RXAUDIOCH2CFG 0x14
127#define jade_TXAUDIOCH1CFG 0x17
128#define jade_TXAUDIOCH2CFG 0x1A
129
130extern int JadeVersion(struct IsdnCardState *cs, char *s);
Linus Torvalds1da177e2005-04-16 15:20:36 -0700131extern void clear_pending_jade_ints(struct IsdnCardState *cs);
132extern void initjade(struct IsdnCardState *cs);
133
134#endif /* __JADE_H__ */