~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to sound/soc/codecs/sn95031.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  sn95031.h - TI sn95031 Codec driver
 
3
 *
 
4
 *  Copyright (C) 2010 Intel Corp
 
5
 *  Author: Vinod Koul <vinod.koul@intel.com>
 
6
 *  Author: Harsha Priya <priya.harsha@intel.com>
 
7
 *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
8
 *
 
9
 *  This program is free software; you can redistribute it and/or modify
 
10
 *  it under the terms of the GNU General Public License as published by
 
11
 *  the Free Software Foundation; version 2 of the License.
 
12
 *
 
13
 *  This program is distributed in the hope that it will be useful, but
 
14
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
16
 *  General Public License for more details.
 
17
 *
 
18
 *  You should have received a copy of the GNU General Public License along
 
19
 *  with this program; if not, write to the Free Software Foundation, Inc.,
 
20
 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 
21
 *
 
22
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
23
 *
 
24
 *
 
25
 */
 
26
#ifndef _SN95031_H
 
27
#define _SN95031_H
 
28
 
 
29
/*register map*/
 
30
#define SN95031_VAUD                    0xDB
 
31
#define SN95031_VHSP                    0xDC
 
32
#define SN95031_VHSN                    0xDD
 
33
#define SN95031_VIHF                    0xC9
 
34
 
 
35
#define SN95031_AUDPLLCTRL              0x240
 
36
#define SN95031_DMICBUF0123             0x241
 
37
#define SN95031_DMICBUF45               0x242
 
38
#define SN95031_DMICGPO                 0x244
 
39
#define SN95031_DMICMUX                 0x245
 
40
#define SN95031_DMICLK                  0x246
 
41
#define SN95031_MICBIAS                 0x247
 
42
#define SN95031_ADCCONFIG               0x248
 
43
#define SN95031_MICAMP1                 0x249
 
44
#define SN95031_MICAMP2                 0x24A
 
45
#define SN95031_NOISEMUX                0x24B
 
46
#define SN95031_AUDIOMUX12              0x24C
 
47
#define SN95031_AUDIOMUX34              0x24D
 
48
#define SN95031_AUDIOSINC               0x24E
 
49
#define SN95031_AUDIOTXEN               0x24F
 
50
#define SN95031_HSEPRXCTRL              0x250
 
51
#define SN95031_IHFRXCTRL               0x251
 
52
#define SN95031_HSMIXER                 0x256
 
53
#define SN95031_DACCONFIG               0x257
 
54
#define SN95031_SOFTMUTE                0x258
 
55
#define SN95031_HSLVOLCTRL              0x259
 
56
#define SN95031_HSRVOLCTRL              0x25A
 
57
#define SN95031_IHFLVOLCTRL             0x25B
 
58
#define SN95031_IHFRVOLCTRL             0x25C
 
59
#define SN95031_DRIVEREN                0x25D
 
60
#define SN95031_LOCTL                   0x25E
 
61
#define SN95031_VIB1C1                  0x25F
 
62
#define SN95031_VIB1C2                  0x260
 
63
#define SN95031_VIB1C3                  0x261
 
64
#define SN95031_VIB1SPIPCM1             0x262
 
65
#define SN95031_VIB1SPIPCM2             0x263
 
66
#define SN95031_VIB1C5                  0x264
 
67
#define SN95031_VIB2C1                  0x265
 
68
#define SN95031_VIB2C2                  0x266
 
69
#define SN95031_VIB2C3                  0x267
 
70
#define SN95031_VIB2SPIPCM1             0x268
 
71
#define SN95031_VIB2SPIPCM2             0x269
 
72
#define SN95031_VIB2C5                  0x26A
 
73
#define SN95031_BTNCTRL1                0x26B
 
74
#define SN95031_BTNCTRL2                0x26C
 
75
#define SN95031_PCM1TXSLOT01            0x26D
 
76
#define SN95031_PCM1TXSLOT23            0x26E
 
77
#define SN95031_PCM1TXSLOT45            0x26F
 
78
#define SN95031_PCM1RXSLOT0_3           0x270
 
79
#define SN95031_PCM1RXSLOT45            0x271
 
80
#define SN95031_PCM2TXSLOT01            0x272
 
81
#define SN95031_PCM2TXSLOT23            0x273
 
82
#define SN95031_PCM2TXSLOT45            0x274
 
83
#define SN95031_PCM2RXSLOT01            0x275
 
84
#define SN95031_PCM2RXSLOT23            0x276
 
85
#define SN95031_PCM2RXSLOT45            0x277
 
86
#define SN95031_PCM1C1                  0x278
 
87
#define SN95031_PCM1C2                  0x279
 
88
#define SN95031_PCM1C3                  0x27A
 
89
#define SN95031_PCM2C1                  0x27B
 
90
#define SN95031_PCM2C2                  0x27C
 
91
/*end codec register defn*/
 
92
 
 
93
/*vendor defn these are not part of avp*/
 
94
#define SN95031_SSR2                    0x381
 
95
#define SN95031_SSR3                    0x382
 
96
#define SN95031_SSR5                    0x384
 
97
#define SN95031_SSR6                    0x385
 
98
 
 
99
/* ADC registers */
 
100
 
 
101
#define SN95031_ADC1CNTL1 0x1C0
 
102
#define SN95031_ADC_ENBL 0x10
 
103
#define SN95031_ADC_START 0x08
 
104
#define SN95031_ADC1CNTL3 0x1C2
 
105
#define SN95031_ADCTHERM_ENBL 0x04
 
106
#define SN95031_ADCRRDATA_ENBL 0x05
 
107
#define SN95031_STOPBIT_MASK 16
 
108
#define SN95031_ADCTHERM_MASK 4
 
109
#define SN95031_ADC_CHANLS_MAX 15 /* Number of ADC channels */
 
110
#define SN95031_ADC_LOOP_MAX (SN95031_ADC_CHANLS_MAX - 1)
 
111
#define SN95031_ADC_NO_LOOP 0x07
 
112
#define SN95031_AUDIO_GPIO_CTRL 0x070
 
113
 
 
114
/* ADC channel code values */
 
115
#define SN95031_AUDIO_DETECT_CODE 0x06
 
116
 
 
117
/* ADC base addresses */
 
118
#define SN95031_ADC_CHNL_START_ADDR 0x1C5 /* increments by 1 */
 
119
#define SN95031_ADC_DATA_START_ADDR 0x1D4  /* increments by 2 */
 
120
/* multipier to convert to mV */
 
121
#define SN95031_ADC_ONE_LSB_MULTIPLIER 2346
 
122
 
 
123
 
 
124
struct mfld_jack_data {
 
125
        int intr_id;
 
126
        int micbias_vol;
 
127
        struct snd_soc_jack *mfld_jack;
 
128
};
 
129
 
 
130
extern void sn95031_jack_detection(struct mfld_jack_data *jack_data);
 
131
 
 
132
#endif