summaryrefslogtreecommitdiffstats
path: root/sys/i4b/tina-dd/i4b_tina_ioctl.h
blob: d51f16d731a4a8d3c7e9d399f49febb73f57b7a7 (plain)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
 *   Copyright (c) 1994, 1998 Hellmuth Michaelis. All rights reserved.
 *
 *   Based on code written by Stollmann GmbH, Hamburg. Many thanks to
 *   Christian Luehrs and Manfred Jung for docs, sources and answers!
 *
 *   Redistribution and use in source and binary forms, with or without
 *   modification, are permitted provided that the following conditions
 *   are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *   
 *   THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 *   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 *   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 *   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 *   FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 *   OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 *   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 *   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 *   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 *   SUCH DAMAGE.
 *
 *---------------------------------------------------------------------------
 *
 *	i4b_tina_ioctl.h - i4b Stollman Tina-dd ioctl header file
 *	---------------------------------------------------------
 *
 *	$Id: i4b_tina_ioctl.h,v 1.2 1998/12/05 18:06:20 hm Exp $
 *
 *	last edit-date: [Sat Dec  5 18:41:51 1998]
 *
 *---------------------------------------------------------------------------*/

#ifndef _I4B_TINA_IOCTL_H_
#define _I4B_TINA_IOCTL_H_

#define TINA_IOSIZE     8               /* 8 byte wide iospace occupied */

/*---------------------------------------------------------------------------*
 *	register offsets in i/o address space
 *---------------------------------------------------------------------------*/

#define CTRL_STAT	0		/* control & status	*/

#define ADDR_CNTL	1		/* address pointer low	*/
#define ADDR_CNTM	2		/* address pointer mid	*/
#define ADDR_CNTH	3		/* address pointer high	*/

#define DATA_LOW	4		/* data register low	*/
#define DATA_HIGH	5		/* data register high	*/

#define DATA_LOW_INC	6		/* data register low, post inc	*/
#define DATA_HIGH_INC	7		/* data register high, post inc	*/

/*---------------------------------------------------------------------------*
 *	status register (CTRL_STAT read access)
 *---------------------------------------------------------------------------*/

#define CR_INTC         0x80		/* irq FROM tina-dd TO pc active */
#define CR_INTP         0x40		/* irq FROM pc TO tina-dd active */
#define CR_INTPA        0x20		/* irq FROM pc TO tina-dd active */
#define CR_NMI          0x10		/* nmi FROM PC TO tina-dd active */
#define CR_FLASHLD      0x08		/* read of the FLASHLD-bit (n/c) */
#define CR_S2C          0x04		/* info bit */
#define CR_S1C          0x02		/* info bit */
#define CR_S0C          0x01		/* info bit */

/*---------------------------------------------------------------------------*
 *	control register (CTRL_STAT write access)
 *---------------------------------------------------------------------------*/

#define CR_CLR_INTC     0x80		/* clear irq on tina-dd */
#define CR_SET_INTP     0x40		/* trigger irq on tina-dd */
#define CR_RESET	0x20		/* reset tina-dd */
#define CR_SET_NMI      0x10		/* trigger nmi on tina-dd */
#define CR_SET_FLASHLD  0x08		/* activates pin FLASHLD (n/c) */
#define CR_S2P          0x04		/* info bit (not readable !) */
#define CR_S1P          0x02		/* info bit (not readable !) */
#define CR_S0P          0x01		/* info bit (not readable !) */

/*---------------------------------------------------------------------------*
 *	misc definitions in dual-ported mem on board of tina-dd
 *---------------------------------------------------------------------------*/

#define FW_SYSCB	0x200		/* address of FW SYSCB / MJ 300392 */
#define FW_SINFO_NAME	0x220		/* address of general info label   */

#define FW_HW_TYPE	0x224		/* address of hardware type byte:  */
#define  FW_HW_UNDEF	0x00		/* undefined ..                    */
#define  FW_HW_TINA_DD	0x10		/* TINA-dd			   */
#define  FW_HW_TINA_DS	0x20		/* TINA-ds 	(B channel/ser ?)  */
#define  FW_HW_TINA_D	0x30		/* TINA-d	(one B channel ?)  */
#define  FW_HW_TINA_DDM	0x40		/* TINA-dd with fax module	   */
#define  FW_HW_TINA_DDS	0x50		/* TINA-dd with fax/voice module   */
#define  FW_HW_SICCE	0x80		/* X.25 board			   */
#define  FW_HW_ASIC	0x01		/* ASIC version bit                */

#define FW_STAT		0x228		/* address of firmware status byte */
#define  FW_READY	0x20		/* firmware ready bit		   */
#define  FW_BOOTPRM_RDY	0x02		/* boot PROM ready		   */
#define  FW_UNDEF_0	0x00		/* undefined			   */
#define  FW_UNDEF_1	0xFF		/* undefined			   */

#define FW_SINFO_ID	"SYSI"		/* general info label for FW > 2.13*/
#define FW_SINFO_ID_LEN	4

#define FW_ADDR_PROFPTR 0x260		/* addr of ptr to board profile	   */

/*===========================================================================*
 *	Layer 0 - Hardware layer
 *===========================================================================*/

/* control and status register access */

#define ISDN_GETCSR	 _IOR('I', 1, unsigned char)	/* get csr */
#define ISDN_SETCSR	 _IOW('I', 2, unsigned char)	/* set csr */

/* dual ported ram access */

#define ISDN_GETBLK	_IOWR('I', 3, struct record)	/* get dpr record */
#define ISDN_SETBLK	 _IOW('I', 4, struct record)	/* set dpr record */

/*---------------------------------------------------------------------------*
 *	record structure for dual ported ram block rd/wr
 *---------------------------------------------------------------------------*/
struct record {
	unsigned int length;		/* length of data block */
	unsigned int addr;		/* address of mem on tina-dd board */
	unsigned char *data;		/* pointer to the datablock itself */
};

#endif /* _I4B_TINA_IOCTL_H_ */
OpenPOWER on IntegriCloud