Merge branch 'master' into develop
[jack2.git] / linux / alsa / ice1712.h
blobfb4220121a9908c4f6bb22e83aca2d76d2a1158f
1 /*
2 Copyright (C) 2002 Anthony Van Groningen
4 Parts based on source code taken from the
5 "Env24 chipset (ICE1712) control utility" that is
7 Copyright (C) 2000 by Jaroslav Kysela <perex@suse.cz>
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 #ifndef __jack_ice1712_h__
26 #define __jack_ice1712_h__
28 #define ICE1712_SUBDEVICE_DELTA44 0x121433d6
29 #define ICE1712_SUBDEVICE_DELTA66 0x121432d6
30 #define ICE1712_SUBDEVICE_DELTA1010 0x121430d6
31 #define ICE1712_SUBDEVICE_DELTADIO2496 0x121431d6
32 #define ICE1712_SUBDEVICE_AUDIOPHILE 0x121434d6
34 #define SPDIF_PLAYBACK_ROUTE_NAME "IEC958 Playback Route"
35 #define ANALOG_PLAYBACK_ROUTE_NAME "H/W Playback Route"
36 #define MULTITRACK_PEAK_NAME "Multi Track Peak"
38 typedef struct
40 unsigned int subvendor; /* PCI[2c-2f] */
41 unsigned char size; /* size of EEPROM image in bytes */
42 unsigned char version; /* must be 1 */
43 unsigned char codec; /* codec configuration PCI[60] */
44 unsigned char aclink; /* ACLink configuration PCI[61] */
45 unsigned char i2sID; /* PCI[62] */
46 unsigned char spdif; /* S/PDIF configuration PCI[63] */
47 unsigned char gpiomask; /* GPIO initial mask, 0 = write, 1 = don't */
48 unsigned char gpiostate; /* GPIO initial state */
49 unsigned char gpiodir; /* GPIO direction state */
50 unsigned short ac97main;
51 unsigned short ac97pcm;
52 unsigned short ac97rec;
53 unsigned char ac97recsrc;
54 unsigned char dacID[4]; /* I2S IDs for DACs */
55 unsigned char adcID[4]; /* I2S IDs for ADCs */
56 unsigned char extra[4];
58 ice1712_eeprom_t;
60 typedef struct
62 alsa_driver_t *driver;
63 ice1712_eeprom_t *eeprom;
64 unsigned long active_channels;
66 ice1712_t;
68 #ifdef __cplusplus
69 extern "C"
71 #endif
73 jack_hardware_t *jack_alsa_ice1712_hw_new (alsa_driver_t *driver);
75 #ifdef __cplusplus
77 #endif
79 #endif /* __jack_ice1712_h__*/