Deleted Added
full compact
via82c686.h (64439) via82c686.h (70346)
1/*-
2 * Copyright (c) 2000 The NetBSD Foundation, Inc.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to The NetBSD Foundation
6 * by Tyler C. Sarna.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by the NetBSD
19 * Foundation, Inc. and its contributors.
20 * 4. Neither the name of The NetBSD Foundation nor the names of its
21 * contributors may be used to endorse or promote products derived
22 * from this software without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
25 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
28 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *
1/*-
2 * Copyright (c) 2000 The NetBSD Foundation, Inc.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to The NetBSD Foundation
6 * by Tyler C. Sarna.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by the NetBSD
19 * Foundation, Inc. and its contributors.
20 * 4. Neither the name of The NetBSD Foundation nor the names of its
21 * contributors may be used to endorse or promote products derived
22 * from this software without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
25 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
28 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *
36 * $FreeBSD: head/sys/dev/sound/pci/via82c686.h 64439 2000-08-09 00:55:55Z cg $
36 * $FreeBSD: head/sys/dev/sound/pci/via82c686.h 70346 2000-12-25 02:49:28Z cg $
37 */
38
39#ifndef _VIA_H
40#define _VIA_H
41
42/*
43 * VIA Technologies VT82C686A Southbridge Audio Driver
44 *
45 * Documentation links:
46 *
47 * ftp://ftp.alsa-project.org/pub/manuals/via/686a.pdf
48 * ftp://ftp.alsa-project.org/pub/manuals/general/ac97r21.pdf
49 * ftp://ftp.alsa-project.org/pub/manuals/ad/AD1881_0.pdf (example AC'97 codec)
50 */
51
37 */
38
39#ifndef _VIA_H
40#define _VIA_H
41
42/*
43 * VIA Technologies VT82C686A Southbridge Audio Driver
44 *
45 * Documentation links:
46 *
47 * ftp://ftp.alsa-project.org/pub/manuals/via/686a.pdf
48 * ftp://ftp.alsa-project.org/pub/manuals/general/ac97r21.pdf
49 * ftp://ftp.alsa-project.org/pub/manuals/ad/AD1881_0.pdf (example AC'97 codec)
50 */
51
52struct via_dma_op {
53 u_int32_t ptr;
54 u_int32_t flags;
55#define VIA_DMAOP_EOL 0x80000000
56#define VIA_DMAOP_FLAG 0x40000000
57#define VIA_DMAOP_STOP 0x20000000
58#define VIA_DMAOP_COUNT(x) ((x)&0x00FFFFFF)
59};
60
61#define VIA_PCICONF_MISC 0x41
62#define VIA_PCICONF_ACLINKENAB 0x80 /* ac link enab */
63#define VIA_PCICONF_ACNOTRST 0x40 /* ~(ac reset) */
64#define VIA_PCICONF_ACSYNC 0x20 /* ac sync */
65#define VIA_PCICONF_ACVSR 0x08 /* var. samp. rate */
66#define VIA_PCICONF_ACSGD 0x04 /* SGD enab */
67#define VIA_PCICONF_ACFM 0x02 /* FM enab */
68#define VIA_PCICONF_ACSB 0x01 /* SB enab */
69#define VIA_PCICONF_FUNC_EN 0x42
70
71#define VIA_PLAY_STAT 0x00
72#define VIA_RECORD_STAT 0x10
73#define VIA_RPSTAT_INTR 0x03
74#define VIA_PLAY_CONTROL 0x01
75#define VIA_RECORD_CONTROL 0x11
76#define VIA_RPCTRL_START 0x80
77#define VIA_RPCTRL_TERMINATE 0x40
78#define VIA_PLAY_MODE 0x02
79#define VIA_RECORD_MODE 0x12
80#define VIA_RPMODE_INTR_FLAG 0x01
81#define VIA_RPMODE_INTR_EOL 0x02
82#define VIA_RPMODE_STEREO 0x10
83#define VIA_RPMODE_16BIT 0x20
84#define VIA_RPMODE_AUTOSTART 0x80
85#define VIA_PLAY_DMAOPS_BASE 0x04
86#define VIA_RECORD_DMAOPS_BASE 0x14
87#define VIA_PLAY_DMAOPS_COUNT 0x0C
88#define VIA_RECORD_DMAOPS_COUNT 0x1C
89
90#define VIA_CODEC_CTL 0x80
91#define VIA_CODEC_READ 0x00800000
92#define VIA_CODEC_BUSY 0x01000000
93#define VIA_CODEC_PRIVALID 0x02000000
94#define VIA_CODEC_INDEX(x) ((x)<<16)
95
96#define AC97_REG_EXT_AUDIO_ID 0x28
97#define AC97_CODEC_DOES_VRA 0x0001
98#define AC97_CODEC_DOES_MICVRA 0x0008
99#define AC97_REG_EXT_AUDIO_STAT 0x2A
100#define AC97_ENAB_VRA 0x0001
101#define AC97_ENAB_MICVRA 0x0008
102#define AC97_REG_EXT_DAC_RATE 0x2C
103#define AC97_REG_EXT_ADC_RATE 0x32
104
52#define VIA_PCICONF_MISC 0x41
53#define VIA_PCICONF_ACLINKENAB 0x80 /* ac link enab */
54#define VIA_PCICONF_ACNOTRST 0x40 /* ~(ac reset) */
55#define VIA_PCICONF_ACSYNC 0x20 /* ac sync */
56#define VIA_PCICONF_ACVSR 0x08 /* var. samp. rate */
57#define VIA_PCICONF_ACSGD 0x04 /* SGD enab */
58#define VIA_PCICONF_ACFM 0x02 /* FM enab */
59#define VIA_PCICONF_ACSB 0x01 /* SB enab */
60#define VIA_PCICONF_FUNC_EN 0x42
61
62#define VIA_PLAY_STAT 0x00
63#define VIA_RECORD_STAT 0x10
64#define VIA_RPSTAT_INTR 0x03
65#define VIA_PLAY_CONTROL 0x01
66#define VIA_RECORD_CONTROL 0x11
67#define VIA_RPCTRL_START 0x80
68#define VIA_RPCTRL_TERMINATE 0x40
69#define VIA_PLAY_MODE 0x02
70#define VIA_RECORD_MODE 0x12
71#define VIA_RPMODE_INTR_FLAG 0x01
72#define VIA_RPMODE_INTR_EOL 0x02
73#define VIA_RPMODE_STEREO 0x10
74#define VIA_RPMODE_16BIT 0x20
75#define VIA_RPMODE_AUTOSTART 0x80
76#define VIA_PLAY_DMAOPS_BASE 0x04
77#define VIA_RECORD_DMAOPS_BASE 0x14
78#define VIA_PLAY_DMAOPS_COUNT 0x0C
79#define VIA_RECORD_DMAOPS_COUNT 0x1C
80
81#define VIA_CODEC_CTL 0x80
82#define VIA_CODEC_READ 0x00800000
83#define VIA_CODEC_BUSY 0x01000000
84#define VIA_CODEC_PRIVALID 0x02000000
85#define VIA_CODEC_INDEX(x) ((x)<<16)
86
87#define AC97_REG_EXT_AUDIO_ID 0x28
88#define AC97_CODEC_DOES_VRA 0x0001
89#define AC97_CODEC_DOES_MICVRA 0x0008
90#define AC97_REG_EXT_AUDIO_STAT 0x2A
91#define AC97_ENAB_VRA 0x0001
92#define AC97_ENAB_MICVRA 0x0008
93#define AC97_REG_EXT_DAC_RATE 0x2C
94#define AC97_REG_EXT_ADC_RATE 0x32
95
105#define TIMEOUT 50
106#define VIA_BUFFSIZE 0x4000
107
108#endif /* _VIA_H */
96#endif /* _VIA_H */