Merge branch 'common/fbdev' of master.kernel.org:/pub/scm/linux/kernel/git/lethal...
[pandora-kernel.git] / sound / soc / codecs / sn95031.h
index b17a39b..20376d2 100644 (file)
 #define SN95031_AUDPLLCTRL             0x240
 #define SN95031_DMICBUF0123            0x241
 #define SN95031_DMICBUF45              0x242
-#define SN95031_DMICGPO                0x244
-#define SN95031_DMICMUX                0x245
+#define SN95031_DMICGPO                        0x244
+#define SN95031_DMICMUX                        0x245
 #define SN95031_DMICLK                 0x246
-#define SN95031_MICBIAS                0x247
+#define SN95031_MICBIAS                        0x247
 #define SN95031_ADCCONFIG              0x248
-#define SN95031_MICAMP1                0x249
-#define SN95031_MICAMP2                0x24A
+#define SN95031_MICAMP1                        0x249
+#define SN95031_MICAMP2                        0x24A
 #define SN95031_NOISEMUX               0x24B
 #define SN95031_AUDIOMUX12             0x24C
 #define SN95031_AUDIOMUX34             0x24D
@@ -49,7 +49,7 @@
 #define SN95031_AUDIOTXEN              0x24F
 #define SN95031_HSEPRXCTRL             0x250
 #define SN95031_IHFRXCTRL              0x251
-#define SN95031_HSMIXER                0x256
+#define SN95031_HSMIXER                        0x256
 #define SN95031_DACCONFIG              0x257
 #define SN95031_SOFTMUTE               0x258
 #define SN95031_HSLVOLCTRL             0x259
 #define SN95031_SSR5                   0x384
 #define SN95031_SSR6                   0x385
 
+/* ADC registers */
+
+#define SN95031_ADC1CNTL1 0x1C0
+#define SN95031_ADC_ENBL 0x10
+#define SN95031_ADC_START 0x08
+#define SN95031_ADC1CNTL3 0x1C2
+#define SN95031_ADCTHERM_ENBL 0x04
+#define SN95031_ADCRRDATA_ENBL 0x05
+#define SN95031_STOPBIT_MASK 16
+#define SN95031_ADCTHERM_MASK 4
+#define SN95031_ADC_CHANLS_MAX 15 /* Number of ADC channels */
+#define SN95031_ADC_LOOP_MAX (SN95031_ADC_CHANLS_MAX - 1)
+#define SN95031_ADC_NO_LOOP 0x07
+#define SN95031_AUDIO_GPIO_CTRL 0x070
+
+/* ADC channel code values */
+#define SN95031_AUDIO_DETECT_CODE 0x06
+
+/* ADC base addresses */
+#define SN95031_ADC_CHNL_START_ADDR 0x1C5 /* increments by 1 */
+#define SN95031_ADC_DATA_START_ADDR 0x1D4  /* increments by 2 */
+/* multipier to convert to mV */
+#define SN95031_ADC_ONE_LSB_MULTIPLIER 2346
+
+
+struct mfld_jack_data {
+       int intr_id;
+       int micbias_vol;
+       struct snd_soc_jack *mfld_jack;
+};
+
+extern void sn95031_jack_detection(struct mfld_jack_data *jack_data);
+
 #endif