1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*********************************************************************
3 *
4 * msnd_classic.h
5 *
6 * Turtle Beach MultiSound Sound Card Driver for Linux
7 *
8 * Some parts of this header file were derived from the Turtle Beach
9 * MultiSound Driver Development Kit.
10 *
11 * Copyright (C) 1998 Andrew Veliath
12 * Copyright (C) 1993 Turtle Beach Systems, Inc.
13 *
14 ********************************************************************/
15#ifndef __MSND_CLASSIC_H
16#define __MSND_CLASSIC_H
17
18#define DSP_NUMIO				0x10
19
20#define	HP_MEMM					0x08
21
22#define	HP_BITM					0x0E
23#define	HP_WAIT					0x0D
24#define	HP_DSPR					0x0A
25#define	HP_PROR					0x0B
26#define	HP_BLKS					0x0C
27
28#define	HPPRORESET_OFF				0
29#define HPPRORESET_ON				1
30
31#define HPDSPRESET_OFF				0
32#define HPDSPRESET_ON				1
33
34#define HPBLKSEL_0				0
35#define HPBLKSEL_1				1
36
37#define HPWAITSTATE_0				0
38#define HPWAITSTATE_1				1
39
40#define HPBITMODE_16				0
41#define HPBITMODE_8				1
42
43#define	HIDSP_INT_PLAY_UNDER			0x00
44#define	HIDSP_INT_RECORD_OVER			0x01
45#define	HIDSP_INPUT_CLIPPING			0x02
46#define	HIDSP_MIDI_IN_OVER			0x10
47#define	HIDSP_MIDI_OVERRUN_ERR  0x13
48
49#define TIME_PRO_RESET_DONE			0x028A
50#define TIME_PRO_SYSEX				0x0040
51#define TIME_PRO_RESET				0x0032
52
53#define DAR_BUFF_SIZE				0x2000
54
55#define MIDQ_BUFF_SIZE				0x200
56#define DSPQ_BUFF_SIZE				0x40
57
58#define DSPQ_DATA_BUFF				0x7260
59
60#define MOP_SYNTH				0x10
61#define MOP_EXTOUT				0x32
62#define MOP_EXTTHRU				0x02
63#define MOP_OUTMASK				0x01
64
65#define MIP_EXTIN				0x01
66#define MIP_SYNTH				0x00
67#define MIP_INMASK				0x32
68
69/* Classic SMA Common Data */
70#define SMA_wCurrPlayBytes			0x0000
71#define SMA_wCurrRecordBytes			0x0002
72#define SMA_wCurrPlayVolLeft			0x0004
73#define SMA_wCurrPlayVolRight			0x0006
74#define SMA_wCurrInVolLeft			0x0008
75#define SMA_wCurrInVolRight			0x000a
76#define SMA_wUser_3				0x000c
77#define SMA_wUser_4				0x000e
78#define SMA_dwUser_5				0x0010
79#define SMA_dwUser_6				0x0014
80#define SMA_wUser_7				0x0018
81#define SMA_wReserved_A				0x001a
82#define SMA_wReserved_B				0x001c
83#define SMA_wReserved_C				0x001e
84#define SMA_wReserved_D				0x0020
85#define SMA_wReserved_E				0x0022
86#define SMA_wReserved_F				0x0024
87#define SMA_wReserved_G				0x0026
88#define SMA_wReserved_H				0x0028
89#define SMA_wCurrDSPStatusFlags			0x002a
90#define SMA_wCurrHostStatusFlags		0x002c
91#define SMA_wCurrInputTagBits			0x002e
92#define SMA_wCurrLeftPeak			0x0030
93#define SMA_wCurrRightPeak			0x0032
94#define SMA_wExtDSPbits				0x0034
95#define SMA_bExtHostbits			0x0036
96#define SMA_bBoardLevel				0x0037
97#define SMA_bInPotPosRight			0x0038
98#define SMA_bInPotPosLeft			0x0039
99#define SMA_bAuxPotPosRight			0x003a
100#define SMA_bAuxPotPosLeft			0x003b
101#define SMA_wCurrMastVolLeft			0x003c
102#define SMA_wCurrMastVolRight			0x003e
103#define SMA_bUser_12				0x0040
104#define SMA_bUser_13				0x0041
105#define SMA_wUser_14				0x0042
106#define SMA_wUser_15				0x0044
107#define SMA_wCalFreqAtoD			0x0046
108#define SMA_wUser_16				0x0048
109#define SMA_wUser_17				0x004a
110#define SMA__size				0x004c
111
112#define INITCODEFILE		"turtlebeach/msndinit.bin"
113#define PERMCODEFILE		"turtlebeach/msndperm.bin"
114#define LONGNAME		"MultiSound (Classic/Monterey/Tahiti)"
115
116#endif /* __MSND_CLASSIC_H */
117