xref: /csrg-svn/sys/sparc/dev/bsd_audioreg.h (revision 55499)
155103Storek /*
255103Storek  * Copyright (c) 1992 The Regents of the University of California.
355103Storek  * All rights reserved.
455103Storek  *
555103Storek  * This software was developed by the Computer Systems Engineering group
655103Storek  * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
755103Storek  * contributed to Berkeley.
855103Storek  *
9*55499Sbostic  * All advertising materials mentioning features or use of this software
10*55499Sbostic  * must display the following acknowledgement:
11*55499Sbostic  *	This product includes software developed by the University of
12*55499Sbostic  *	California, Lawrence Berkeley Laboratories.
13*55499Sbostic  *
1455103Storek  * %sccs.include.redist.c%
1555103Storek  *
16*55499Sbostic  *	@(#)bsd_audioreg.h	7.2 (Berkeley) 07/21/92
1755103Storek  *
1855103Storek  * from: $Header: bsd_audioreg.h,v 1.3 92/06/07 21:12:50 mccanne Exp $ (LBL)
1955103Storek  */
2055103Storek 
2155103Storek /*
2255103Storek  * Bit encodings for chip commands from "Microprocessor Access Guide for
2355103Storek  * Indirect Registers", p.19 Am79C30A/32A Advanced Micro Devices spec
2455103Storek  * sheet (preliminary).
2555103Storek  *
2655103Storek  * Indirect register numbers (the value written into cr to select a given
2755103Storek  * chip registers) have the form AMDR_*.  Register fields look like AMD_*.
2855103Storek  */
2955103Storek 
3055103Storek struct amd7930 {
3155103Storek 	u_char	cr;		/* command register (wo) */
3255103Storek #define ir cr			/* interrupt register (ro) */
3355103Storek 	u_char	dr;		/* data register (rw) */
3455103Storek 	u_char	dsr1;		/* D-channel status register 1 (ro) */
3555103Storek 	u_char	der;		/* D-channel error register (ro) */
3655103Storek 	u_char	dctb;		/* D-channel transmit register (wo) */
3755103Storek #define dcrb dctb		/* D-channel receive register (ro) */
3855103Storek 	u_char	bbtb;		/* Bb-channel transmit register (wo) */
3955103Storek #define bbrb bbtb		/* Bb-channel receive register (ro) */
4055103Storek 	u_char	bctb;		/* Bc-channel transmit register (wo) */
4155103Storek #define bcrb bctb		/* Bc-channel receive register (ro) */
4255103Storek 	u_char	dsr2;		/* D-channel status register 2 (ro) */
4355103Storek };
4455103Storek 
4555103Storek #define AMDR_INIT	0x21
4655103Storek #define 	AMD_INIT_PMS_IDLE		0x00
4755103Storek #define 	AMD_INIT_PMS_ACTIVE		0x01
4855103Storek #define 	AMD_INIT_PMS_ACTIVE_DATA	0x02
4955103Storek #define 	AMD_INIT_INT_DISABLE		(0x01 << 2)
5055103Storek #define 	AMD_INIT_CDS_DIV2		(0x00 << 3)
5155103Storek #define 	AMD_INIT_CDS_DIV1		(0x01 << 3)
5255103Storek #define 	AMD_INIT_CDS_DIV4		(0x02 << 3)
5355103Storek #define 	AMD_INIT_AS_RX			(0x01 << 6)
5455103Storek #define 	AMD_INIT_AS_TX			(0x01 << 7)
5555103Storek 
5655103Storek #define AMDR_LIU_LSR	0xa1
5755103Storek #define AMDR_LIU_LPR	0xa2
5855103Storek #define AMDR_LIU_LMR1	0xa3
5955103Storek #define AMDR_LIU_LMR2	0xa4
6055103Storek #define AMDR_LIU_2_4	0xa5
6155103Storek #define AMDR_LIU_MF	0xa6
6255103Storek #define AMDR_LIU_MFSB	0xa7
6355103Storek #define AMDR_LIU_MFQB	0xa8
6455103Storek 
6555103Storek #define AMDR_MUX_MCR1	0x41
6655103Storek #define AMDR_MUX_MCR2	0x42
6755103Storek #define AMDR_MUX_MCR3	0x43
6855103Storek #define 	AMD_MCRCHAN_NC		0x00
6955103Storek #define 	AMD_MCRCHAN_B1		0x01
7055103Storek #define 	AMD_MCRCHAN_B2		0x02
7155103Storek #define 	AMD_MCRCHAN_BA		0x03
7255103Storek #define 	AMD_MCRCHAN_BB		0x04
7355103Storek #define 	AMD_MCRCHAN_BC		0x05
7455103Storek #define 	AMD_MCRCHAN_BD		0x06
7555103Storek #define 	AMD_MCRCHAN_BE		0x07
7655103Storek #define 	AMD_MCRCHAN_BF		0x08
7755103Storek #define AMDR_MUX_MCR4	0x44
7855103Storek #define		AMD_MCR4_INT_ENABLE	(1 << 3)
7955103Storek #define		AMD_MCR4_SWAPBB		(1 << 4)
8055103Storek #define		AMD_MCR4_SWAPBC		(1 << 5)
8155103Storek 
8255103Storek #define AMDR_MUX_1_4	0x45
8355103Storek 
8455103Storek #define AMDR_MAP_X	0x61
8555103Storek #define AMDR_MAP_R	0x62
8655103Storek #define AMDR_MAP_GX	0x63
8755103Storek #define AMDR_MAP_GR	0x64
8855103Storek #define AMDR_MAP_GER	0x65
8955103Storek #define AMDR_MAP_STG	0x66
9055103Storek #define AMDR_MAP_FTGR	0x67
9155103Storek #define AMDR_MAP_ATGR	0x68
9255103Storek #define AMDR_MAP_MMR1	0x69
9355103Storek #define		AMD_MMR1_ALAW	0x01
9455103Storek #define		AMD_MMR1_GX	0x02
9555103Storek #define		AMD_MMR1_GR	0x04
9655103Storek #define		AMD_MMR1_GER	0x08
9755103Storek #define		AMD_MMR1_X	0x10
9855103Storek #define		AMD_MMR1_R	0x20
9955103Storek #define		AMD_MMR1_STG	0x40
10055103Storek #define		AMD_MMR1_LOOP	0x80
10155103Storek #define AMDR_MAP_MMR2	0x6a
10255103Storek #define		AMD_MMR2_AINB	0x01
10355103Storek #define		AMD_MMR2_LS	0x02
10455103Storek #define		AMD_MMR2_DTMF	0x04
10555103Storek #define		AMD_MMR2_GEN	0x08
10655103Storek #define		AMD_MMR2_RNG		0x10
10755103Storek #define		AMD_MMR2_DIS_HPF	0x20
10855103Storek #define		AMD_MMR2_DIS_AZ		0x40
10955103Storek #define AMDR_MAP_1_10	0x6b
11055103Storek 
11155103Storek #define AMDR_DLC_FRAR123 0x81
11255103Storek #define AMDR_DLC_SRAR123 0x82
11355103Storek #define AMDR_DLC_TAR	0x83
11455103Storek #define AMDR_DLC_DRLR	0x84
11555103Storek #define AMDR_DLC_DTCR	0x85
11655103Storek #define AMDR_DLC_DMR1	0x86
11755103Storek #define AMDR_DLC_DMR2	0x87
11855103Storek #define AMDR_DLC_1_7	0x88
11955103Storek #define AMDR_DLC_DRCR	0x89
12055103Storek #define AMDR_DLC_RNGR1	0x8a
12155103Storek #define AMDR_DLC_RNGR2	0x8b
12255103Storek #define AMDR_DLC_FRAR4	0x8c
12355103Storek #define AMDR_DLC_SRAR4	0x8d
12455103Storek #define AMDR_DLC_DMR3	0x8e
12555103Storek #define AMDR_DLC_DMR4	0x8f
12655103Storek #define AMDR_DLC_12_15	0x90
12755103Storek #define AMDR_DLC_ASR	0x91
128