From 044ad7c3987460ede48ff27afd6bdb0ca05a0432 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 4 Jul 2011 20:52:54 +0200 Subject: import at91lib from at91lib_20100901_softpack_1_9_v_1_0_svn_v15011 it's sad to see that atmel doesn't publish their svn repo or has a centralized location or even puts proper version/release info into the library itself --- components/codec-ad1981b/ad1981b.h | 135 +++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 components/codec-ad1981b/ad1981b.h (limited to 'components/codec-ad1981b') diff --git a/components/codec-ad1981b/ad1981b.h b/components/codec-ad1981b/ad1981b.h new file mode 100644 index 0000000..9ee2653 --- /dev/null +++ b/components/codec-ad1981b/ad1981b.h @@ -0,0 +1,135 @@ +/* ---------------------------------------------------------------------------- + * ATMEL Microcontroller Software Support + * ---------------------------------------------------------------------------- + * Copyright (c) 2008, Atmel Corporation + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the disclaimer below. + * + * Atmel's name may not be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * ---------------------------------------------------------------------------- + */ + + +#ifndef AC97_AD1981B_H +#define AC97_AD1981B_H + +//------------------------------------------------------------------------------ +// External constants +//------------------------------------------------------------------------------ +#define AD1981B_CMD(cmd, data) (((cmd << 16) & AT91C_AC97C_CADDR) | data) + +#define AD1981B_RESET 0x00 // Reset + #define AD1981B_RESET_ID0 (1 << 0) + #define AD1981B_RESET_ID1 (1 << 1) + #define AD1981B_RESET_ID2 (1 << 2) + #define AD1981B_RESET_ID3 (1 << 3) + #define AD1981B_RESET_ID4 (1 << 4) + #define AD1981B_RESET_ID5 (1 << 5) + #define AD1981B_RESET_ID6 (1 << 6) + #define AD1981B_RESET_ID7 (1 << 7) + #define AD1981B_RESET_ID8 (1 << 8) + #define AD1981B_RESET_ID9 (1 << 9) + +#define AD1981B_MASTER 0x02 // Master Volume + #define AD1981B_MASTER_RMV0 (1 << 0) + #define AD1981B_MASTER_RMV1 (1 << 1) + #define AD1981B_MASTER_RMV2 (1 << 2) + #define AD1981B_MASTER_RMV3 (1 << 3) + #define AD1981B_MASTER_RMV4 (1 << 4) + #define AD1981B_MASTER_RM (1 << 7) + #define AD1981B_MASTER_LMV0 (1 << 8) + #define AD1981B_MASTER_LMV1 (1 << 9) + #define AD1981B_MASTER_LMV2 (1 << 10) + #define AD1981B_MASTER_LMV3 (1 << 11) + #define AD1981B_MASTER_LMV4 (1 << 12) + #define AD1981B_MASTER_MM (1 << 15) + +#define AD1981B_HEADPHONE 0x04 // Headphone Volume (optional) + #define AD1981B_HEADPHONE_RHV0 (1 << 0) + #define AD1981B_HEADPHONE_RHV1 (1 << 1) + #define AD1981B_HEADPHONE_RHV2 (1 << 2) + #define AD1981B_HEADPHONE_RHV3 (1 << 3) + #define AD1981B_HEADPHONE_RHV4 (1 << 4) + #define AD1981B_HEADPHONE_RM (1 << 7) + #define AD1981B_HEADPHONE_LHV0 (1 << 8) + #define AD1981B_HEADPHONE_LHV1 (1 << 9) + #define AD1981B_HEADPHONE_LHV2 (1 << 10) + #define AD1981B_HEADPHONE_LHV3 (1 << 11) + #define AD1981B_HEADPHONE_LHV4 (1 << 12) + #define AD1981B_HEADPHONE_HPM (1 << 15) + +#define AD1981B_MASTER_MONO 0x06 // Master Volume Mono (optional) + +#define AD1981B_MASTER_TONE 0x08 // Master Tone (Bass & Treble) (optional) +#define AD1981B_PC_BEEP 0x0a // PC Beep Volume (optinal) +#define AD1981B_PHONE 0x0c // Phone Volume (optional) +#define AD1981B_MIC 0x0e // MIC Volume +#define AD1981B_LINE 0x10 // Line In Volume +#define AD1981B_CD 0x12 // CD Volume +#define AD1981B_VIDEO 0x14 // Video Volume (optional) +#define AD1981B_AUX 0x16 // AUX Volume (optional) +#define AD1981B_PCM 0x18 // PCM Volume +#define AD1981B_REC_SEL 0x1a // Record Select +#define AD1981B_REC_GAIN 0x1c // Record Gain +#define AD1981B_REC_GAIN_MIC 0x1e // Record Gain MIC (optional) +#define AD1981B_GENERAL_PURPOSE 0x20 // General Purpose (optional) +#define AD1981B_3D_CONTROL 0x22 // 3D Control (optional) +#define AD1981B_INT_PAGING 0x24 // Audio Interrupt & Paging (AC'97 2.3) +#define AD1981B_POWERDOWN 0x26 // Powerdown control / status +#define AD1981B_GENPURPOSE_LPBK (1 << 7) +#define AD1981B_GENPURPOSE_LPBK_NO (0 << 7) +#define AD1981B_GENPURPOSE_LPBK_YES (1 << 7) +#define AD1981B_GENPURPOSE_MS (1 << 8) +#define AD1981B_GENPURPOSE_MS_MIC1 (0 << 8) +#define AD1981B_GENPURPOSE_MS_MIC2 (1 << 8) +#define AD1981B_GENPURPOSE_MIX (1 << 9) +#define AD1981B_GENPURPOSE_MIX_MONO (0 << 9) +#define AD1981B_GENPURPOSE_MIX_MIC1 (1 << 9) + +#define AD1981B_EXTAUDIO 0x2A + #define AD1981B_EXTAUDIO_VRA (1 << 0) // Variable Rate Audio + #define AD1981B_EXTAUDIO_SPDIF (1 << 2) // Subsystem Enable/Disable + #define AD1981B_EXTAUDIO_SPSA (3 << 4) // SPDIF Slot Assignment + #define AD1981B_EXTAUDIO_SPCV (1 << 10) // SPDIF Configuration Valid + #define AD1981B_EXTAUDIO_VFORCE (1 << 15) // Validity Force Bit + +#define AD1981B_PMC_DAC 0x2C +#define AD1981B_PMC_ADC 0x32 + +#define AD1981B_SERIAL_CONFIG 0x74 // Serial configuration + #define AD1981B_SERIAL_CONFIG_SPLNK (1 << 0) // SPDIF Link + #define AD1981B_SERIAL_CONFIG_REGM0 (1 << 12) // Master Codec REG Mask + #define AD1981B_SERIAL_CONFIG_REGM1 (1 << 13) // Slave1 Codec REG Mask + #define AD1981B_SERIAL_CONFIG_REGM2 (1 << 14) // Slave2 Codec REG Mask + +#define AD1981B_MISC_CONTROL 0x76 // Miscellaneous control + #define AD1981B_MISC_CONTROL_FMXE (1 << 9) // Front DAC into Mixer Enable + +#define AD1981B_SAMPLE_RATE_0 0x78 // set up the equalizer coefficients. +#define AD1981B_SAMPLE_RATE_1 0x7A // set up the equalizer coefficients. + +#define AD1981B_VENDOR_ID1 0x7C // Vendor 1 +#define AD1981B_VENDOR_ID2 0x7E // Vendor 2 + +#define AD1981B_ID_1 0x4144 +#define AD1981B_ID_2 0x5374 + +#endif //#ifndef AC97_AD1981B_H -- cgit v1.2.3