setup enviroment for compilation
[linux-2.4.21-pre4.git] / drivers / sound / ibmcsiti.h
1 /****************************************************************************
2  *
3  *      ibmcsiti.h : IBM PPC 405LP Codec Serial Interface (CSI) +
4  *                      Texas Instruments TLV320AIC23 CD quality codec driver
5  *
6  *      Based on the ibmcsi3k driver 
7  *
8  *      Copyright (C) 2002, Ken Inoue and David Gibson, IBM Corporation
9  */
10
11 #ifndef __TLV320AIC23_INC__
12 #define __TLV320AIC23_INC__
13
14 #define TLV320_LLI      0x00            /* Left Line In Channel Vol Ctl */
15 #define TLV320_RLI      0x01            /* Right Line In Channel  V.C.  */
16 #define TLV320_LCH      0x02            /* Left Channel Headphone V.C.  */
17 #define TLV320_RCH      0x03            /* Right Channel Headphone V.C. */
18 #define TLV320_AAP      0x04            /* Analog Audio Path Control    */
19 #define TLV320_DAP      0x05            /* Digital Audio Path Control   */
20 #define TLV320_PDC      0x06            /* Power Down Control           */
21 #define TLV320_DAI      0x07            /* Digital Audio Interface Fmt  */
22 #define TLV320_SRC      0x08            /* Sample Rate Control          */
23 #define TLV320_DIA      0x09            /* Digital Interface Activation */
24 #define TLV320_RR       0x0F            /* Reset Register               */
25
26 #define TLV320_REG_EXTENT       10      
27
28 /* Macros for register access */
29 #define TLV320_REG_WRITE(a,b)   ( ( ((u16)(a)) << 9) | \
30                                   ( ((u16)(b)) & 0x01ff ) )
31
32 /* TLV320AIC23 register bit fields (short format) */
33 #define TLV320_LLI_LRS  0x0100          /* L/R line simul. update (1=on)*/
34 #define TLV320_LLI_LIM  0x0080          /* Left line input mute (1=mute)*/
35 #define TLV320_LLI_LIV  0x001F          /* Mask for left line in volume */
36 #define TLV320_LLI_LIV_POR 0x17         /* POR default (0dB)            */
37
38 #define TLV320_RLI_RLS  0x0100          /* R/L line simul. update (1=on)*/
39 #define TLV320_RLI_RIM  0x0080          /* Right line in mute (1=mute)  */
40 #define TLV320_RLI_RIV  0x001F          /* Mask for right line in vol   */
41 #define TLV320_RLI_RIV_POR 0x17         /* POR default (0dB)            */
42
43 #define TLV320_LCH_LRS  0x0100          /* L/R headphone simul. update  */
44 #define TLV320_LCH_LZC  0x0080          /* Zero cross detect (1=on)     */
45 #define TLV320_LCH_LHV  0x007F          /* Mask for left headphone vol  */
46 #define TLV320_LCH_LHV_POR 0x79         /* POR default (0dB)            */
47
48 #define TLV320_RCH_RLS  0x0100          /* L/R headphone simul. update  */
49 #define TLV320_RCH_RZC  0x0080          /* Zero cross detect (1=on)     */
50 #define TLV320_RCH_RHV  0x007F          /* Mask for left headphone vol  */
51 #define TLV320_RCH_RHV_POR 0x79         /* POR default (0dB)            */
52
53 #define TLV320_AAP_STA  0x00C0          /* Mask for sidetone attenuation*/
54 #define TLV320_AAP_STE  0x0020          /* Sidetone enable (1=on)       */
55 #define TLV320_AAP_DAC  0x0010          /* DAC off/on                   */
56 #define TLV320_AAP_BYP  0x0008          /* Bypass                       */
57 #define TLV320_AAP_INSEL  0x0004        /* Input select for ADC         */
58                                         /*      0 = Line, 1 = Mic       */
59 #define TLV320_AAP_MICM 0x0002          /* Mic mute (1=mute)            */
60 #define TLV320_AAP_MICB 0x0001          /* Mic boost (1=20dB)           */ 
61
62 #define TLV320_DAP_DACM 0x0008          /* DAC mute (1=mute)            */
63 #define TLV320_DAP_DEEMP 0x0006         /* Deemphasis 00 disabled,      */
64                                         /* 01 32K, 10 44.1K, 11 48KHz   */
65 #define TLV320_DAP_ADCHP 0x0001         /* ADC high-pass filter (1=on)  */
66
67 #define TLV320_PDC_OFF  0x0080          /* Device power (0=ON, 1=OFF)   */
68 #define TLV320_PDC_CLK  0x0040          /* Clock power                  */
69 #define TLV320_PDC_OSC  0x0020          /* Osc power                    */
70 #define TLV320_PDC_OUT  0x0010          /* Outputs power                */
71 #define TLV320_PDC_DAC  0x0008          /* DAC power                    */
72 #define TLV320_PDC_ADC  0x0004          /* ADC power                    */
73 #define TLV320_PDC_MIC  0x0002          /* Mic power                    */
74 #define TLV320_PDC_LINE 0x0001          /* Line in power                */
75
76 #define TLV320_DAI_MS   0x0040          /* Master (1) / slave (0) mode  */
77 #define TLV320_DAI_LRSWAP 0x0020        /* Left/Right swap (1=swap)     */
78 #define TLV320_DAI_LRP  0x0010          /* Signal phase                 */
79 #define TLV320_DAI_IWL  0x000C          /* Mask for input bit length    */
80                                         /* (00 = 16 bit)                */
81 #define TLV320_DAI_FOR  0x0003          /* Data formats                 */
82
83 #define TLV320_SRC_CLKOUT 0x0080        /* Clock output divider         */
84 #define TLV320_SRC_CLKIN  0x0040        /* Clock input divider          */
85 #define TLV320_SRC_SR   0x003C          /* Sampling rate control mask   */
86 #define TLV320_SRC_BOSR 0x0002          /* Base oversampling rate       */
87                                         /*   USB mode: 0 = 250, 1=272fs */
88                                         /* Normal mode: 0 = 256, 1=384fs*/
89 #define TLV320_SRC_USB  0x0001          /* USB mode (1) / Normal (0)    */
90
91 #define TLV320_DIA_ACT  0x0001          /* Activate Interface (1=active)*/
92
93 #endif