1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 1997 Luigi Rizzo
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 *
28 * $FreeBSD: releng/12.0/sys/dev/sound/isa/ad1816.h 326255 2017-11-27 14:52:40Z pfg $
29 */
30
31 /*
32 * This file contains information and macro definitions for
33 * the ad1816 chip
34 */
35
36 /* AD1816 register macros */
37
38 #define AD1816_ALE 0 /* indirect reg access */
39 #define AD1816_INT 1 /* interrupt status */
40 #define AD1816_LOW 2 /* indirect low byte */
41 #define AD1816_HIGH 3 /* indirect high byte */
42
43 #if 0
44 #define ad1816_pioD(d) ((d)->io_base+4) /* PIO debug */
45 #define ad1816_pios(d) ((d)->io_base+5) /* PIO status */
46 #define ad1816_piod(d) ((d)->io_base+6) /* PIO data */
47 #endif
48
49 /* values for playback/capture config:
50 bits: 0 enable/disable
51 1 pio/dma
52 2 stereo/mono
53 3 companded/linearPCM
54 4-5 format : 00 8bit linear (uncomp)
55 00 8bit mulaw (comp)
56 01 16bit le (uncomp)
57 01 8bit alaw (comp)
58 11 16bit be (uncomp)
59 */
60
61 #define AD1816_PLAY 8 /* playback config */
62 #define AD1816_CAPT 9 /* capture config */
63
64 #define AD1816_BUSY 0x80 /* chip is busy */
65 #define AD1816_ALEMASK 0x3F /* mask for indirect adr. */
66
67 #if 0
68 #define AD1816_INTRSI 0x01 /* sb intr */
69 #define AD1816_INTRGI 0x02 /* game intr */
70 #define AD1816_INTRRI 0x04 /* ring intr */
71 #define AD1816_INTRDI 0x08 /* dsp intr */
72 #define AD1816_INTRVI 0x10 /* vol intr */
73 #define AD1816_INTRTI 0x20 /* timer intr */
74 #endif
75
76 #define AD1816_INTRCI 0x40 /* capture intr */
77 #define AD1816_INTRPI 0x80 /* playback intr */
78 /* PIO stuff is not supplied here */
79 /* playback / capture config */
80 #define AD1816_ENABLE 0x01 /* enable pl/cp */
81 #define AD1816_PIO 0x02 /* use pio */
82 #define AD1816_STEREO 0x04
83 #define AD1816_COMP 0x08 /* data is companded */
84 #define AD1816_U8 0x00 /* 8 bit linear pcm */
85 #define AD1816_MULAW 0x08 /* 8 bit mulaw */
86 #define AD1816_ALAW 0x18 /* 8 bit alaw */
87 #define AD1816_S16LE 0x10 /* 16 bit linear little endian */
88 #define AD1816_S16BE 0x30 /* 16 bit linear big endian */
89 #define AD1816_FORMASK 0x38 /* format mask */
90
91 #define AD1816_REC_DEVICES \
92 (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD)
93
94 #define AD1816_MIXER_DEVICES \
95 (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_SYNTH | \
96 SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN)
97
Cache object: 9eda95ee1e5ae142d1ec2f63136911bf
|