summaryrefslogtreecommitdiff
path: root/sys/dev/isa/ariareg.h
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1996-05-04 13:29:47 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1996-05-04 13:29:47 +0000
commitca8fe7c9ba4f5e0927a78e3d78066ee40fa846f2 (patch)
tree6a2e38cbc0997183fc894ab46bb7a7d9bd374729 /sys/dev/isa/ariareg.h
parent3ab190d9a07c7fc06e8f7d3f5a4aa7eb038b5a84 (diff)
Driver for Aria-based sound cards; netbsd pr#2122; from roland@imrryr.org
Diffstat (limited to 'sys/dev/isa/ariareg.h')
-rw-r--r--sys/dev/isa/ariareg.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/sys/dev/isa/ariareg.h b/sys/dev/isa/ariareg.h
new file mode 100644
index 00000000000..14d1909b224
--- /dev/null
+++ b/sys/dev/isa/ariareg.h
@@ -0,0 +1,138 @@
+/* $OpenBSD: ariareg.h,v 1.1 1996/05/04 13:29:33 deraadt Exp $ */
+
+/*
+ * Copyright (c) 1995, 1996 Roland C. Dowdeswell. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Roland C. Dowdeswell.
+ * 4. The name of the authors may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Macros to detect valid hardware configuration data.
+ */
+#define ARIA_IRQ_VALID(irq) ((irq) == 10 || (irq) == 11 || (irq) == 12)
+#define ARIA_DRQ_VALID(chan) ((chan) == 5 || (chan) == 6)
+#define ARIA_BASE_VALID(base) ((base) == 0x290 || (base) == 0x280 || (base) == 0x2a0 || (base) == 0x2b0)
+
+/*
+ * Aria DSP ports
+ * (abrieviated ARIADSP_)
+ */
+
+#define ARIADSP_NPORT 8
+
+#define ARIADSP_DSPDATA 0
+#define ARIADSP_WRITE 0
+#define ARIADSP_STATUS 2
+#define ARIADSP_CONTROL 2
+#define ARIADSP_DMAADDRESS 4
+#define ARIADSP_DMADATA 6
+
+/*
+ * Aria DSP Addresses and the like...
+ * (abrieviated ARIAA_)
+ */
+
+#define ARIAA_HARDWARE_A 0x6050
+#define ARIAA_MODEL_A 0x60c3
+#define ARIAA_PLAY_FIFO_A 0x6100
+#define ARIAA_REC_FIFO_A 0x6101
+#define ARIAA_TASK_A 0x6102
+
+/*
+ * DSP random values
+ * (abrieviated ARIAR_)
+ */
+
+#define ARIAR_PROMETHEUS_KLUDGE 0x0001
+#define ARIAR_NPOLL 30000
+#define ARIAR_OPEN_PLAY 0x0002
+#define ARIAR_OPEN_RECORD 0x0001
+#define ARIAR_PLAY_CHAN 1
+#define ARIAR_RECORD_CHAN 0
+#define ARIAR_BUSY 0x8000
+#define ARIAR_ARIA_SYNTH 0x0080
+#define ARIAR_SR22K 0x0040
+#define ARIAR_DSPINTWR 0x0008
+#define ARIAR_PCINTWR 0x0002
+
+/*
+ * Aria DSP Commands
+ * (abrieviated ARIADSPC_)
+ */
+
+#define ARIADSPC_SYSINIT 0x0000 /* Initialise system */
+#define ARIADSPC_FORMAT 0x0003 /* format (pcm8, pcm16, etc) */
+#define ARIADSPC_MASTERVOLUME 0x0004
+#define ARIADSPC_BLOCKSIZE 0x0005
+#define ARIADSPC_MODE 0x0006
+#define ARIADSPC_CDVOLUME 0x0007
+#define ARIADSPC_MICVOLUME 0x0008
+#define ARIADSPC_MIXERCONFIG 0x0009
+#define ARIADSPC_FORCEINTR 0x000a /* Force an Interupt */
+#define ARIADSPC_TRANSCOMPLETE 0x0010 /* Transfer Complete */
+#define ARIADSPC_START_PLAY 0x0011
+#define ARIADSPC_STOP_PLAY 0x0012
+#define ARIADSPC_CHAN_VOL 0x0013
+#define ARIADSPC_CHAN_PAN 0x0014
+#define ARIADSPC_START_REC 0x0015
+#define ARIADSPC_STOP_REC 0x0016
+#define ARIADSPC_DAPVOL 0x0017 /* Digital Audio Playback Vol */
+#define ARIADSPC_ADCSOURCE 0x0030
+#define ARIADSPC_ADCCONTROL 0x0031 /* Turn ADC off/on */
+#define ARIADSPC_INPMONMODE 0x0032 /* Input Monitor Mode */
+#define ARIADSPC_MASMONMODE 0x0033 /* Master Monitor Mode */
+#define ARIADSPC_MIXERVOL 0x0034 /* Mixer Volumes */
+#define ARIADSPC_TONE 0x0035 /* Tone controls */
+#define ARIADSPC_TERM 0xffff /* End of Command */
+
+/*
+ * DSP values (for commands)
+ * (abrieviated ARIAV_)
+ */
+
+#define ARIAV_MODE_NO_SYNTH 0x0000 /* No synthesizer mode */
+
+#define ARIAMIX_MIC_LVL 0
+#define ARIAMIX_LINE_IN_LVL 1
+#define ARIAMIX_CD_LVL 2
+#define ARIAMIX_DAC_LVL 3
+#define ARIAMIX_TEL_LVL 4
+#define ARIAMIX_AUX_LVL 5
+#define ARIAMIX_MASTER_LVL 6
+#define ARIAMIX_MASTER_TREBLE 7
+#define ARIAMIX_MASTER_BASS 8
+#define ARIAMIX_RECORD_SOURCE 9
+#define ARIAMIX_MIC_MUTE 10
+#define ARIAMIX_LINE_IN_MUTE 11
+#define ARIAMIX_CD_MUTE 12
+#define ARIAMIX_DAC_MUTE 13
+#define ARIAMIX_TEL_MUTE 14
+#define ARIAMIX_AUX_MUTE 15
+#define ARIAMIX_OUT_LVL 16
+#define ARIAMIX_OUTPUT_CLASS 17
+#define ARIAMIX_INPUT_CLASS 18
+#define ARIAMIX_RECORD_CLASS 19
+#define ARIAMIX_EQ_CLASS 20