1139749Simp/*- 2166427Sjoel * Copyright (c) 1997 Luigi Rizzo 3166425Sjoel * All rights reserved. 451766Scg * 5166425Sjoel * Redistribution and use in source and binary forms, with or without 6166425Sjoel * modification, are permitted provided that the following conditions 7166425Sjoel * are met: 8166425Sjoel * 1. Redistributions of source code must retain the above copyright 9166425Sjoel * notice, this list of conditions and the following disclaimer. 10166425Sjoel * 2. Redistributions in binary form must reproduce the above copyright 11166425Sjoel * notice, this list of conditions and the following disclaimer in the 12166425Sjoel * documentation and/or other materials provided with the distribution. 1351766Scg * 14166425Sjoel * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15166425Sjoel * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16166425Sjoel * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17166425Sjoel * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18166425Sjoel * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19166425Sjoel * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20166425Sjoel * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21166425Sjoel * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22166425Sjoel * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23166425Sjoel * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24166425Sjoel * SUCH DAMAGE. 25166425Sjoel * 2651766Scg * $FreeBSD$ 2751766Scg */ 2851766Scg 29166425Sjoel/* 30166425Sjoel * This file contains information and macro definitions for 31166425Sjoel * the ad1816 chip 32166425Sjoel */ 33166425Sjoel 3451766Scg/* AD1816 register macros */ 3551766Scg 3651766Scg#define AD1816_ALE 0 /* indirect reg access */ 37172568Skevlo#define AD1816_INT 1 /* interrupt status */ 3851766Scg#define AD1816_LOW 2 /* indirect low byte */ 3951766Scg#define AD1816_HIGH 3 /* indirect high byte */ 4051766Scg 4151766Scg#if 0 4251766Scg#define ad1816_pioD(d) ((d)->io_base+4) /* PIO debug */ 4351766Scg#define ad1816_pios(d) ((d)->io_base+5) /* PIO status */ 4451766Scg#define ad1816_piod(d) ((d)->io_base+6) /* PIO data */ 4551766Scg#endif 4651766Scg 4751766Scg/* values for playback/capture config: 4851766Scg bits: 0 enable/disable 4951766Scg 1 pio/dma 5051766Scg 2 stereo/mono 5151766Scg 3 companded/linearPCM 5251766Scg 4-5 format : 00 8bit linear (uncomp) 5351766Scg 00 8bit mulaw (comp) 5451766Scg 01 16bit le (uncomp) 5551766Scg 01 8bit alaw (comp) 5651766Scg 11 16bit be (uncomp) 5751766Scg*/ 5851766Scg 5951766Scg#define AD1816_PLAY 8 /* playback config */ 6051766Scg#define AD1816_CAPT 9 /* capture config */ 6151766Scg 6251766Scg#define AD1816_BUSY 0x80 /* chip is busy */ 6351766Scg#define AD1816_ALEMASK 0x3F /* mask for indirect adr. */ 6451766Scg 6551766Scg#if 0 6651766Scg#define AD1816_INTRSI 0x01 /* sb intr */ 6751766Scg#define AD1816_INTRGI 0x02 /* game intr */ 6851766Scg#define AD1816_INTRRI 0x04 /* ring intr */ 6951766Scg#define AD1816_INTRDI 0x08 /* dsp intr */ 7051766Scg#define AD1816_INTRVI 0x10 /* vol intr */ 7151766Scg#define AD1816_INTRTI 0x20 /* timer intr */ 7251766Scg#endif 7351766Scg 7451766Scg#define AD1816_INTRCI 0x40 /* capture intr */ 7551766Scg#define AD1816_INTRPI 0x80 /* playback intr */ 7651766Scg/* PIO stuff is not supplied here */ 7751766Scg/* playback / capture config */ 7851766Scg#define AD1816_ENABLE 0x01 /* enable pl/cp */ 7951766Scg#define AD1816_PIO 0x02 /* use pio */ 8051766Scg#define AD1816_STEREO 0x04 8151766Scg#define AD1816_COMP 0x08 /* data is companded */ 8251766Scg#define AD1816_U8 0x00 /* 8 bit linear pcm */ 8351766Scg#define AD1816_MULAW 0x08 /* 8 bit mulaw */ 8451766Scg#define AD1816_ALAW 0x18 /* 8 bit alaw */ 8551766Scg#define AD1816_S16LE 0x10 /* 16 bit linear little endian */ 8651766Scg#define AD1816_S16BE 0x30 /* 16 bit linear big endian */ 8751766Scg#define AD1816_FORMASK 0x38 /* format mask */ 8851766Scg 8951766Scg#define AD1816_REC_DEVICES \ 9051766Scg (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD) 9151766Scg 9251766Scg#define AD1816_MIXER_DEVICES \ 9351766Scg (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_SYNTH | \ 9451766Scg SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN) 9551766Scg 96