88pm860x-codec.h 2.9 KB
Newer Older
H
Haojian Zhuang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * 88pm860x-codec.h -- 88PM860x ALSA SoC Audio Driver
 *
 * Copyright 2010 Marvell International Ltd.
 *	Haojian Zhuang <haojian.zhuang@marvell.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __88PM860X_H
#define __88PM860X_H

M
Mark Brown 已提交
15 16 17 18 19 20 21 22 23 24 25
#define PM860X_PCM_IFACE_1		0xb0
#define PM860X_PCM_IFACE_2		0xb1
#define PM860X_PCM_IFACE_3		0xb2
#define PM860X_PCM_RATE			0xb3
#define PM860X_EC_PATH			0xb4
#define PM860X_SIDETONE_L_GAIN		0xb5
#define PM860X_SIDETONE_R_GAIN		0xb6
#define PM860X_SIDETONE_SHIFT		0xb7
#define PM860X_ADC_OFFSET_1		0xb8
#define PM860X_ADC_OFFSET_2		0xb9
#define PM860X_DMIC_DELAY		0xba
H
Haojian Zhuang 已提交
26

M
Mark Brown 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
#define PM860X_I2S_IFACE_1		0xbb
#define PM860X_I2S_IFACE_2		0xbc
#define PM860X_I2S_IFACE_3		0xbd
#define PM860X_I2S_IFACE_4		0xbe
#define PM860X_EQUALIZER_N0_1		0xbf
#define PM860X_EQUALIZER_N0_2		0xc0
#define PM860X_EQUALIZER_N1_1		0xc1
#define PM860X_EQUALIZER_N1_2		0xc2
#define PM860X_EQUALIZER_D1_1		0xc3
#define PM860X_EQUALIZER_D1_2		0xc4
#define PM860X_LOFI_GAIN_LEFT		0xc5
#define PM860X_LOFI_GAIN_RIGHT		0xc6
#define PM860X_HIFIL_GAIN_LEFT		0xc7
#define PM860X_HIFIL_GAIN_RIGHT		0xc8
#define PM860X_HIFIR_GAIN_LEFT		0xc9
#define PM860X_HIFIR_GAIN_RIGHT		0xca
#define PM860X_DAC_OFFSET		0xcb
#define PM860X_OFFSET_LEFT_1		0xcc
#define PM860X_OFFSET_LEFT_2		0xcd
#define PM860X_OFFSET_RIGHT_1		0xce
#define PM860X_OFFSET_RIGHT_2		0xcf
#define PM860X_ADC_ANA_1		0xd0
#define PM860X_ADC_ANA_2		0xd1
#define PM860X_ADC_ANA_3		0xd2
#define PM860X_ADC_ANA_4		0xd3
#define PM860X_ANA_TO_ANA		0xd4
#define PM860X_HS1_CTRL			0xd5
#define PM860X_HS2_CTRL			0xd6
#define PM860X_LO1_CTRL			0xd7
#define PM860X_LO2_CTRL			0xd8
#define PM860X_EAR_CTRL_1		0xd9
#define PM860X_EAR_CTRL_2		0xda
#define PM860X_AUDIO_SUPPLIES_1		0xdb
#define PM860X_AUDIO_SUPPLIES_2		0xdc
#define PM860X_ADC_EN_1			0xdd
#define PM860X_ADC_EN_2			0xde
#define PM860X_DAC_EN_1			0xdf
#define PM860X_DAC_EN_2			0xe1
#define PM860X_AUDIO_CAL_1		0xe2
#define PM860X_AUDIO_CAL_2		0xe3
#define PM860X_AUDIO_CAL_3		0xe4
#define PM860X_AUDIO_CAL_4		0xe5
#define PM860X_AUDIO_CAL_5		0xe6
#define PM860X_ANA_INPUT_SEL_1		0xe7
#define PM860X_ANA_INPUT_SEL_2		0xe8
H
Haojian Zhuang 已提交
72

M
Mark Brown 已提交
73 74
#define PM860X_PCM_IFACE_4		0xe9
#define PM860X_I2S_IFACE_5		0xea
H
Haojian Zhuang 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

#define PM860X_SHORTS			0x3b
#define PM860X_PLL_ADJ_1		0x3c
#define PM860X_PLL_ADJ_2		0x3d

/* bits definition */
#define PM860X_CLK_DIR_IN		0
#define PM860X_CLK_DIR_OUT		1

#define PM860X_DET_HEADSET		(1 << 0)
#define PM860X_DET_MIC			(1 << 1)
#define PM860X_DET_HOOK			(1 << 2)
#define PM860X_SHORT_HEADSET		(1 << 3)
#define PM860X_SHORT_LINEOUT		(1 << 4)
#define PM860X_DET_MASK			0x1F

extern int pm860x_hs_jack_detect(struct snd_soc_codec *, struct snd_soc_jack *,
				 int, int, int, int);
extern int pm860x_mic_jack_detect(struct snd_soc_codec *, struct snd_soc_jack *,
				  int);

#endif	/* __88PM860X_H */