FreeBSD kernel sound device code
ad1816.h
Go to the documentation of this file.
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$
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)
dev
sound
isa
ad1816.h
Generated by
1.9.3