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