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