ad1816.h revision 51766
1/*
2 * (C) 1997 Luigi Rizzo (luigi@iet.unipi.it)
3 *
4 * This file contains information and macro definitions for
5 * the ad1816 chip
6 *
7 * $FreeBSD: head/sys/dev/sound/isa/ad1816.h 51766 1999-09-28 20:00:06Z cg $
8 */
9
10/* AD1816 register macros */
11
12#define AD1816_ALE	0 	/* indirect reg access 		*/
13#define AD1816_INT	1 	/* interupt status     		*/
14#define AD1816_LOW	2 	/* indirect low byte   		*/
15#define AD1816_HIGH	3 	/* indirect high byte  		*/
16
17#if 0
18#define ad1816_pioD(d) ((d)->io_base+4) /* PIO debug		*/
19#define ad1816_pios(d) ((d)->io_base+5) /* PIO status		*/
20#define ad1816_piod(d) ((d)->io_base+6) /* PIO data 		*/
21#endif
22
23/* values for playback/capture config:
24   bits: 0   enable/disable
25         1   pio/dma
26         2   stereo/mono
27         3   companded/linearPCM
28         4-5 format : 00 8bit  linear (uncomp)
29                      00 8bit  mulaw  (comp)
30                      01 16bit le     (uncomp)
31                      01 8bit  alaw   (comp)
32                      11 16bit be     (uncomp)
33*/
34
35#define AD1816_PLAY	8 	/* playback config     		*/
36#define AD1816_CAPT 	9	/* capture config      		*/
37
38#define	AD1816_BUSY	0x80	/* chip is busy			*/
39#define	AD1816_ALEMASK	0x3F	/* mask for indirect adr.	*/
40
41#if 0
42#define	AD1816_INTRSI	0x01	/* sb intr			*/
43#define	AD1816_INTRGI	0x02	/* game intr			*/
44#define	AD1816_INTRRI	0x04	/* ring intr			*/
45#define	AD1816_INTRDI	0x08	/* dsp intr			*/
46#define	AD1816_INTRVI	0x10	/* vol intr			*/
47#define	AD1816_INTRTI	0x20 	/* timer intr			*/
48#endif
49
50#define	AD1816_INTRCI	0x40	/* capture intr			*/
51#define	AD1816_INTRPI	0x80	/* playback intr		*/
52/* PIO stuff is not supplied here */
53/* playback / capture config      */
54#define	AD1816_ENABLE	0x01	/* enable pl/cp			*/
55#define	AD1816_PIO	0x02	/* use pio			*/
56#define	AD1816_STEREO	0x04
57#define	AD1816_COMP	0x08	/* data is companded		*/
58#define	AD1816_U8	0x00	/* 8 bit linear pcm		*/
59#define	AD1816_MULAW	0x08	/* 8 bit mulaw			*/
60#define	AD1816_ALAW	0x18	/* 8 bit alaw			*/
61#define	AD1816_S16LE	0x10	/* 16 bit linear little endian	*/
62#define	AD1816_S16BE	0x30	/* 16 bit linear big endian	*/
63#define	AD1816_FORMASK  0x38	/* format mask			*/
64
65#define AD1816_REC_DEVICES	\
66    (SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD)
67
68#define AD1816_MIXER_DEVICES	\
69    (SOUND_MASK_VOLUME | SOUND_MASK_PCM | SOUND_MASK_SYNTH | \
70     SOUND_MASK_LINE   | SOUND_MASK_MIC | SOUND_MASK_CD | SOUND_MASK_IGAIN)
71
72