ad1816.h revision 166425
1275970Scy/*- 2275970Scy * Copyright (c) 1997 Luigi Rizzo (luigi@iet.unipi.it) 3316722Sdelphij * All rights reserved. 4316722Sdelphij * 5275970Scy * Redistribution and use in source and binary forms, with or without 6275970Scy * modification, are permitted provided that the following conditions 7275970Scy * are met: 8275970Scy * 1. Redistributions of source code must retain the above copyright 9275970Scy * notice, this list of conditions and the following disclaimer. 10275970Scy * 2. Redistributions in binary form must reproduce the above copyright 11275970Scy * notice, this list of conditions and the following disclaimer in the 12275970Scy * documentation and/or other materials provided with the distribution. 13275970Scy * 14275970Scy * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15275970Scy * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16275970Scy * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17275970Scy * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18275970Scy * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19275970Scy * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20275970Scy * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21275970Scy * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22275970Scy * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23275970Scy * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24275970Scy * SUCH DAMAGE. 25275970Scy * 26275970Scy * $FreeBSD: head/sys/dev/sound/isa/ad1816.h 166425 2007-02-02 13:33:35Z joel $ 27275970Scy */ 28275970Scy 29275970Scy/* 30275970Scy * This file contains information and macro definitions for 31275970Scy * the ad1816 chip 32275970Scy */ 33275970Scy 34275970Scy/* AD1816 register macros */ 35275970Scy 36275970Scy#define AD1816_ALE 0 /* indirect reg access */ 37316722Sdelphij#define AD1816_INT 1 /* interupt status */ 38275970Scy#define AD1816_LOW 2 /* indirect low byte */ 39275970Scy#define AD1816_HIGH 3 /* indirect high byte */ 40275970Scy 41275970Scy#if 0 42275970Scy#define ad1816_pioD(d) ((d)->io_base+4) /* PIO debug */ 43275970Scy#define ad1816_pios(d) ((d)->io_base+5) /* PIO status */ 44275970Scy#define ad1816_piod(d) ((d)->io_base+6) /* PIO data */ 45275970Scy#endif 46275970Scy 47275970Scy/* values for playback/capture config: 48316722Sdelphij bits: 0 enable/disable 49275970Scy 1 pio/dma 50275970Scy 2 stereo/mono 51275970Scy 3 companded/linearPCM 52275970Scy 4-5 format : 00 8bit linear (uncomp) 53275970Scy 00 8bit mulaw (comp) 54275970Scy 01 16bit le (uncomp) 55275970Scy 01 8bit alaw (comp) 56275970Scy 11 16bit be (uncomp) 57275970Scy*/ 58275970Scy 59275970Scy#define AD1816_PLAY 8 /* playback config */ 60275970Scy#define AD1816_CAPT 9 /* capture config */ 61275970Scy 62275970Scy#define AD1816_BUSY 0x80 /* chip is busy */ 63275970Scy#define AD1816_ALEMASK 0x3F /* mask for indirect adr. */ 64275970Scy 65275970Scy#if 0 66275970Scy#define AD1816_INTRSI 0x01 /* sb intr */ 67275970Scy#define AD1816_INTRGI 0x02 /* game intr */ 68275970Scy#define AD1816_INTRRI 0x04 /* ring intr */ 69275970Scy#define AD1816_INTRDI 0x08 /* dsp intr */ 70275970Scy#define AD1816_INTRVI 0x10 /* vol intr */ 71275970Scy#define AD1816_INTRTI 0x20 /* timer intr */ 72275970Scy#endif 73275970Scy 74275970Scy#define AD1816_INTRCI 0x40 /* capture intr */ 75275970Scy#define AD1816_INTRPI 0x80 /* playback intr */ 76275970Scy/* PIO stuff is not supplied here */ 77275970Scy/* playback / capture config */ 78275970Scy#define AD1816_ENABLE 0x01 /* enable pl/cp */ 79275970Scy#define AD1816_PIO 0x02 /* use pio */ 80275970Scy#define AD1816_STEREO 0x04 81275970Scy#define AD1816_COMP 0x08 /* data is companded */ 82275970Scy#define AD1816_U8 0x00 /* 8 bit linear pcm */ 83275970Scy#define AD1816_MULAW 0x08 /* 8 bit mulaw */ 84275970Scy#define AD1816_ALAW 0x18 /* 8 bit alaw */ 85275970Scy#define AD1816_S16LE 0x10 /* 16 bit linear little endian */ 86275970Scy#define AD1816_S16BE 0x30 /* 16 bit linear big endian */ 87275970Scy#define AD1816_FORMASK 0x38 /* format mask */ 88275970Scy 89275970Scy#define AD1816_REC_DEVICES \ 90275970Scy (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD) 91275970Scy 92275970Scy#define AD1816_MIXER_DEVICES \ 93275970Scy (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_SYNTH | \ 94275970Scy SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN) 95275970Scy 96275970Scy