summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/isa/mss.h
diff options
context:
space:
mode:
authorluigi <luigi@FreeBSD.org>1999-01-04 10:40:14 +0000
committerluigi <luigi@FreeBSD.org>1999-01-04 10:40:14 +0000
commitca0883293604a732bb1f0677db1554a154639595 (patch)
tree36320751487d949cc715752b6b6c4ef6d608d038 /sys/dev/sound/isa/mss.h
parent30ad5c00bb23aae0b44ff207fc1083fb62e5e3c4 (diff)
downloadFreeBSD-src-ca0883293604a732bb1f0677db1554a154639595.zip
FreeBSD-src-ca0883293604a732bb1f0677db1554a154639595.tar.gz
Bring in ad1816 patches from German Tischler.
Fix 'device not configured' problem that people were experiencing when only PCI devices are present.
Diffstat (limited to 'sys/dev/sound/isa/mss.h')
-rw-r--r--sys/dev/sound/isa/mss.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/sys/dev/sound/isa/mss.h b/sys/dev/sound/isa/mss.h
index 54efc3c..20ceaaf 100644
--- a/sys/dev/sound/isa/mss.h
+++ b/sys/dev/sound/isa/mss.h
@@ -105,6 +105,55 @@ ahead.
#define BD_F_IRQ_OK 0x0002
#define BD_F_TMR_RUN 0x0004
+/* AD1816 register macros */
+
+#define ad1816_ale(d) ((d)->io_base+0) /* indirect reg access */
+#define ad1816_int(d) ((d)->io_base+1) /* interupt status */
+#define ad1816_low(d) ((d)->io_base+2) /* indirect low byte */
+#define ad1816_high(d) ((d)->io_base+3) /* indirect high byte */
+/* unused */
+#define ad1816_pioD(d) ((d)->io_base+4) /* PIO debug */
+#define ad1816_pios(d) ((d)->io_base+5) /* PIO status */
+#define ad1816_piod(d) ((d)->io_base+6) /* PIO data */
+/* end of unused */
+/* values for playback/capture config:
+ bits: 0 enable/disable
+ 1 pio/dma
+ 2 stereo/mono
+ 3 companded/linearPCM
+ 4-5 format : 00 8bit linear (uncomp)
+ 00 8bit mulaw (comp)
+ 01 16bit le (uncomp)
+ 01 8bit alaw (comp)
+ 11 16bit be (uncomp)
+*/
+#define ad1816_play(d) ((d)->io_base+8) /* playback config */
+#define ad1816_capt(d) ((d)->io_base+9) /* capture config */
+
+#define AD1816_BUSY 0x80 /* chip is busy */
+#define AD1816_ALEMASK 0x3F /* mask for indirect adr. */
+/* unusud */
+#define AD1816_INTRSI 0x01 /* sb intr */
+#define AD1816_INTRGI 0x02 /* game intr */
+#define AD1816_INTRRI 0x04 /* ring intr */
+#define AD1816_INTRDI 0x08 /* dsp intr */
+#define AD1816_INTRVI 0x10 /* vol intr */
+#define AD1816_INTRTI 0x20 /* timer intr */
+/* used again */
+#define AD1816_INTRCI 0x40 /* capture intr */
+#define AD1816_INTRPI 0x80 /* playback intr */
+/* PIO stuff is not supplied here */
+/* playback / capture config */
+#define AD1816_ENABLE 0x01 /* enable pl/cp */
+#define AD1816_PIO 0x02 /* use pio */
+#define AD1816_STEREO 0x04
+#define AD1816_COMP 0x08 /* data is companded */
+#define AD1816_U8 0x00 /* 8 bit linear pcm */
+#define AD1816_MULAW 0x08 /* 8 bit mulaw */
+#define AD1816_ALAW 0x18 /* 8 bit alaw */
+#define AD1816_S16LE 0x10 /* 16 bit linear little endian */
+#define AD1816_S16BE 0x30 /* 16 bit linear big endian */
+#define AD1816_FORMASK 0x38 /* format mask */
/*
* sound/ad1848_mixer.h
@@ -225,6 +274,12 @@ MIX_NONE(SOUND_MIXER_LINE3),
SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | \
SOUND_MASK_IGAIN | SOUND_MASK_LINE1 )
+#define AD1816_REC_DEVICES \
+ (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD)
+
+#define AD1816_MIXER_DEVICES \
+ (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_SYNTH | \
+ SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN)
static u_short default_mixer_levels[SOUND_MIXER_NRDEVICES] = {
0x5a5a, /* Master Volume */
OpenPOWER on IntegriCloud