1 /* $NetBSD: esovar.h,v 1.8 2007/01/12 00:47:51 kleink Exp $ */
4 * Copyright (c) 1999, 2000, 2004 Klaus J. Klein
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. The name of the author may not be used to endorse or promote products
16 * derived from this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 #ifndef _DEV_PCI_ESOVAR_H_
32 #define _DEV_PCI_ESOVAR_H_
35 * Definitions exported for the purpose of sharing with attached
42 /* Identifiers that have a gain value associated with them */
43 #define ESO_DAC_PLAY_VOL 0
44 #define ESO_MIC_PLAY_VOL 1
45 #define ESO_LINE_PLAY_VOL 2
46 #define ESO_SYNTH_PLAY_VOL 3
47 #define ESO_MONO_PLAY_VOL 4
48 #define ESO_CD_PLAY_VOL 5 /* AuxA */
49 #define ESO_AUXB_PLAY_VOL 6
51 #define ESO_MASTER_VOL 7
52 #define ESO_PCSPEAKER_VOL 8
53 #define ESO_SPATIALIZER 9
55 #define ESO_RECORD_VOL 10
56 #define ESO_DAC_REC_VOL 11
57 #define ESO_MIC_REC_VOL 12
58 #define ESO_LINE_REC_VOL 13
59 #define ESO_SYNTH_REC_VOL 14
60 #define ESO_MONO_REC_VOL 15
61 #define ESO_CD_REC_VOL 16
62 #define ESO_AUXB_REC_VOL 17
63 /* Used to keep software state */
64 #define ESO_NGAINDEVS (ESO_AUXB_REC_VOL + 1)
66 /* Other, non-gain related mixer identifiers */
67 #define ESO_RECORD_SOURCE 18
68 #define ESO_MONOOUT_SOURCE 19
69 #define ESO_MONOIN_BYPASS 20
70 #define ESO_RECORD_MONITOR 21
71 #define ESO_MIC_PREAMP 22
72 #define ESO_SPATIALIZER_ENABLE 23
73 #define ESO_MASTER_MUTE 24
75 /* Classes of the above */
76 #define ESO_INPUT_CLASS 25
77 #define ESO_OUTPUT_CLASS 26
78 #define ESO_MICROPHONE_CLASS 27
79 #define ESO_MONITOR_CLASS 28
80 #define ESO_RECORD_CLASS 29
81 #define ESO_MONOIN_CLASS 30
89 pci_intr_handle_t
* sc_ih
;
90 unsigned int sc_revision
; /* PCI Revision ID */
92 /* Optionally deferred configuration of Audio 1 DMAC I/O space */
93 struct pci_attach_args sc_pa
;
94 bus_size_t sc_vcsize
; /* original size of mapping */
97 bus_dma_tag_t sc_dmat
;
98 SLIST_HEAD(, eso_dma
) sc_dmas
;
100 /* I/O Base device */
101 bus_space_tag_t sc_iot
;
102 bus_space_handle_t sc_ioh
;
104 /* Audio/FM device */
105 bus_space_tag_t sc_sb_iot
;
106 bus_space_handle_t sc_sb_ioh
;
108 /* Audio 1 DMAC device */
109 unsigned int sc_dmac_configured
;
110 bus_space_tag_t sc_dmac_iot
;
111 bus_space_handle_t sc_dmac_ioh
;
114 bus_space_tag_t sc_mpu_iot
;
115 bus_space_handle_t sc_mpu_ioh
;
119 bus_space_tag_t sc_game_iot
;
120 bus_space_handle_t sc_game_ioh
;
122 /* MI audio interface: play/record interrupt callbacks and arguments */
123 void (*sc_pintr
)(void *);
125 void (*sc_rintr
)(void *);
128 /* Auto-initialize DMA transfer block drain timeouts, in ticks */
133 uint8_t sc_a2c2
; /* Audio 2 Control 2 */
136 uint8_t sc_gain
[ESO_NGAINDEVS
][2];
139 unsigned int sc_recsrc
; /* record source selection */
140 unsigned int sc_monooutsrc
; /* MONO_OUT source selection */
141 unsigned int sc_monoinbypass
;/* MONO_IN bypass enable */
142 unsigned int sc_recmon
; /* record monitor setting */
143 unsigned int sc_preamp
; /* microphone preamp */
144 unsigned int sc_spatializer
; /* spatializer enable */
145 unsigned int sc_mvmute
; /* master volume mute */
148 #endif /* !_DEV_PCI_ESOVAR_H_ */