Home | History | Annotate | Line # | Download | only in isa
      1  1.6     elric /*	$NetBSD: ariareg.h,v 1.6 2009/10/27 23:04:41 elric Exp $	*/
      2  1.2   mycroft 
      3  1.6     elric /*-
      4  1.6     elric  * Copyright (c) 1995, 1996, 1998 The NetBSD Foundation, Inc.
      5  1.6     elric  * All rights reserved.
      6  1.6     elric  *
      7  1.6     elric  * This code is derived from software contributed to The NetBSD Foundation
      8  1.6     elric  * by Roland C. Dowdeswell.
      9  1.1  augustss  *
     10  1.1  augustss  * Redistribution and use in source and binary forms, with or without
     11  1.1  augustss  * modification, are permitted provided that the following conditions
     12  1.1  augustss  * are met:
     13  1.1  augustss  * 1. Redistributions of source code must retain the above copyright
     14  1.1  augustss  *    notice, this list of conditions and the following disclaimer.
     15  1.1  augustss  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.1  augustss  *    notice, this list of conditions and the following disclaimer in the
     17  1.1  augustss  *    documentation and/or other materials provided with the distribution.
     18  1.1  augustss  *
     19  1.6     elric  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20  1.6     elric  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21  1.6     elric  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22  1.6     elric  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23  1.6     elric  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24  1.6     elric  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25  1.6     elric  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26  1.6     elric  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27  1.6     elric  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28  1.6     elric  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29  1.6     elric  * POSSIBILITY OF SUCH DAMAGE.
     30  1.1  augustss  */
     31  1.1  augustss 
     32  1.1  augustss /*
     33  1.1  augustss  * Macros to detect valid hardware configuration data.
     34  1.1  augustss  */
     35  1.1  augustss #define ARIA_IRQ_VALID(irq)   ((irq) == 10 || (irq) == 11 || (irq) == 12)
     36  1.1  augustss #define ARIA_DRQ_VALID(chan)  ((chan) == 5 || (chan) == 6)
     37  1.1  augustss #define ARIA_BASE_VALID(base) ((base) == 0x290 || (base) == 0x280 || (base) == 0x2a0 || (base) == 0x2b0)
     38  1.1  augustss 
     39  1.1  augustss /*
     40  1.1  augustss  * Aria DSP ports
     41  1.1  augustss  *  (abrieviated ARIADSP_)
     42  1.1  augustss  */
     43  1.1  augustss 
     44  1.1  augustss #define	ARIADSP_NPORT		8
     45  1.1  augustss 
     46  1.1  augustss #define	ARIADSP_DSPDATA		0
     47  1.1  augustss #define ARIADSP_WRITE		0
     48  1.1  augustss #define	ARIADSP_STATUS		2
     49  1.1  augustss #define	ARIADSP_CONTROL		2
     50  1.1  augustss #define	ARIADSP_DMAADDRESS	4
     51  1.1  augustss #define	ARIADSP_DMADATA		6
     52  1.1  augustss 
     53  1.1  augustss /*
     54  1.1  augustss  * Aria DSP Addresses and the like...
     55  1.1  augustss  *  (abrieviated ARIAA_)
     56  1.1  augustss  */
     57  1.1  augustss 
     58  1.1  augustss #define ARIAA_HARDWARE_A	0x6050
     59  1.1  augustss #define	ARIAA_MODEL_A		0x60c3
     60  1.1  augustss #define ARIAA_PLAY_FIFO_A	0x6100
     61  1.1  augustss #define ARIAA_REC_FIFO_A	0x6101
     62  1.1  augustss #define ARIAA_TASK_A		0x6102
     63  1.1  augustss 
     64  1.1  augustss /*
     65  1.1  augustss  * DSP random values
     66  1.1  augustss  *  (abrieviated ARIAR_)
     67  1.1  augustss  */
     68  1.1  augustss 
     69  1.1  augustss #define ARIAR_PROMETHEUS_KLUDGE 0x0001
     70  1.1  augustss #define ARIAR_NPOLL		30000
     71  1.1  augustss #define ARIAR_OPEN_PLAY		0x0002
     72  1.1  augustss #define ARIAR_OPEN_RECORD	0x0001
     73  1.4      kent #define ARIAR_PLAY_CHAN		1
     74  1.1  augustss #define ARIAR_RECORD_CHAN       0
     75  1.1  augustss #define ARIAR_BUSY		0x8000
     76  1.1  augustss #define ARIAR_ARIA_SYNTH	0x0080
     77  1.4      kent #define ARIAR_SR22K		0x0040
     78  1.1  augustss #define ARIAR_DSPINTWR		0x0008
     79  1.1  augustss #define ARIAR_PCINTWR		0x0002
     80  1.1  augustss 
     81  1.1  augustss /*
     82  1.1  augustss  * Aria DSP Commands
     83  1.1  augustss  *  (abrieviated ARIADSPC_)
     84  1.1  augustss  */
     85  1.1  augustss 
     86  1.1  augustss #define ARIADSPC_SYSINIT	0x0000	/* Initialise system */
     87  1.1  augustss #define	ARIADSPC_FORMAT		0x0003	/* format (pcm8, pcm16, etc) */
     88  1.1  augustss #define ARIADSPC_MASTERVOLUME	0x0004
     89  1.1  augustss #define	ARIADSPC_BLOCKSIZE	0x0005
     90  1.1  augustss #define	ARIADSPC_MODE		0x0006
     91  1.1  augustss #define	ARIADSPC_CDVOLUME	0x0007
     92  1.1  augustss #define	ARIADSPC_MICVOLUME	0x0008
     93  1.1  augustss #define	ARIADSPC_MIXERCONFIG	0x0009
     94  1.3       wiz #define ARIADSPC_FORCEINTR	0x000a	/* Force an Interrupt */
     95  1.1  augustss #define ARIADSPC_TRANSCOMPLETE	0x0010	/* Transfer Complete */
     96  1.1  augustss #define ARIADSPC_START_PLAY	0x0011
     97  1.1  augustss #define ARIADSPC_STOP_PLAY	0x0012
     98  1.1  augustss #define ARIADSPC_CHAN_VOL	0x0013
     99  1.1  augustss #define ARIADSPC_CHAN_PAN	0x0014
    100  1.1  augustss #define ARIADSPC_START_REC	0x0015
    101  1.1  augustss #define ARIADSPC_STOP_REC	0x0016
    102  1.1  augustss #define ARIADSPC_DAPVOL		0x0017  /* Digital Audio Playback Vol */
    103  1.1  augustss #define ARIADSPC_ADCSOURCE	0x0030
    104  1.1  augustss #define ARIADSPC_ADCCONTROL	0x0031  /* Turn ADC off/on */
    105  1.1  augustss #define ARIADSPC_INPMONMODE	0x0032  /* Input Monitor Mode */
    106  1.1  augustss #define ARIADSPC_MASMONMODE	0x0033  /* Master Monitor Mode */
    107  1.1  augustss #define ARIADSPC_MIXERVOL	0x0034  /* Mixer Volumes */
    108  1.1  augustss #define ARIADSPC_TONE		0x0035  /* Tone controls */
    109  1.1  augustss #define	ARIADSPC_TERM		0xffff  /* End of Command */
    110  1.1  augustss 
    111  1.1  augustss /*
    112  1.1  augustss  * DSP values (for commands)
    113  1.1  augustss  *  (abrieviated ARIAV_)
    114  1.1  augustss  */
    115  1.1  augustss 
    116  1.1  augustss #define ARIAV_MODE_NO_SYNTH	0x0000	/* No synthesizer mode */
    117  1.1  augustss 
    118  1.1  augustss #define ARIAMIX_MIC_LVL		0
    119  1.1  augustss #define ARIAMIX_LINE_IN_LVL	1
    120  1.1  augustss #define ARIAMIX_CD_LVL		2
    121  1.1  augustss #define ARIAMIX_DAC_LVL		3
    122  1.1  augustss #define ARIAMIX_TEL_LVL		4
    123  1.1  augustss #define ARIAMIX_AUX_LVL		5
    124  1.1  augustss #define ARIAMIX_MASTER_LVL	6
    125  1.1  augustss #define ARIAMIX_MASTER_TREBLE	7
    126  1.1  augustss #define ARIAMIX_MASTER_BASS	8
    127  1.1  augustss #define ARIAMIX_RECORD_SOURCE	9
    128  1.1  augustss #define ARIAMIX_MIC_MUTE	10
    129  1.1  augustss #define ARIAMIX_LINE_IN_MUTE	11
    130  1.1  augustss #define ARIAMIX_CD_MUTE		12
    131  1.1  augustss #define ARIAMIX_DAC_MUTE	13
    132  1.1  augustss #define ARIAMIX_TEL_MUTE	14
    133  1.1  augustss #define ARIAMIX_AUX_MUTE	15
    134  1.1  augustss #define ARIAMIX_OUT_LVL		16
    135  1.1  augustss #define ARIAMIX_OUTPUT_CLASS	17
    136  1.1  augustss #define ARIAMIX_INPUT_CLASS	18
    137  1.1  augustss #define ARIAMIX_RECORD_CLASS	19
    138  1.4      kent #define ARIAMIX_EQ_CLASS	20
    139