Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 #ifndef __SOUND_EWS_H
0003 #define __SOUND_EWS_H
0004 
0005 /*
0006  *   ALSA driver for ICEnsemble ICE1712 (Envy24)
0007  *
0008  *   Lowlevel functions for Terratec EWS88MT/D, EWX24/96, DMX 6Fire
0009  *
0010  *  Copyright (c) 2000 Jaroslav Kysela <perex@perex.cz>
0011  *                    2002 Takashi Iwai <tiwai@suse.de>
0012  */      
0013 
0014 #define EWS_DEVICE_DESC \
0015         "{TerraTec,EWX 24/96},"\
0016         "{TerraTec,EWS 88MT},"\
0017         "{TerraTec,EWS 88D},"\
0018         "{TerraTec,DMX 6Fire},"\
0019         "{TerraTec,Phase 88}," \
0020         "{terrasoniq,TS 88},"
0021 
0022 #define ICE1712_SUBDEVICE_EWX2496   0x3b153011
0023 #define ICE1712_SUBDEVICE_EWS88MT   0x3b151511
0024 #define ICE1712_SUBDEVICE_EWS88MT_NEW   0x3b152511
0025 #define ICE1712_SUBDEVICE_EWS88D    0x3b152b11
0026 #define ICE1712_SUBDEVICE_DMX6FIRE  0x3b153811
0027 #define ICE1712_SUBDEVICE_PHASE88   0x3b155111
0028 #define ICE1712_SUBDEVICE_TS88      0x3b157c11
0029 
0030 /* entry point */
0031 extern struct snd_ice1712_card_info snd_ice1712_ews_cards[];
0032 
0033 
0034 /* TerraTec EWX 24/96 configuration definitions */
0035 
0036 #define ICE1712_EWX2496_AK4524_CS   0x01    /* AK4524 chip select; low = active */
0037 #define ICE1712_EWX2496_AIN_SEL     0x02    /* input sensitivity switch; high = louder */
0038 #define ICE1712_EWX2496_AOUT_SEL    0x04    /* output sensitivity switch; high = louder */
0039 #define ICE1712_EWX2496_RW      0x08    /* read/write switch for i2c; high = write  */
0040 #define ICE1712_EWX2496_SERIAL_DATA 0x10    /* i2c & ak4524 data */
0041 #define ICE1712_EWX2496_SERIAL_CLOCK    0x20    /* i2c & ak4524 clock */
0042 #define ICE1712_EWX2496_TX2     0x40    /* MIDI2 (not used) */
0043 #define ICE1712_EWX2496_RX2     0x80    /* MIDI2 (not used) */
0044 
0045 /* TerraTec EWS 88MT/D configuration definitions */
0046 /* RW, SDA snd SCLK are identical with EWX24/96 */
0047 #define ICE1712_EWS88_CS8414_RATE   0x07    /* CS8414 sample rate: gpio 0-2 */
0048 #define ICE1712_EWS88_RW        0x08    /* read/write switch for i2c; high = write  */
0049 #define ICE1712_EWS88_SERIAL_DATA   0x10    /* i2c & ak4524 data */
0050 #define ICE1712_EWS88_SERIAL_CLOCK  0x20    /* i2c & ak4524 clock */
0051 #define ICE1712_EWS88_TX2       0x40    /* MIDI2 (only on 88D) */
0052 #define ICE1712_EWS88_RX2       0x80    /* MIDI2 (only on 88D) */
0053 
0054 /* i2c address */
0055 #define ICE1712_EWS88MT_CS8404_ADDR (0x40>>1)
0056 #define ICE1712_EWS88MT_INPUT_ADDR  (0x46>>1)
0057 #define ICE1712_EWS88MT_OUTPUT_ADDR (0x48>>1)
0058 #define ICE1712_EWS88MT_OUTPUT_SENSE    0x40    /* mask */
0059 #define ICE1712_EWS88D_PCF_ADDR     (0x40>>1)
0060 
0061 /* TerraTec DMX 6Fire configuration definitions */
0062 #define ICE1712_6FIRE_AK4524_CS_MASK    0x07    /* AK4524 chip select #1-#3 */
0063 #define ICE1712_6FIRE_RW        0x08    /* read/write switch for i2c; high = write  */
0064 #define ICE1712_6FIRE_SERIAL_DATA   0x10    /* i2c & ak4524 data */
0065 #define ICE1712_6FIRE_SERIAL_CLOCK  0x20    /* i2c & ak4524 clock */
0066 #define ICE1712_6FIRE_TX2       0x40    /* MIDI2 */
0067 #define ICE1712_6FIRE_RX2       0x80    /* MIDI2 */
0068 
0069 #define ICE1712_6FIRE_PCF9554_ADDR  (0x40>>1)
0070 #define ICE1712_6FIRE_CS8427_ADDR   (0x22)
0071 
0072 #endif /* __SOUND_EWS_H */