Home | History | Annotate | Line # | Download | only in isa
essvar.h revision 1.1.2.1
      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.1.2.1       eeh ** @(#) $RCSfile: essvar.h,v $ $Revision: 1.1.2.1 $ (SHARK) $Date: 1998/08/08 03:06:47 $
     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.1  augustss 	int	irq;			/* IRQ line for this DMA channel */
     96  1.1.2.1       eeh 	int	ist;
     97      1.1  augustss 	void	*ih;			/* interrupt vectoring */
     98      1.1  augustss 	u_long	nintr;			/* number of interrupts taken */
     99      1.1  augustss 	void	(*intr)__P((void*));	/* ISR for DMA complete */
    100      1.1  augustss 	void	*arg;			/* arg for intr() */
    101      1.1  augustss 
    102      1.1  augustss 	/* Status information */
    103      1.1  augustss 	int	active;			/* boolean: channel in use? */
    104      1.1  augustss 	int	dmaflags;		/* value last passed to isa_dmastart */
    105      1.1  augustss 	caddr_t	dmaaddr;		/* value last passed to isa_dmastart */
    106      1.1  augustss 	vm_size_t	dmacnt;		/* value last passed to isa_dmastart */
    107      1.1  augustss 
    108      1.1  augustss 	u_int	channels;		/* 1:mono, 2:stereo */
    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.1.2.1       eeh int	essmatch __P((struct ess_softc *));
    147  1.1.2.1       eeh void	essattach __P((struct ess_softc *));
    148      1.1  augustss 
    149