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