aos/devices/ac97_ext_audio.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

116 lines
3.4 KiB
Plaintext

/*
* Copyright (c) 2007, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* ac97_ext_audio.dev
*
* DESCRIPTION: AC'97 Extended Audio Register Set
*
* Numbers in comments refer to the Intel Audio Codec '97 specification,
* revision 2.3 revision 1.0, April, 2002
*/
device ac97_ext_audio msbfirst ( io base ) "AC97 Extended Audio" {
// 5.8.1
constants rev_id "Revison ID" {
r21 = 0 "Rev. 2.1 or earlier";
r22 = 1 "Rev. 2.2";
r23 = 2 "Rev. 2.3";
unk = 3 "Unknown";
};
register eaid ro io( base, 0x28) "Extended audio id" {
id 2 "Id";
_ 2 rsvd;
rev 2 type(rev_id) "Revision ID";
amap 1 "Slot/DAC mapping support";
ldac 1 "PCM LFE DAC support";
sdac 1 "PCM Surround L&R DACs support";
cdac 1 "PCM Center DAC support";
dsa 2 rw "DAC slot assignment";
vrm 1 "Variable rate mic support";
spdif 1 "SPDIF transmitter support";
dra 1 "Double-rate PCM audio support";
vra 1 "Variable rate PCM audion support";
};
// 5.8.2
register easc rw io( base, 0x2a ) "Extended audio status and control" {
vcfg 1 "S/PDIF validity flag";
prl 1 "MIC ADC off";
prk 1 "PCM LFE DACs off";
prj 1 "PCM surround DACs off";
pri 1 "PCM center DAC off";
spcv 1 ro "S/PDIF configuration valid";
madc 1 ro "Mic ADC ready";
ldac 1 ro "PCM LFE DAC ready";
sdac 1 ro "PCM Surround L&R DACs ready";
cdac 1 ro "PCM Center DAC ready";
dsa 2 "DAC slot assignment";
vrm 1 "Variable rate mic enable";
spdif 1 "SPDIF transmitter enable";
dra 1 "Double-rate PCM audio enable";
vra 1 "Variable rate PCM audion enable";
};
// 5.8.3
register front_sr rw io( base, 0x2c) "PCM front DAC rate" type(uint16);
register surr_sr rw io( base, 0x2e) "PCM surround DAC rate" type(uint16);
register lfe_sr rw io( base, 0x30) "PCM LFE DAC rate" type(uint16);
register lr_sr rw io( base, 0x32) "PCM left/right DAC rate" type(uint16);
register mic_sr rw io( base, 0x34) "MIC ADC rate" type(uint16);
// 5.8.4
register center_vc rw io( base, 0x36) "Center/LFE volume" {
lfe_mute 1 "LFE mute";
_ 1 rsvd;
lfe_vol 6 "LFE volume";
cntr_mute 1 "Center mute";
_ 1 rsvd;
cntr_vol 6 "Center volume";
};
register surr_vc rw io( base, 0x38) "Surround volume" {
left_mute 1 "Left mute";
_ 1 rsvd;
left_vol 6 "Left volume";
right_mute 1 "Right mute";
_ 1 rsvd;
right_vol 6 "Right volume";
};
// 5.8.5
constants spdif_sr "S/PDIF sample rate" {
sr_441 = 0 "44.1kHz";
sr_rsvd = 0 "reserved";
sr_48 = 0 "48kHz";
sr_32 = 0 "32Hz";
};
register spdif_cntl rw io( base, 0x3a) "S/PDIF control" {
v 1 "validity";
drs 1 "Double rate";
spsr 2 type(spdif_sr) "Sample rate";
l 1 "General level";
cc 7 "Category code";
pre 1 "Preemphasis";
copy 1 "Copyright";
notaudio 1 "Non-PCM format";
pro 1 "Professional";
};
// 5.8.8
register vid1 ro io( base, 0x7c) "Vendor ID 1" {
f 8 "First PnP vendor ID code";
s 8 "Second PnP vendor ID code";
};
register vid2 ro io( base, 0x7e) "Vendor ID 2" {
t 8 "Third PnP vendor ID code";
dev 8 "Vendor-specific device ID";
};
};