Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 #ifndef __SOUND_DELTA_H
0003 #define __SOUND_DELTA_H
0004 
0005 /*
0006  *   ALSA driver for ICEnsemble ICE1712 (Envy24)
0007  *
0008  *   Lowlevel functions for M-Audio Delta 1010, 44, 66, Dio2496, Audiophile
0009  *                          Digigram VX442
0010  *
0011  *  Copyright (c) 2000 Jaroslav Kysela <perex@perex.cz>
0012  */      
0013 
0014 #define DELTA_DEVICE_DESC \
0015         "{MidiMan M Audio,Delta 1010},"\
0016         "{MidiMan M Audio,Delta 1010LT},"\
0017         "{MidiMan M Audio,Delta DiO 2496},"\
0018         "{MidiMan M Audio,Delta 66},"\
0019         "{MidiMan M Audio,Delta 44},"\
0020         "{MidiMan M Audio,Delta 410},"\
0021         "{MidiMan M Audio,Audiophile 24/96},"\
0022         "{Digigram,VX442},"\
0023         "{Lionstracs,Mediastation},"\
0024         "{Edirol,DA2496},"
0025 
0026 #define ICE1712_SUBDEVICE_DELTA1010 0x121430d6
0027 #define ICE1712_SUBDEVICE_DELTA1010E    0xff1430d6
0028 #define ICE1712_SUBDEVICE_DELTADIO2496  0x121431d6
0029 #define ICE1712_SUBDEVICE_DELTA66   0x121432d6
0030 #define ICE1712_SUBDEVICE_DELTA66E  0xff1432d6
0031 #define ICE1712_SUBDEVICE_DELTA44   0x121433d6
0032 #define ICE1712_SUBDEVICE_AUDIOPHILE    0x121434d6
0033 #define ICE1712_SUBDEVICE_DELTA410  0x121438d6
0034 #define ICE1712_SUBDEVICE_DELTA1010LT   0x12143bd6
0035 #define ICE1712_SUBDEVICE_VX442     0x12143cd6
0036 #define ICE1712_SUBDEVICE_MEDIASTATION  0x694c0100
0037 #define ICE1712_SUBDEVICE_EDIROLDA2496  0xce164010
0038 
0039 /* entry point */
0040 extern struct snd_ice1712_card_info snd_ice1712_delta_cards[];
0041 
0042 
0043 /*
0044  *  MidiMan M-Audio Delta GPIO definitions
0045  */
0046 
0047 /* MidiMan M-Audio Delta shared pins */
0048 #define ICE1712_DELTA_DFS 0x01      /* fast/slow sample rate mode */
0049                     /* (>48kHz must be 1) */
0050 #define ICE1712_DELTA_SPDIF_IN_STAT 0x02
0051                     /* S/PDIF input status */
0052                     /* 0 = valid signal is present */
0053                     /* all except Delta44 */
0054                     /* look to CS8414 datasheet */
0055 #define ICE1712_DELTA_SPDIF_OUT_STAT_CLOCK 0x04
0056                     /* S/PDIF output status clock */
0057                     /* (writing on rising edge - 0->1) */
0058                     /* all except Delta44 */
0059                     /* look to CS8404A datasheet */
0060 #define ICE1712_DELTA_SPDIF_OUT_STAT_DATA 0x08
0061                     /* S/PDIF output status data */
0062                     /* all except Delta44 */
0063                     /* look to CS8404A datasheet */
0064 /* MidiMan M-Audio DeltaDiO */
0065 /* 0x01 = DFS */
0066 /* 0x02 = SPDIF_IN_STAT */
0067 /* 0x04 = SPDIF_OUT_STAT_CLOCK */
0068 /* 0x08 = SPDIF_OUT_STAT_DATA */
0069 #define ICE1712_DELTA_SPDIF_INPUT_SELECT 0x10
0070                     /* coaxial (0), optical (1) */
0071                     /* S/PDIF input select*/
0072 
0073 /* MidiMan M-Audio Delta1010 */
0074 /* 0x01 = DFS */
0075 /* 0x02 = SPDIF_IN_STAT */
0076 /* 0x04 = SPDIF_OUT_STAT_CLOCK */
0077 /* 0x08 = SPDIF_OUT_STAT_DATA */
0078 #define ICE1712_DELTA_WORD_CLOCK_SELECT 0x10
0079                     /* 1 - clock are taken from S/PDIF input */
0080                     /* 0 - clock are taken from Word Clock input */
0081                     /* affected SPMCLKIN pin of Envy24 */
0082 #define ICE1712_DELTA_WORD_CLOCK_STATUS 0x20
0083                     /* 0 = valid word clock signal is present */
0084 
0085 /* MidiMan M-Audio Delta66 */
0086 /* 0x01 = DFS */
0087 /* 0x02 = SPDIF_IN_STAT */
0088 /* 0x04 = SPDIF_OUT_STAT_CLOCK */
0089 /* 0x08 = SPDIF_OUT_STAT_DATA */
0090 #define ICE1712_DELTA_CODEC_SERIAL_DATA 0x10
0091                     /* AKM4524 serial data */
0092 #define ICE1712_DELTA_CODEC_SERIAL_CLOCK 0x20
0093                     /* AKM4524 serial clock */
0094                     /* (writing on rising edge - 0->1 */
0095 #define ICE1712_DELTA_CODEC_CHIP_A  0x40
0096 #define ICE1712_DELTA_CODEC_CHIP_B  0x80
0097                     /* 1 - select chip A or B */
0098 
0099 /* MidiMan M-Audio Delta44 */
0100 /* 0x01 = DFS */
0101 /* 0x10 = CODEC_SERIAL_DATA */
0102 /* 0x20 = CODEC_SERIAL_CLOCK */
0103 /* 0x40 = CODEC_CHIP_A */
0104 /* 0x80 = CODEC_CHIP_B */
0105 
0106 /* MidiMan M-Audio Audiophile/Delta410 definitions */
0107 /* thanks to Kristof Pelckmans <Kristof.Pelckmans@antwerpen.be> for Delta410 info */
0108 /* 0x01 = DFS */
0109 #define ICE1712_DELTA_AP_CCLK   0x02    /* SPI clock */
0110                     /* (clocking on rising edge - 0->1) */
0111 #define ICE1712_DELTA_AP_DIN    0x04    /* data input */
0112 #define ICE1712_DELTA_AP_DOUT   0x08    /* data output */
0113 #define ICE1712_DELTA_AP_CS_DIGITAL 0x10 /* CS8427 chip select */
0114                     /* low signal = select */
0115 #define ICE1712_DELTA_AP_CS_CODEC 0x20  /* AK4528 (audiophile), AK4529 (Delta410) chip select */
0116                     /* low signal = select */
0117 
0118 /* MidiMan M-Audio Delta1010LT definitions */
0119 /* thanks to Anders Johansson <ajh@watri.uwa.edu.au> */
0120 /* 0x01 = DFS */
0121 #define ICE1712_DELTA_1010LT_CCLK   0x02    /* SPI clock (AK4524 + CS8427) */
0122 #define ICE1712_DELTA_1010LT_DIN    0x04    /* data input (CS8427) */
0123 #define ICE1712_DELTA_1010LT_DOUT   0x08    /* data output (AK4524 + CS8427) */
0124 #define ICE1712_DELTA_1010LT_CS     0x70    /* mask for CS address */
0125 #define ICE1712_DELTA_1010LT_CS_CHIP_A  0x00    /* AK4524 #0 */
0126 #define ICE1712_DELTA_1010LT_CS_CHIP_B  0x10    /* AK4524 #1 */
0127 #define ICE1712_DELTA_1010LT_CS_CHIP_C  0x20    /* AK4524 #2 */
0128 #define ICE1712_DELTA_1010LT_CS_CHIP_D  0x30    /* AK4524 #3 */
0129 #define ICE1712_DELTA_1010LT_CS_CS8427  0x40    /* CS8427 */
0130 #define ICE1712_DELTA_1010LT_CS_NONE    0x50    /* nothing */
0131 #define ICE1712_DELTA_1010LT_WORDCLOCK 0x80 /* sample clock source: 0 = Word Clock Input, 1 = S/PDIF Input ??? */
0132 
0133 /* M-Audio Delta 66 rev. E definitions.
0134  * Newer revisions of Delta 66 have CS8427 over SPI for
0135  * S/PDIF transceiver instead of CS8404/CS8414. */
0136 /* 0x01 = DFS */
0137 #define ICE1712_DELTA_66E_CCLK      0x02    /* SPI clock */
0138 #define ICE1712_DELTA_66E_DIN       0x04    /* data input */
0139 #define ICE1712_DELTA_66E_DOUT      0x08    /* data output */
0140 #define ICE1712_DELTA_66E_CS_CS8427 0x10    /* chip select, low = CS8427 */
0141 #define ICE1712_DELTA_66E_CS_CHIP_A 0x20    /* AK4524 #0 */
0142 #define ICE1712_DELTA_66E_CS_CHIP_B 0x40    /* AK4524 #1 */
0143 
0144 /* Digigram VX442 definitions */
0145 #define ICE1712_VX442_CCLK      0x02    /* SPI clock */
0146 #define ICE1712_VX442_DIN       0x04    /* data input */
0147 #define ICE1712_VX442_DOUT      0x08    /* data output */
0148 #define ICE1712_VX442_CS_DIGITAL    0x10    /* chip select, low = CS8427 */
0149 #define ICE1712_VX442_CODEC_CHIP_A  0x20    /* select chip A */
0150 #define ICE1712_VX442_CODEC_CHIP_B  0x40    /* select chip B */
0151 
0152 #endif /* __SOUND_DELTA_H */