Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
ice1712.h File Reference
#include <sound/control.h>
#include <sound/ac97_codec.h>
#include <sound/rawmidi.h>
#include <sound/i2c.h>
#include <sound/ak4xxx-adda.h>
#include <sound/ak4114.h>
#include <sound/pt2258.h>
#include <sound/pcm.h>
#include <sound/mpu401.h>

Go to the source code of this file.

Data Structures

struct  snd_ice1712_eeprom
 
struct  snd_ak4xxx_private
 
struct  snd_ak4xxx_private::snd_akm4xxx_ops
 
struct  snd_ice1712_spdif
 
struct  snd_ice1712_spdif::snd_ice1712_spdif_ops
 
struct  snd_ice1712
 
struct  snd_ice1712::ice1712_gpio
 
struct  snd_ice1712_card_info
 

Macros

#define ICEREG(ice, x)   ((ice)->port + ICE1712_REG_##x)
 
#define ICE1712_REG_CONTROL   0x00 /* byte */
 
#define ICE1712_RESET   0x80 /* reset whole chip */
 
#define ICE1712_SERR_LEVEL   0x04 /* SERR# level otherwise edge */
 
#define ICE1712_NATIVE   0x01 /* native mode otherwise SB */
 
#define ICE1712_REG_IRQMASK   0x01 /* byte */
 
#define ICE1712_IRQ_MPU1   0x80
 
#define ICE1712_IRQ_TIMER   0x40
 
#define ICE1712_IRQ_MPU2   0x20
 
#define ICE1712_IRQ_PROPCM   0x10
 
#define ICE1712_IRQ_FM   0x08 /* FM/MIDI - legacy */
 
#define ICE1712_IRQ_PBKDS   0x04 /* playback DS channels */
 
#define ICE1712_IRQ_CONCAP   0x02 /* consumer capture */
 
#define ICE1712_IRQ_CONPBK   0x01 /* consumer playback */
 
#define ICE1712_REG_IRQSTAT   0x02 /* byte */
 
#define ICE1712_REG_INDEX   0x03 /* byte - indirect CCIxx regs */
 
#define ICE1712_REG_DATA   0x04 /* byte - indirect CCIxx regs */
 
#define ICE1712_REG_NMI_STAT1   0x05 /* byte */
 
#define ICE1712_REG_NMI_DATA   0x06 /* byte */
 
#define ICE1712_REG_NMI_INDEX   0x07 /* byte */
 
#define ICE1712_REG_AC97_INDEX   0x08 /* byte */
 
#define ICE1712_REG_AC97_CMD   0x09 /* byte */
 
#define ICE1712_AC97_COLD   0x80 /* cold reset */
 
#define ICE1712_AC97_WARM   0x40 /* warm reset */
 
#define ICE1712_AC97_WRITE   0x20 /* W: write, R: write in progress */
 
#define ICE1712_AC97_READ   0x10 /* W: read, R: read in progress */
 
#define ICE1712_AC97_READY   0x08 /* codec ready status bit */
 
#define ICE1712_AC97_PBK_VSR   0x02 /* playback VSR */
 
#define ICE1712_AC97_CAP_VSR   0x01 /* capture VSR */
 
#define ICE1712_REG_AC97_DATA   0x0a /* word (little endian) */
 
#define ICE1712_REG_MPU1_CTRL   0x0c /* byte */
 
#define ICE1712_REG_MPU1_DATA   0x0d /* byte */
 
#define ICE1712_REG_I2C_DEV_ADDR   0x10 /* byte */
 
#define ICE1712_I2C_WRITE   0x01 /* write direction */
 
#define ICE1712_REG_I2C_BYTE_ADDR   0x11 /* byte */
 
#define ICE1712_REG_I2C_DATA   0x12 /* byte */
 
#define ICE1712_REG_I2C_CTRL   0x13 /* byte */
 
#define ICE1712_I2C_EEPROM   0x80 /* EEPROM exists */
 
#define ICE1712_I2C_BUSY   0x01 /* busy bit */
 
#define ICE1712_REG_CONCAP_ADDR   0x14 /* dword - consumer capture */
 
#define ICE1712_REG_CONCAP_COUNT   0x18 /* word - current/base count */
 
#define ICE1712_REG_SERR_SHADOW   0x1b /* byte */
 
#define ICE1712_REG_MPU2_CTRL   0x1c /* byte */
 
