essvar.h revision 1.10 1 1.10 hubertf /* $NetBSD: essvar.h,v 1.10 1999/02/15 04:54:35 hubertf Exp $ */
2 1.1 augustss /*
3 1.1 augustss * Copyright 1997
4 1.1 augustss * Digital Equipment Corporation. All rights reserved.
5 1.1 augustss *
6 1.1 augustss * This software is furnished under license and may be used and
7 1.1 augustss * copied only in accordance with the following terms and conditions.
8 1.1 augustss * Subject to these conditions, you may download, copy, install,
9 1.1 augustss * use, modify and distribute this software in source and/or binary
10 1.1 augustss * form. No title or ownership is transferred hereby.
11 1.1 augustss *
12 1.1 augustss * 1) Any source code used, modified or distributed must reproduce
13 1.1 augustss * and retain this copyright notice and list of conditions as
14 1.1 augustss * they appear in the source file.
15 1.1 augustss *
16 1.1 augustss * 2) No right is granted to use any trade name, trademark, or logo of
17 1.1 augustss * Digital Equipment Corporation. Neither the "Digital Equipment
18 1.1 augustss * Corporation" name nor any trademark or logo of Digital Equipment
19 1.1 augustss * Corporation may be used to endorse or promote products derived
20 1.1 augustss * from this software without the prior written permission of
21 1.1 augustss * Digital Equipment Corporation.
22 1.1 augustss *
23 1.1 augustss * 3) This software is provided "AS-IS" and any express or implied
24 1.1 augustss * warranties, including but not limited to, any implied warranties
25 1.1 augustss * of merchantability, fitness for a particular purpose, or
26 1.1 augustss * non-infringement are disclaimed. In no event shall DIGITAL be
27 1.1 augustss * liable for any damages whatsoever, and in particular, DIGITAL
28 1.1 augustss * shall not be liable for special, indirect, consequential, or
29 1.1 augustss * incidental damages or damages for lost profits, loss of
30 1.1 augustss * revenue or loss of use, whether such damages arise in contract,
31 1.1 augustss * negligence, tort, under statute, in equity, at law or otherwise,
32 1.1 augustss * even if advised of the possibility of such damage.
33 1.1 augustss */
34 1.1 augustss
35 1.1 augustss /*
36 1.10 hubertf ** @(#) $RCSfile: essvar.h,v $ $Revision: 1.10 $ (SHARK) $Date: 1999/02/15 04:54:35 $
37 1.1 augustss **
38 1.1 augustss **++
39 1.1 augustss **
40 1.1 augustss ** essvar.h
41 1.1 augustss **
42 1.1 augustss ** FACILITY:
43 1.1 augustss **
44 1.1 augustss ** DIGITAL Network Appliance Reference Design (DNARD)
45 1.1 augustss **
46 1.1 augustss ** MODULE DESCRIPTION:
47 1.1 augustss **
48 1.1 augustss ** This module contains the structure definitions and function
49 1.1 augustss ** prototypes for the ESS Technologies 1887/888 sound chip
50 1.1 augustss ** driver.
51 1.1 augustss **
52 1.1 augustss ** AUTHORS:
53 1.1 augustss **
54 1.1 augustss ** Blair Fidler Software Engineering Australia
55 1.1 augustss ** Gold Coast, Australia.
56 1.1 augustss **
57 1.1 augustss ** CREATION DATE:
58 1.1 augustss **
59 1.1 augustss ** May 12, 1997.
60 1.1 augustss **
61 1.1 augustss ** MODIFICATION HISTORY:
62 1.1 augustss **
63 1.1 augustss **--
64 1.1 augustss */
65 1.1 augustss #define ESS_DAC_PLAY_VOL 0
66 1.1 augustss #define ESS_MIC_PLAY_VOL 1
67 1.1 augustss #define ESS_LINE_PLAY_VOL 2
68 1.1 augustss #define ESS_SYNTH_PLAY_VOL 3
69 1.1 augustss #define ESS_CD_PLAY_VOL 4
70 1.1 augustss #define ESS_AUXB_PLAY_VOL 5
71 1.1 augustss #define ESS_INPUT_CLASS 6
72 1.1 augustss
73 1.1 augustss #define ESS_MASTER_VOL 7
74 1.1 augustss #define ESS_PCSPEAKER_VOL 8
75 1.1 augustss #define ESS_OUTPUT_CLASS 9
76 1.1 augustss
77 1.1 augustss #define ESS_DAC_REC_VOL 10
78 1.1 augustss #define ESS_MIC_REC_VOL 11
79 1.1 augustss #define ESS_LINE_REC_VOL 12
80 1.1 augustss #define ESS_SYNTH_REC_VOL 13
81 1.1 augustss #define ESS_CD_REC_VOL 14
82 1.1 augustss #define ESS_AUXB_REC_VOL 15
83 1.1 augustss #define ESS_MIC_PREAMP 16
84 1.1 augustss #define ESS_RECORD_VOL 17
85 1.1 augustss #define ESS_RECORD_SOURCE 18
86 1.1 augustss #define ESS_RECORD_CLASS 19
87 1.1 augustss
88 1.1 augustss #define ESS_RECORD_MONITOR 20
89 1.1 augustss #define ESS_MONITOR_CLASS 21
90 1.1 augustss
91 1.1 augustss #define ESS_NDEVS 22
92 1.1 augustss
93 1.1 augustss struct ess_audio_channel
94 1.1 augustss {
95 1.1 augustss int drq; /* DMA channel */
96 1.4 augustss #define IS16BITDRQ(drq) ((drq) >= 4)
97 1.1 augustss int irq; /* IRQ line for this DMA channel */
98 1.2 augustss int ist;
99 1.1 augustss void *ih; /* interrupt vectoring */
100 1.1 augustss u_long nintr; /* number of interrupts taken */
101 1.1 augustss void (*intr)__P((void*)); /* ISR for DMA complete */
102 1.1 augustss void *arg; /* arg for intr() */
103 1.1 augustss
104 1.1 augustss /* Status information */
105 1.1 augustss int active; /* boolean: channel in use? */
106 1.1 augustss };
107 1.1 augustss
108 1.1 augustss struct ess_softc
109 1.1 augustss {
110 1.1 augustss struct device sc_dev; /* base device */
111 1.1 augustss struct isadev sc_id; /* ISA device */
112 1.1 augustss isa_chipset_tag_t sc_ic;
113 1.1 augustss bus_space_tag_t sc_iot; /* tag */
114 1.1 augustss bus_space_handle_t sc_ioh; /* handle */
115 1.1 augustss
116 1.1 augustss int sc_iobase; /* I/O port base address */
117 1.1 augustss
118 1.1 augustss u_short sc_open; /* reference count of open calls */
119 1.1 augustss
120 1.1 augustss u_char gain[ESS_NDEVS][2]; /* kept in input levels */
121 1.1 augustss #define ESS_LEFT 0
122 1.1 augustss #define ESS_RIGHT 1
123 1.1 augustss
124 1.1 augustss u_int out_port; /* output port */
125 1.1 augustss u_int in_mask; /* input ports */
126 1.1 augustss u_int in_port; /* XXX needed for MI interface */
127 1.1 augustss
128 1.1 augustss u_int spkr_state; /* non-null is on */
129 1.1 augustss
130 1.1 augustss struct ess_audio_channel sc_in; /* audio channel for record */
131 1.1 augustss struct ess_audio_channel sc_out;/* audio channel for playback */
132 1.1 augustss
133 1.1 augustss u_int sc_model;
134 1.1 augustss #define ESS_UNSUPPORTED 0
135 1.1 augustss #define ESS_1888 1
136 1.1 augustss #define ESS_1887 2
137 1.1 augustss #define ESS_888 3
138 1.1 augustss
139 1.1 augustss u_int sc_version; /* Legacy ES688/ES1688 ID */
140 1.1 augustss };
141 1.1 augustss
142 1.2 augustss int essmatch __P((struct ess_softc *));
143 1.2 augustss void essattach __P((struct ess_softc *));
144 1.1 augustss
145