1 /****************************************************************************
3 * ibmcsiti.h : IBM PPC 405LP Codec Serial Interface (CSI) +
4 * Texas Instruments TLV320AIC23 CD quality codec driver
6 * Based on the ibmcsi3k driver
8 * Copyright (C) 2002, Ken Inoue and David Gibson, IBM Corporation
11 #ifndef __TLV320AIC23_INC__
12 #define __TLV320AIC23_INC__
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 */
26 #define TLV320_REG_EXTENT 10
28 /* Macros for register access */
29 #define TLV320_REG_WRITE(a,b) ( ( ((u16)(a)) << 9) | \
30 ( ((u16)(b)) & 0x01ff ) )
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) */
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) */
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) */
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) */
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) */
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) */
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 */
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 */
81 #define TLV320_DAI_FOR 0x0003 /* Data formats */
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) */
91 #define TLV320_DIA_ACT 0x0001 /* Activate Interface (1=active)*/