#define ICE1712_REG_MPU2_DATA   0x1d /* byte */
 
#define ICE1712_REG_TIMER   0x1e /* word */
 
#define ICE1712_IREG_PBK_COUNT_LO   0x00
 
#define ICE1712_IREG_PBK_COUNT_HI   0x01
 
#define ICE1712_IREG_PBK_CTRL   0x02
 
#define ICE1712_IREG_PBK_LEFT   0x03 /* left volume */
 
#define ICE1712_IREG_PBK_RIGHT   0x04 /* right volume */
 
#define ICE1712_IREG_PBK_SOFT   0x05 /* soft volume */
 
#define ICE1712_IREG_PBK_RATE_LO   0x06
 
#define ICE1712_IREG_PBK_RATE_MID   0x07
 
#define ICE1712_IREG_PBK_RATE_HI   0x08
 
#define ICE1712_IREG_CAP_COUNT_LO   0x10
 
#define ICE1712_IREG_CAP_COUNT_HI   0x11
 
#define ICE1712_IREG_CAP_CTRL   0x12
 
#define ICE1712_IREG_GPIO_DATA   0x20
 
#define ICE1712_IREG_GPIO_WRITE_MASK   0x21
 
#define ICE1712_IREG_GPIO_DIRECTION   0x22
 
#define ICE1712_IREG_CONSUMER_POWERDOWN   0x30
 
#define ICE1712_IREG_PRO_POWERDOWN   0x31
 
#define ICEDS(ice, x)   ((ice)->dmapath_port + ICE1712_DS_##x)
 
#define ICE1712_DS_INTMASK   0x00 /* word - interrupt mask */
 
#define ICE1712_DS_INTSTAT   0x02 /* word - interrupt status */
 
#define ICE1712_DS_DATA   0x04 /* dword - channel data */
 
#define ICE1712_DS_INDEX   0x08 /* dword - channel index */
 
#define ICE1712_DSC_ADDR0   0x00 /* dword - base address 0 */
 
#define ICE1712_DSC_COUNT0   0x01 /* word - count 0 */
 
#define ICE1712_DSC_ADDR1   0x02 /* dword - base address 1 */
 
#define ICE1712_DSC_COUNT1   0x03 /* word - count 1 */
 
#define ICE1712_DSC_CONTROL   0x04 /* byte - control & status */
 
#define ICE1712_BUFFER1   0x80 /* buffer1 is active */
 
#define ICE1712_BUFFER1_AUTO   0x40 /* buffer1 auto init */
 
#define ICE1712_BUFFER0_AUTO   0x20 /* buffer0 auto init */
 
#define ICE1712_FLUSH   0x10 /* flush FIFO */
 
#define ICE1712_STEREO   0x08 /* stereo */
 
#define ICE1712_16BIT   0x04 /* 16-bit data */
 
#define ICE1712_PAUSE   0x02 /* pause */
 
#define ICE1712_START   0x01 /* start */
 
#define ICE1712_DSC_RATE   0x05 /* dword - rate */
 
#define ICE1712_DSC_VOLUME   0x06 /* word - volume control */
 
#define ICEMT(ice, x)   ((ice)->profi_port + ICE1712_MT_##x)
 
#define ICE1712_MT_IRQ   0x00 /* byte - interrupt mask */
 
#define ICE1712_MULTI_CAPTURE   0x80 /* capture IRQ */
 
#define ICE1712_MULTI_PLAYBACK   0x40 /* playback IRQ */
 
#define ICE1712_MULTI_CAPSTATUS   0x02 /* capture IRQ status */
 
#define ICE1712_MULTI_PBKSTATUS   0x01 /* playback IRQ status */
 
#define ICE1712_MT_RATE   0x01 /* byte - sampling rate select */
 
#define ICE1712_SPDIF_MASTER   0x10 /* S/PDIF input is master clock */
 
#define ICE1712_MT_I2S_FORMAT   0x02 /* byte - I2S data format */
 
#define ICE1712_MT_AC97_INDEX   0x04 /* byte - AC'97 index */
 
#define ICE1712_MT_AC97_CMD   0x05 /* byte - AC'97 command & status */
 
#define ICE1712_MT_AC97_DATA   0x06 /* word - AC'97 data */
 
#define ICE1712_MT_PLAYBACK_ADDR   0x10 /* dword - playback address */
 
