1 /*	$OpenBSD: wssvar.h,v 1.2 2002/03/14 01:26:57 millert Exp $	*/
2 /*	$NetBSD: wssvar.h,v 1.1 1998/01/19 22:18:25 augustss Exp $	*/
3 
4 /*
5  * Copyright (c) 1994 John Brezak
6  * Copyright (c) 1991-1993 Regents of the University of California.
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  * 3. All advertising materials mentioning features or use of this software
18  *    must display the following acknowledgement:
19  *	This product includes software developed by the Computer Systems
20  *	Engineering Group at Lawrence Berkeley Laboratory.
21  * 4. Neither the name of the University nor of the Laboratory may be used
22  *    to endorse or promote products derived from this software without
23  *    specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35  * SUCH DAMAGE.
36  *
37  */
38 
39 /*
40  * Mixer devices
41  */
42 #define WSS_MIC_IN_LVL		0
43 #define WSS_LINE_IN_LVL		1
44 #define WSS_DAC_LVL		2
45 #define WSS_REC_LVL		3
46 #define WSS_MON_LVL		4
47 #define WSS_MIC_IN_MUTE		5
48 #define WSS_LINE_IN_MUTE	6
49 #define WSS_DAC_MUTE		7
50 
51 #define WSS_RECORD_SOURCE	8
52 
53 /* Classes */
54 #define WSS_INPUT_CLASS		9
55 #define WSS_RECORD_CLASS	10
56 #define WSS_MONITOR_CLASS	11
57 
58 struct wss_softc {
59 	struct	device sc_dev;		/* base device */
60 	struct	isadev sc_id;		/* ISA device */
61 	void	*sc_ih;			/* interrupt vectoring */
62 	bus_space_tag_t sc_iot;		/* tag */
63 	bus_space_handle_t sc_ioh;	/* handle */
64 	isa_chipset_tag_t sc_ic;
65 
66 	struct  ad1848_softc sc_ad1848;
67 #define wss_irq    sc_ad1848.sc_irq
68 #define wss_drq    sc_ad1848.sc_drq
69 #define wss_recdrq sc_ad1848.sc_recdrq
70 
71 	int 	mic_mute, cd_mute, dac_mute;
72 
73 	int	mad_chip_type;		/* chip type if MAD emulation of WSS */
74 	int	mad_ioindex;
75 	bus_space_handle_t mad_ioh;	/* MAD handle */
76 	bus_space_handle_t mad_ioh1, mad_ioh2, mad_ioh3;
77 };
78 
79 void	wssattach(struct wss_softc *);
80 
81 u_int	mad_read(struct wss_softc *, int);
82 void	mad_write(struct wss_softc *, int, int);
83 void	madattach(struct wss_softc *);
84