162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*********************************************************************
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * msnd_pinnacle.h
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Turtle Beach MultiSound Sound Card Driver for Linux
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Some parts of this header file were derived from the Turtle Beach
962306a36Sopenharmony_ci * MultiSound Driver Development Kit.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * Copyright (C) 1998 Andrew Veliath
1262306a36Sopenharmony_ci * Copyright (C) 1993 Turtle Beach Systems, Inc.
1362306a36Sopenharmony_ci *
1462306a36Sopenharmony_ci ********************************************************************/
1562306a36Sopenharmony_ci#ifndef __MSND_PINNACLE_H
1662306a36Sopenharmony_ci#define __MSND_PINNACLE_H
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#define DSP_NUMIO				0x08
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#define IREG_LOGDEVICE				0x07
2162306a36Sopenharmony_ci#define IREG_ACTIVATE				0x30
2262306a36Sopenharmony_ci#define LD_ACTIVATE				0x01
2362306a36Sopenharmony_ci#define LD_DISACTIVATE				0x00
2462306a36Sopenharmony_ci#define IREG_EECONTROL				0x3F
2562306a36Sopenharmony_ci#define IREG_MEMBASEHI				0x40
2662306a36Sopenharmony_ci#define IREG_MEMBASELO				0x41
2762306a36Sopenharmony_ci#define IREG_MEMCONTROL				0x42
2862306a36Sopenharmony_ci#define IREG_MEMRANGEHI				0x43
2962306a36Sopenharmony_ci#define IREG_MEMRANGELO				0x44
3062306a36Sopenharmony_ci#define MEMTYPE_8BIT				0x00
3162306a36Sopenharmony_ci#define MEMTYPE_16BIT				0x02
3262306a36Sopenharmony_ci#define MEMTYPE_RANGE				0x00
3362306a36Sopenharmony_ci#define MEMTYPE_HIADDR				0x01
3462306a36Sopenharmony_ci#define IREG_IO0_BASEHI				0x60
3562306a36Sopenharmony_ci#define IREG_IO0_BASELO				0x61
3662306a36Sopenharmony_ci#define IREG_IO1_BASEHI				0x62
3762306a36Sopenharmony_ci#define IREG_IO1_BASELO				0x63
3862306a36Sopenharmony_ci#define IREG_IRQ_NUMBER				0x70
3962306a36Sopenharmony_ci#define IREG_IRQ_TYPE				0x71
4062306a36Sopenharmony_ci#define IRQTYPE_HIGH				0x02
4162306a36Sopenharmony_ci#define IRQTYPE_LOW				0x00
4262306a36Sopenharmony_ci#define IRQTYPE_LEVEL				0x01
4362306a36Sopenharmony_ci#define IRQTYPE_EDGE				0x00
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#define	HP_DSPR					0x04
4662306a36Sopenharmony_ci#define	HP_BLKS					0x04
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#define HPDSPRESET_OFF				2
4962306a36Sopenharmony_ci#define HPDSPRESET_ON				0
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci#define HPBLKSEL_0				2
5262306a36Sopenharmony_ci#define HPBLKSEL_1				3
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#define	HIMT_DAT_OFF				0x03
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci#define	HIDSP_PLAY_UNDER			0x00
5762306a36Sopenharmony_ci#define	HIDSP_INT_PLAY_UNDER			0x01
5862306a36Sopenharmony_ci#define	HIDSP_SSI_TX_UNDER  			0x02
5962306a36Sopenharmony_ci#define HIDSP_RECQ_OVERFLOW			0x08
6062306a36Sopenharmony_ci#define HIDSP_INT_RECORD_OVER			0x09
6162306a36Sopenharmony_ci#define HIDSP_SSI_RX_OVERFLOW			0x0a
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci#define	HIDSP_MIDI_IN_OVER			0x10
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci#define	HIDSP_MIDI_FRAME_ERR			0x11
6662306a36Sopenharmony_ci#define	HIDSP_MIDI_PARITY_ERR			0x12
6762306a36Sopenharmony_ci#define	HIDSP_MIDI_OVERRUN_ERR			0x13
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci#define HIDSP_INPUT_CLIPPING			0x20
7062306a36Sopenharmony_ci#define	HIDSP_MIX_CLIPPING			0x30
7162306a36Sopenharmony_ci#define HIDSP_DAT_IN_OFF			0x21
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#define TIME_PRO_RESET_DONE			0x028A
7462306a36Sopenharmony_ci#define TIME_PRO_SYSEX				0x001E
7562306a36Sopenharmony_ci#define TIME_PRO_RESET				0x0032
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci#define DAR_BUFF_SIZE				0x1000
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci#define MIDQ_BUFF_SIZE				0x800
8062306a36Sopenharmony_ci#define DSPQ_BUFF_SIZE				0x5A0
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci#define DSPQ_DATA_BUFF				0x7860
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci#define MOP_WAVEHDR				0
8562306a36Sopenharmony_ci#define MOP_EXTOUT				1
8662306a36Sopenharmony_ci#define MOP_HWINIT				0xfe
8762306a36Sopenharmony_ci#define MOP_NONE				0xff
8862306a36Sopenharmony_ci#define MOP_MAX					1
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci#define MIP_EXTIN				0
9162306a36Sopenharmony_ci#define MIP_WAVEHDR				1
9262306a36Sopenharmony_ci#define MIP_HWINIT				0xfe
9362306a36Sopenharmony_ci#define MIP_MAX					1
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci/* Pinnacle/Fiji SMA Common Data */
9662306a36Sopenharmony_ci#define SMA_wCurrPlayBytes			0x0000
9762306a36Sopenharmony_ci#define SMA_wCurrRecordBytes			0x0002
9862306a36Sopenharmony_ci#define SMA_wCurrPlayVolLeft			0x0004
9962306a36Sopenharmony_ci#define SMA_wCurrPlayVolRight			0x0006
10062306a36Sopenharmony_ci#define SMA_wCurrInVolLeft			0x0008
10162306a36Sopenharmony_ci#define SMA_wCurrInVolRight			0x000a
10262306a36Sopenharmony_ci#define SMA_wCurrMHdrVolLeft			0x000c
10362306a36Sopenharmony_ci#define SMA_wCurrMHdrVolRight			0x000e
10462306a36Sopenharmony_ci#define SMA_dwCurrPlayPitch			0x0010
10562306a36Sopenharmony_ci#define SMA_dwCurrPlayRate			0x0014
10662306a36Sopenharmony_ci#define SMA_wCurrMIDIIOPatch			0x0018
10762306a36Sopenharmony_ci#define SMA_wCurrPlayFormat			0x001a
10862306a36Sopenharmony_ci#define SMA_wCurrPlaySampleSize			0x001c
10962306a36Sopenharmony_ci#define SMA_wCurrPlayChannels			0x001e
11062306a36Sopenharmony_ci#define SMA_wCurrPlaySampleRate			0x0020
11162306a36Sopenharmony_ci#define SMA_wCurrRecordFormat			0x0022
11262306a36Sopenharmony_ci#define SMA_wCurrRecordSampleSize		0x0024
11362306a36Sopenharmony_ci#define SMA_wCurrRecordChannels			0x0026
11462306a36Sopenharmony_ci#define SMA_wCurrRecordSampleRate		0x0028
11562306a36Sopenharmony_ci#define SMA_wCurrDSPStatusFlags			0x002a
11662306a36Sopenharmony_ci#define SMA_wCurrHostStatusFlags		0x002c
11762306a36Sopenharmony_ci#define SMA_wCurrInputTagBits			0x002e
11862306a36Sopenharmony_ci#define SMA_wCurrLeftPeak			0x0030
11962306a36Sopenharmony_ci#define SMA_wCurrRightPeak			0x0032
12062306a36Sopenharmony_ci#define SMA_bMicPotPosLeft			0x0034
12162306a36Sopenharmony_ci#define SMA_bMicPotPosRight			0x0035
12262306a36Sopenharmony_ci#define SMA_bMicPotMaxLeft			0x0036
12362306a36Sopenharmony_ci#define SMA_bMicPotMaxRight			0x0037
12462306a36Sopenharmony_ci#define SMA_bInPotPosLeft			0x0038
12562306a36Sopenharmony_ci#define SMA_bInPotPosRight			0x0039
12662306a36Sopenharmony_ci#define SMA_bAuxPotPosLeft			0x003a
12762306a36Sopenharmony_ci#define SMA_bAuxPotPosRight			0x003b
12862306a36Sopenharmony_ci#define SMA_bInPotMaxLeft			0x003c
12962306a36Sopenharmony_ci#define SMA_bInPotMaxRight			0x003d
13062306a36Sopenharmony_ci#define SMA_bAuxPotMaxLeft			0x003e
13162306a36Sopenharmony_ci#define SMA_bAuxPotMaxRight			0x003f
13262306a36Sopenharmony_ci#define SMA_bInPotMaxMethod			0x0040
13362306a36Sopenharmony_ci#define SMA_bAuxPotMaxMethod			0x0041
13462306a36Sopenharmony_ci#define SMA_wCurrMastVolLeft			0x0042
13562306a36Sopenharmony_ci#define SMA_wCurrMastVolRight			0x0044
13662306a36Sopenharmony_ci#define SMA_wCalFreqAtoD			0x0046
13762306a36Sopenharmony_ci#define SMA_wCurrAuxVolLeft			0x0048
13862306a36Sopenharmony_ci#define SMA_wCurrAuxVolRight			0x004a
13962306a36Sopenharmony_ci#define SMA_wCurrPlay1VolLeft			0x004c
14062306a36Sopenharmony_ci#define SMA_wCurrPlay1VolRight			0x004e
14162306a36Sopenharmony_ci#define SMA_wCurrPlay2VolLeft			0x0050
14262306a36Sopenharmony_ci#define SMA_wCurrPlay2VolRight			0x0052
14362306a36Sopenharmony_ci#define SMA_wCurrPlay3VolLeft			0x0054
14462306a36Sopenharmony_ci#define SMA_wCurrPlay3VolRight			0x0056
14562306a36Sopenharmony_ci#define SMA_wCurrPlay4VolLeft			0x0058
14662306a36Sopenharmony_ci#define SMA_wCurrPlay4VolRight			0x005a
14762306a36Sopenharmony_ci#define SMA_wCurrPlay1PeakLeft			0x005c
14862306a36Sopenharmony_ci#define SMA_wCurrPlay1PeakRight			0x005e
14962306a36Sopenharmony_ci#define SMA_wCurrPlay2PeakLeft			0x0060
15062306a36Sopenharmony_ci#define SMA_wCurrPlay2PeakRight			0x0062
15162306a36Sopenharmony_ci#define SMA_wCurrPlay3PeakLeft			0x0064
15262306a36Sopenharmony_ci#define SMA_wCurrPlay3PeakRight			0x0066
15362306a36Sopenharmony_ci#define SMA_wCurrPlay4PeakLeft			0x0068
15462306a36Sopenharmony_ci#define SMA_wCurrPlay4PeakRight			0x006a
15562306a36Sopenharmony_ci#define SMA_wCurrPlayPeakLeft			0x006c
15662306a36Sopenharmony_ci#define SMA_wCurrPlayPeakRight			0x006e
15762306a36Sopenharmony_ci#define SMA_wCurrDATSR				0x0070
15862306a36Sopenharmony_ci#define SMA_wCurrDATRXCHNL			0x0072
15962306a36Sopenharmony_ci#define SMA_wCurrDATTXCHNL			0x0074
16062306a36Sopenharmony_ci#define SMA_wCurrDATRXRate			0x0076
16162306a36Sopenharmony_ci#define SMA_dwDSPPlayCount			0x0078
16262306a36Sopenharmony_ci#define SMA__size				0x007c
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci#define INITCODEFILE		"turtlebeach/pndspini.bin"
16562306a36Sopenharmony_ci#define PERMCODEFILE		"turtlebeach/pndsperm.bin"
16662306a36Sopenharmony_ci#define LONGNAME		"MultiSound (Pinnacle/Fiji)"
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci#endif /* __MSND_PINNACLE_H */
169