#define ICE1712_MT_PLAYBACK_SIZE   0x14 /* word - playback size */
 
#define ICE1712_MT_PLAYBACK_COUNT   0x16 /* word - playback count */
 
#define ICE1712_MT_PLAYBACK_CONTROL   0x18 /* byte - control */
 
#define ICE1712_CAPTURE_START_SHADOW   0x04 /* capture start */
 
#define ICE1712_PLAYBACK_PAUSE   0x02 /* playback pause */
 
#define ICE1712_PLAYBACK_START   0x01 /* playback start */
 
#define ICE1712_MT_CAPTURE_ADDR   0x20 /* dword - capture address */
 
#define ICE1712_MT_CAPTURE_SIZE   0x24 /* word - capture size */
 
#define ICE1712_MT_CAPTURE_COUNT   0x26 /* word - capture count */
 
#define ICE1712_MT_CAPTURE_CONTROL   0x28 /* byte - control */
 
#define ICE1712_CAPTURE_START   0x01 /* capture start */
 
#define ICE1712_MT_ROUTE_PSDOUT03   0x30 /* word */
 
#define ICE1712_MT_ROUTE_SPDOUT   0x32 /* word */
 
#define ICE1712_MT_ROUTE_CAPTURE   0x34 /* dword */
 
#define ICE1712_MT_MONITOR_VOLUME   0x38 /* word */
 
#define ICE1712_MT_MONITOR_INDEX   0x3a /* byte */
 
#define ICE1712_MT_MONITOR_RATE   0x3b /* byte */
 
#define ICE1712_MT_MONITOR_ROUTECTRL   0x3c /* byte */
 
#define ICE1712_ROUTE_AC97   0x01 /* route digital mixer output to AC'97 */
 
#define ICE1712_MT_MONITOR_PEAKINDEX   0x3e /* byte */
 
#define ICE1712_MT_MONITOR_PEAKDATA   0x3f /* byte */
 
#define ICE1712_CFG_CLOCK   0xc0
 
#define ICE1712_CFG_CLOCK512   0x00 /* 22.5692Mhz, 44.1kHz*512 */
 
#define ICE1712_CFG_CLOCK384   0x40 /* 16.9344Mhz, 44.1kHz*384 */
 
#define ICE1712_CFG_EXT   0x80 /* external clock */
 
#define ICE1712_CFG_2xMPU401   0x20 /* two MPU401 UARTs */
 
#define ICE1712_CFG_NO_CON_AC97   0x10 /* consumer AC'97 codec is not present */
 
#define ICE1712_CFG_ADC_MASK   0x0c /* one, two, three, four stereo ADCs */
 
#define ICE1712_CFG_DAC_MASK   0x03 /* one, two, three, four stereo DACs */
 
#define ICE1712_CFG_PRO_I2S   0x80 /* multitrack converter: I2S or AC'97 */
 
#define ICE1712_CFG_AC97_PACKED   0x01 /* split or packed mode - AC'97 */
 
#define ICE1712_CFG_I2S_VOLUME   0x80 /* volume/mute capability */
 
#define ICE1712_CFG_I2S_96KHZ   0x40 /* supports 96kHz sampling */
 
#define ICE1712_CFG_I2S_RESMASK   0x30 /* resolution mask, 16,18,20,24-bit */
 
#define ICE1712_CFG_I2S_OTHER   0x0f /* other I2S IDs */
 
#define ICE1712_CFG_I2S_CHIPID   0xfc /* I2S chip ID */
 
#define ICE1712_CFG_SPDIF_IN   0x02 /* S/PDIF input is present */
 
#define ICE1712_CFG_SPDIF_OUT   0x01 /* S/PDIF output is present */
 
#define ICE1712_DMA_MODE_WRITE   0x48
 
#define ICE1712_DMA_AUTOINIT   0x10
 
#define ice_has_con_ac97(ice)   (!((ice)->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_NO_CON_AC97))
 
#define ICE1712_GPIO(xiface, xname, xindex, mask, invert, xaccess)
 

Enumerations

