Home | History | Annotate | Line # | Download | only in isa
essvar.h revision 1.5
      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.5   mycroft ** @(#) $RCSfile: essvar.h,v $ $Revision: 1.5 $ (SHARK) $Date: 1998/08/09 04:14: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.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.4  augustss 	u_int	channels;		/* 1:mono, 2:stereo */
    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 	void	*sc_ih;			/* interrupt vectoring */
    116  1.1  augustss 
    117  1.1  augustss 	int	sc_iobase;		/* I/O port base address */
    118  1.1  augustss 
    119  1.1  augustss 	u_short	sc_open;		/* reference count of open calls */
    120  1.1  augustss 
    121  1.1  augustss 	u_char	gain[ESS_NDEVS][2];	/* kept in input levels */
    122  1.1  augustss #define ESS_LEFT 0
    123  1.1  augustss #define ESS_RIGHT 1
    124  1.1  augustss 
    125  1.1  augustss 	u_int	out_port;		/* output port */
    126  1.1  augustss 	u_int	in_mask;		/* input ports */
    127  1.1  augustss 	u_int	in_port;		/* XXX needed for MI interface */
    128  1.1  augustss 
    129  1.1  augustss 	u_int	spkr_state;		/* non-null is on */
    130  1.1  augustss 
    131  1.1  augustss 	struct ess_audio_channel sc_in; /* audio channel for record */
    132  1.1  augustss 	struct ess_audio_channel sc_out;/* audio channel for playback */
    133  1.1  augustss 
    134  1.1  augustss 	u_int	sc_model;
    135  1.1  augustss #define ESS_UNSUPPORTED 0
    136  1.1  augustss #define ESS_1888	1
    137  1.1  augustss #define ESS_1887	2
    138  1.1  augustss #define ESS_888		3
    139  1.1  augustss 
    140  1.1  augustss 	u_int	sc_version;		/* Legacy ES688/ES1688 ID */
    141  1.1  augustss };
    142  1.1  augustss 
    143  1.2  augustss int	essmatch __P((struct ess_softc *));
    144  1.2  augustss void	essattach __P((struct ess_softc *));
    145  1.1  augustss 
    146