enum  {
  ICE_EEP1_CODEC = 0, ICE_EEP1_ACLINK, ICE_EEP1_I2SID, ICE_EEP1_SPDIF,
  ICE_EEP1_GPIO_MASK, ICE_EEP1_GPIO_STATE, ICE_EEP1_GPIO_DIR, ICE_EEP1_AC97_MAIN_LO,
  ICE_EEP1_AC97_MAIN_HI, ICE_EEP1_AC97_PCM_LO, ICE_EEP1_AC97_PCM_HI, ICE_EEP1_AC97_REC_LO,
  ICE_EEP1_AC97_REC_HI, ICE_EEP1_AC97_RECSRC, ICE_EEP1_DAC_ID, ICE_EEP1_DAC_ID1,
  ICE_EEP1_DAC_ID2, ICE_EEP1_DAC_ID3, ICE_EEP1_ADC_ID, ICE_EEP1_ADC_ID1,
  ICE_EEP1_ADC_ID2, ICE_EEP1_ADC_ID3
}
 

Functions

int snd_ice1712_gpio_get (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
int snd_ice1712_gpio_put (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
 
int snd_ice1724_get_route_val (struct snd_ice1712 *ice, int shift)
 
int snd_ice1724_put_route_val (struct snd_ice1712 *ice, unsigned int val, int shift)
 
int snd_ice1712_spdif_build_controls (struct snd_ice1712 *ice)
 
int snd_ice1712_akm4xxx_init (struct snd_akm4xxx *ak, const struct snd_akm4xxx *template, const struct snd_ak4xxx_private *priv, struct snd_ice1712 *ice)
 
void snd_ice1712_akm4xxx_free (struct snd_ice1712 *ice)
 
int snd_ice1712_akm4xxx_build_controls (struct snd_ice1712 *ice)
 
int snd_ice1712_init_cs8427 (struct snd_ice1712 *ice, int addr)
 

Macro Definition Documentation

#define ICE1712_16BIT   0x04 /* 16-bit data */

Definition at line 135 of file ice1712.h.

#define ICE1712_AC97_CAP_VSR   0x01 /* capture VSR */

Definition at line 70 of file ice1712.h.

#define ICE1712_AC97_COLD   0x80 /* cold reset */

Definition at line 64 of file ice1712.h.

#define ICE1712_AC97_PBK_VSR   0x02 /* playback VSR */

Definition at line 69 of file ice1712.h.

#define ICE1712_AC97_READ   0x10 /* W: read, R: read in progress */

Definition at line 67 of file ice1712.h.

#define ICE1712_AC97_READY   0x08 /* codec ready status bit */

Definition at line 68 of file ice1712.h.

#define ICE1712_AC97_WARM   0x40 /* warm reset */

Definition at line 65 of file ice1712.h.

#define ICE1712_AC97_WRITE   0x20 /* W: write, R: write in progress */

Definition at line 66 of file ice1712.h.

#define ICE1712_BUFFER0_AUTO   0x20 /* buffer0 auto init */

Definition at line 132 of file ice1712.h.

#define ICE1712_BUFFER1   0x80 /* buffer1 is active */

Definition at line 130 of file ice1712.h.

#define ICE1712_BUFFER1_AUTO   0x40 /* buffer1 auto init */

Definition at line 131 of file ice1712.h.

#define ICE1712_CAPTURE_START   0x01 /* capture start */

Definition at line 170 of file ice1712.h.

#define ICE1712_CAPTURE_START_SHADOW   0x04 /* capture start */

Definition at line 163 of file ice1712.h.

#define ICE1712_CFG_2xMPU401   0x20 /* two MPU401 UARTs */

Definition at line 191 of file ice1712.h.

#define ICE1712_CFG_AC97_PACKED   0x01 /* split or packed mode - AC'97 */

Definition at line 197 of file ice1712.h.

#define ICE1712_CFG_ADC_MASK   0x0c /* one, two, three, four stereo ADCs */

Definition at line 193 of file ice1712.h.

#define ICE1712_CFG_CLOCK   0xc0

Definition at line 187 of file ice1712.h.

#define ICE1712_CFG_CLOCK384   0x40 /* 16.9344Mhz, 44.1kHz*384 */

Definition at line 189 of file ice1712.h.

#define ICE1712_CFG_CLOCK512   0x00 /* 22.5692Mhz, 44.1kHz*512 */

Definition at line 188 of file ice1712.h.

#define ICE1712_CFG_DAC_MASK   0x03 /* one, two, three, four stereo DACs */

Definition at line 194 of file ice1712.h.

#define ICE1712_CFG_EXT   0x80 /* external clock */

Definition at line 190 of file ice1712.h.

#define ICE1712_CFG_I2S_96KHZ   0x40 /* supports 96kHz sampling */

Definition at line 200 of file ice1712.h.

#define ICE1712_CFG_I2S_CHIPID   0xfc /* I2S chip ID */

Definition at line 204 of file ice1712.h.

#define ICE1712_CFG_I2S_OTHER   0x0f /* other I2S IDs */

Definition at line 202 of file ice1712.h.

#define ICE1712_CFG_I2S_RESMASK   0x30 /* resolution mask, 16,18,20,24-bit */

Definition at line 201 of file ice1712.h.

#define ICE1712_CFG_I2S_VOLUME   0x80 /* volume/mute capability */

Definition at line 199 of file ice1712.h.

#define ICE1712_CFG_NO_CON_AC97   0x10 /* consumer AC'97 codec is not present */

Definition at line 192 of file ice1712.h.

#define ICE1712_CFG_PRO_I2S   0x80 /* multitrack converter: I2S or AC'97 */

Definition at line 196 of file ice1712.h.

#define ICE1712_CFG_SPDIF_IN   0x02 /* S/PDIF input is present */

Definition at line 205 of file ice1712.h.

#define ICE1712_CFG_SPDIF_OUT   0x01 /* S/PDIF output is present */

Definition at line 206 of file ice1712.h.

#define ICE1712_DMA_AUTOINIT   0x10

Definition at line 213 of file ice1712.h.

#define ICE1712_DMA_MODE_WRITE   0x48

Definition at line 212 of file ice1712.h.

#define ICE1712_DS_DATA   0x04 /* dword - channel data */

Definition at line 118 of file ice1712.h.

#define ICE1712_DS_INDEX   0x08 /* dword - channel index */

Definition at line 119 of file ice1712.h.

#define ICE1712_DS_INTMASK   0x00 /* word - interrupt mask */

Definition at line 116 of file ice1712.h.

#define ICE1712_DS_INTSTAT   0x02 /* word - interrupt status */

Definition at line 117 of file ice1712.h.

#define ICE1712_DSC_ADDR0   0x00 /* dword - base address 0 */

Definition at line 125 of file ice1712.h.

#define ICE1712_DSC_ADDR1   0x02 /* dword - base address 1 */

Definition at line 127 of file ice1712.h.

#define ICE1712_DSC_CONTROL   0x04 /* byte - control & status */

Definition at line 129 of file ice1712.h.

#define ICE1712_DSC_COUNT0   0x01 /* word - count 0 */

Definition at line 126 of file ice1712.h.

#define ICE1712_DSC_COUNT1   0x03 /* word - count 1 */

Definition at line 128 of file ice1712.h.

#define ICE1712_DSC_RATE   0x05 /* dword - rate */

Definition at line 138 of file ice1712.h.

#define ICE1712_DSC_VOLUME   0x06 /* word - volume control */

Definition at line 139 of file ice1712.h.

#define ICE1712_FLUSH   0x10 /* flush FIFO */

Definition at line 133 of file ice1712.h.

#define ICE1712_GPIO (   xiface,
  xname,
  xindex,
  mask,
  invert,
  xaccess 
)
Value:
{ .iface = xiface, .name = xname, .access = xaccess, .info = snd_ctl_boolean_mono_info, \
.private_value = mask | (invert << 24) }

Definition at line 449 of file ice1712.h.

#define ICE1712_I2C_BUSY   0x01 /* busy bit */

Definition at line 80 of file ice1712.h.

#define ICE1712_I2C_EEPROM   0x80 /* EEPROM exists */

Definition at line 79 of file ice1712.h.

#define ICE1712_I2C_WRITE   0x01 /* write direction */

Definition at line 75 of file ice1712.h.

#define ICE1712_IREG_CAP_COUNT_HI   0x11

Definition at line 102 of file ice1712.h.

#define ICE1712_IREG_CAP_COUNT_LO   0x10

Definition at line 101 of file ice1712.h.

#define ICE1712_IREG_CAP_CTRL   0x12

Definition at line 103 of file ice1712.h.

#define ICE1712_IREG_CONSUMER_POWERDOWN   0x30

Definition at line 107 of file ice1712.h.

#define ICE1712_IREG_GPIO_DATA   0x20

Definition at line 104 of file ice1712.h.

#define ICE1712_IREG_GPIO_DIRECTION   0x22

Definition at line 106 of file ice1712.h.

#define ICE1712_IREG_GPIO_WRITE_MASK   0x21

Definition at line 105 of file ice1712.h.

#define ICE1712_IREG_PBK_COUNT_HI   0x01

Definition at line 93 of file ice1712.h.

#define ICE1712_IREG_PBK_COUNT_LO   0x00

Definition at line 92 of file ice1712.h.

#define ICE1712_IREG_PBK_CTRL   0x02

Definition at line 94 of file ice1712.h.

#define ICE1712_IREG_PBK_LEFT   0x03 /* left volume */

Definition at line 95 of file ice1712.h.

#define ICE1712_IREG_PBK_RATE_HI   0x08

Definition at line 100 of file ice1712.h.

#define ICE1712_IREG_PBK_RATE_LO   0x06

Definition at line 98 of file ice1712.h.

#define ICE1712_IREG_PBK_RATE_MID   0x07

Definition at line 99 of file ice1712.h.

#define ICE1712_IREG_PBK_RIGHT   0x04 /* right volume */

Definition at line 96 of file ice1712.h.

#define ICE1712_IREG_PBK_SOFT   0x05 /* soft volume */

Definition at line 97 of file ice1712.h.

#define ICE1712_IREG_PRO_POWERDOWN   0x31

Definition at line 108 of file ice1712.h.

#define ICE1712_IRQ_CONCAP   0x02 /* consumer capture */

Definition at line 53 of file ice1712.h.

#define ICE1712_IRQ_CONPBK   0x01 /* consumer playback */

Definition at line 54 of file ice1712.h.

#define ICE1712_IRQ_FM   0x08 /* FM/MIDI - legacy */

Definition at line 51 of file ice1712.h.

#define ICE1712_IRQ_MPU1   0x80

Definition at line 47 of file ice1712.h.

#define ICE1712_IRQ_MPU2   0x20

Definition at line 49 of file ice1712.h.

#define ICE1712_IRQ_PBKDS   0x04 /* playback DS channels */

Definition at line 52 of file ice1712.h.

#define ICE1712_IRQ_PROPCM   0x10

Definition at line 50 of file ice1712.h.

#define ICE1712_IRQ_TIMER   0x40

Definition at line 48 of file ice1712.h.

#define ICE1712_MT_AC97_CMD   0x05 /* byte - AC'97 command & status */

Definition at line 156 of file ice1712.h.

#define ICE1712_MT_AC97_DATA   0x06 /* word - AC'97 data */

Definition at line 158 of file ice1712.h.

#define ICE1712_MT_AC97_INDEX   0x04 /* byte - AC'97 index */

Definition at line 155 of file ice1712.h.

#define ICE1712_MT_CAPTURE_ADDR   0x20 /* dword - capture address */

Definition at line 166 of file ice1712.h.

#define ICE1712_MT_CAPTURE_CONTROL   0x28 /* byte - control */

Definition at line 169 of file ice1712.h.

#define ICE1712_MT_CAPTURE_COUNT   0x26 /* word - capture count */

Definition at line 168 of file ice1712.h.

#define ICE1712_MT_CAPTURE_SIZE   0x24 /* word - capture size */

Definition at line 167 of file ice1712.h.

#define ICE1712_MT_I2S_FORMAT   0x02 /* byte - I2S data format */

Definition at line 154 of file ice1712.h.

#define ICE1712_MT_IRQ   0x00 /* byte - interrupt mask */

Definition at line 147 of file ice1712.h.

#define ICE1712_MT_MONITOR_INDEX   0x3a /* byte */

Definition at line 175 of file ice1712.h.

#define ICE1712_MT_MONITOR_PEAKDATA   0x3f /* byte */

Definition at line 180 of file ice1712.h.

#define ICE1712_MT_MONITOR_PEAKINDEX   0x3e /* byte */

Definition at line 179 of file ice1712.h.

#define ICE1712_MT_MONITOR_RATE   0x3b /* byte */

Definition at line 176 of file ice1712.h.

#define ICE1712_MT_MONITOR_ROUTECTRL   0x3c /* byte */

Definition at line 177 of file ice1712.h.

#define ICE1712_MT_MONITOR_VOLUME   0x38 /* word */

Definition at line 174 of file ice1712.h.

#define ICE1712_MT_PLAYBACK_ADDR   0x10 /* dword - playback address */

Definition at line 159 of file ice1712.h.

#define ICE1712_MT_PLAYBACK_CONTROL   0x18 /* byte - control */

Definition at line 162 of file ice1712.h.

#define ICE1712_MT_PLAYBACK_COUNT   0x16 /* word - playback count */

Definition at line 161 of file ice1712.h.

#define ICE1712_MT_PLAYBACK_SIZE   0x14 /* word - playback size */

Definition at line 160 of file ice1712.h.

#define ICE1712_MT_RATE   0x01 /* byte - sampling rate select */

Definition at line 152 of file ice1712.h.

#define ICE1712_MT_ROUTE_CAPTURE   0x34 /* dword */

Definition at line 173 of file ice1712.h.

#define ICE1712_MT_ROUTE_PSDOUT03   0x30 /* word */

Definition at line 171 of file ice1712.h.

#define ICE1712_MT_ROUTE_SPDOUT   0x32 /* word */

Definition at line 172 of file ice1712.h.

#define ICE1712_MULTI_CAPSTATUS   0x02 /* capture IRQ status */

Definition at line 150 of file ice1712.h.

#define ICE1712_MULTI_CAPTURE   0x80 /* capture IRQ */

Definition at line 148 of file ice1712.h.

#define ICE1712_MULTI_PBKSTATUS   0x01 /* playback IRQ status */

Definition at line 151 of file ice1712.h.

#define ICE1712_MULTI_PLAYBACK   0x40 /* playback IRQ */

Definition at line 149 of file ice1712.h.

#define ICE1712_NATIVE   0x01 /* native mode otherwise SB */

Definition at line 45 of file ice1712.h.

#define ICE1712_PAUSE   0x02 /* pause */

Definition at line 136 of file ice1712.h.

#define ICE1712_PLAYBACK_PAUSE   0x02 /* playback pause */

Definition at line 164 of file ice1712.h.

#define ICE1712_PLAYBACK_START   0x01 /* playback start */

Definition at line 165 of file ice1712.h.

#define ICE1712_REG_AC97_CMD   0x09 /* byte */

Definition at line 63 of file ice1712.h.

#define ICE1712_REG_AC97_DATA   0x0a /* word (little endian) */

Definition at line 71 of file ice1712.h.

#define ICE1712_REG_AC97_INDEX   0x08 /* byte */

Definition at line 62 of file ice1712.h.

#define ICE1712_REG_CONCAP_ADDR   0x14 /* dword - consumer capture */

Definition at line 81 of file ice1712.h.

#define ICE1712_REG_CONCAP_COUNT   0x18 /* word - current/base count */

Definition at line 82 of file ice1712.h.

#define ICE1712_REG_CONTROL   0x00 /* byte */

Definition at line 42 of file ice1712.h.

#define ICE1712_REG_DATA   0x04 /* byte - indirect CCIxx regs */

Definition at line 58 of file ice1712.h.

#define ICE1712_REG_I2C_BYTE_ADDR   0x11 /* byte */

Definition at line 76 of file ice1712.h.

#define ICE1712_REG_I2C_CTRL   0x13 /* byte */

Definition at line 78 of file ice1712.h.

#define ICE1712_REG_I2C_DATA   0x12 /* byte */

Definition at line 77 of file ice1712.h.

#define ICE1712_REG_I2C_DEV_ADDR   0x10 /* byte */

Definition at line 74 of file ice1712.h.

#define ICE1712_REG_INDEX   0x03 /* byte - indirect CCIxx regs */

Definition at line 57 of file ice1712.h.

#define ICE1712_REG_IRQMASK   0x01 /* byte */

Definition at line 46 of file ice1712.h.

#define ICE1712_REG_IRQSTAT   0x02 /* byte */

Definition at line 55 of file ice1712.h.

#define ICE1712_REG_MPU1_CTRL   0x0c /* byte */

Definition at line 72 of file ice1712.h.

#define ICE1712_REG_MPU1_DATA   0x0d /* byte */

Definition at line 73 of file ice1712.h.

#define ICE1712_REG_MPU2_CTRL   0x1c /* byte */

Definition at line 84 of file ice1712.h.

#define ICE1712_REG_MPU2_DATA   0x1d /* byte */

Definition at line 85 of file ice1712.h.

#define ICE1712_REG_NMI_DATA   0x06 /* byte */

Definition at line 60 of file ice1712.h.

#define ICE1712_REG_NMI_INDEX   0x07 /* byte */

Definition at line 61 of file ice1712.h.

#define ICE1712_REG_NMI_STAT1   0x05 /* byte */

Definition at line 59 of file ice1712.h.

#define ICE1712_REG_SERR_SHADOW   0x1b /* byte */

Definition at line 83 of file ice1712.h.

#define ICE1712_REG_TIMER   0x1e /* word */

Definition at line 86 of file ice1712.h.

#define ICE1712_RESET   0x80 /* reset whole chip */

Definition at line 43 of file ice1712.h.

#define ICE1712_ROUTE_AC97   0x01 /* route digital mixer output to AC'97 */

Definition at line 178 of file ice1712.h.

#define ICE1712_SERR_LEVEL   0x04 /* SERR# level otherwise edge */

Definition at line 44 of file ice1712.h.

#define ICE1712_SPDIF_MASTER   0x10 /* S/PDIF input is master clock */

Definition at line 153 of file ice1712.h.

#define ICE1712_START   0x01 /* start */

Definition at line 137 of file ice1712.h.

#define ICE1712_STEREO   0x08 /* stereo */

Definition at line 134 of file ice1712.h.

#define ice_has_con_ac97 (   ice)    (!((ice)->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_NO_CON_AC97))

Definition at line 257 of file ice1712.h.

#define ICEDS (   ice,
  x 
)    ((ice)->dmapath_port + ICE1712_DS_##x)

Definition at line 114 of file ice1712.h.

#define ICEMT (   ice,
  x 
)    ((ice)->profi_port + ICE1712_MT_##x)

Definition at line 145 of file ice1712.h.

#define ICEREG (   ice,
  x 
)    ((ice)->port + ICE1712_REG_##x)

Definition at line 40 of file ice1712.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
ICE_EEP1_CODEC 
ICE_EEP1_ACLINK 
ICE_EEP1_I2SID 
ICE_EEP1_SPDIF 
ICE_EEP1_GPIO_MASK 
ICE_EEP1_GPIO_STATE 
ICE_EEP1_GPIO_DIR 
ICE_EEP1_AC97_MAIN_LO 
ICE_EEP1_AC97_MAIN_HI 
ICE_EEP1_AC97_PCM_LO 
ICE_EEP1_AC97_PCM_HI 
ICE_EEP1_AC97_REC_LO 
ICE_EEP1_AC97_REC_HI 
ICE_EEP1_AC97_RECSRC 
ICE_EEP1_DAC_ID 
ICE_EEP1_DAC_ID1 
ICE_EEP1_DAC_ID2 
ICE_EEP1_DAC_ID3 
ICE_EEP1_ADC_ID 
ICE_EEP1_ADC_ID1 
ICE_EEP1_ADC_ID2 
ICE_EEP1_ADC_ID3 

Definition at line 232 of file ice1712.h.

Function Documentation

int snd_ice1712_akm4xxx_build_controls ( struct snd_ice1712 ice)

Definition at line 168 of file ak4xxx.c.

void snd_ice1712_akm4xxx_free ( struct snd_ice1712 ice)

Definition at line 153 of file ak4xxx.c.

int snd_ice1712_akm4xxx_init ( struct snd_akm4xxx ak,
const struct snd_akm4xxx template,
const struct snd_ak4xxx_private priv,
struct snd_ice1712 ice 
)

Definition at line 126 of file ak4xxx.c.

int snd_ice1712_gpio_get ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 1777 of file ice1712.c.

int snd_ice1712_gpio_put ( struct snd_kcontrol kcontrol,
struct snd_ctl_elem_value ucontrol 
)

Definition at line 1791 of file ice1712.c.

int snd_ice1712_init_cs8427 ( struct snd_ice1712 ice,
int  addr 
)

Definition at line 391 of file ice1712.c.

int snd_ice1712_spdif_build_controls ( struct snd_ice1712 ice)

Definition at line 2436 of file ice1712.c.

int snd_ice1724_get_route_val ( struct snd_ice1712 ice,
int  shift 
)

Definition at line 2070 of file ice1724.c.

int snd_ice1724_put_route_val ( struct snd_ice1712 ice,
unsigned int  val,
int  shift 
)

Definition at line 2089 of file ice1724.c.