author | shuai.li <shuai.li@amlogic.com> | 2013-01-21 08:05:37 (GMT) |
---|---|---|
committer | shuai.li <shuai.li@amlogic.com> | 2013-01-21 08:08:21 (GMT) |
commit | 4f0f9de9fa3de363eb25def424f2c24a422ce1fc (patch) | |
tree | 3a7532059b2be2c288fff89137f8114edae08ab9 | |
parent | 099e88b011898b544d5b7123f82d37c5d61f94a8 (diff) | |
download | audio-4f0f9de9fa3de363eb25def424f2c24a422ce1fc.zip audio-4f0f9de9fa3de363eb25def424f2c24a422ce1fc.tar.gz audio-4f0f9de9fa3de363eb25def424f2c24a422ce1fc.tar.bz2 |
enable wm8960 codec
-rwxr-xr-x[-rw-r--r--] | Android.mk | 3 | ||||
-rwxr-xr-x | audio_hw.c | 4 | ||||
-rwxr-xr-x | wm8960_mixer_ctrl.h | 368 |
3 files changed, 374 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk index 50cd668..b0e90d4 100644..100755 --- a/Android.mk +++ b/Android.mk @@ -39,6 +39,9 @@ ifeq ($(strip $(BOARD_ALSA_AUDIO)),tiny) LOCAL_CFLAGS += -DAML_AUDIO_RT5631 endif + ifeq ($(BOARD_AUDIO_CODEC),wm8960) + LOCAL_CFLAGS += -DAML_AUDIO_WM8960 + endif include $(BUILD_SHARED_LIBRARY) # The stub audio policy HAL module that can be used as a skeleton for @@ -47,7 +47,9 @@ #if defined(AML_AUDIO_RT5631) #include "rt5631_mixer_ctrl.h" #elif defined(AML_AUDIO_M3CODEC) -#inclued "m3codec_mixer_ctl.h" +#include "m3codec_mixer_ctl.h" +#elif defined(AML_AUDIO_WM8960) +#include "wm8960_mixer_ctrl.h" #else struct route_setting { diff --git a/wm8960_mixer_ctrl.h b/wm8960_mixer_ctrl.h new file mode 100755 index 0000000..74efeaf --- a/dev/null +++ b/wm8960_mixer_ctrl.h @@ -0,0 +1,368 @@ +/* + * wm8960_mixer_ctrl.h -- Wm8960 Mixer control for Android ICS + * + * Copyright 2012 Amlogic Corp. + * + */ + +#ifndef _WM8960_MIXER_CTRL_H_ +#define _WM8960_MIXER_CTRL_H_ + +struct route_setting +{ + char *ctl_name; + int intval; + char *strval; +}; + + + +#define MIXER_LEFT_BOOST_MIXER_LINPUT1_SWITCH "Left Boost Mixer LINPUT1 Switch" +#define MIXER_LEFT_INPUT_MIXER_BOOST_SWITCH "Left Input Mixer Boost Switch" +#define MIXER_LEFT_BOOST_MIXER_LINPUT3_SWITCH "Left Boost Mixer LINPUT3 Switch" +#define MIXER_LEFT_BOOST_MIXER_LINPUT2_SWITCH "Left Boost Mixer LINPUT2 Switch" +#define MIXER_CAPTURE_SWITCH "Capture Switch" +#define MIXER_CAPTURE_VOLUME "Capture Volume" +#define MIXER_ADC_HIGH_PASS_FILTER_SWITCH "ADC High Pass Filter Switch" +#define MIXER_CAPTURE_VOLUME_ZC_SWITCH "Capture Volume ZC Switch" +#define MIXER_ADC_OUTPUT_SELECT "ADC Output Select" +#define MIXER_ADC_PCM_CAPTURE_VOLUME "ADC PCM Capture Volume" +#define MIXER_LEFT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH "Left Output Mixer PCM Playback Switch" +#define MIXER_RIGHT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH "Right Output Mixer PCM Playback Switch" +#define MIXER_HEADPHONE_PLAYBACK_VOLUME "Headphone Playback Volume" +#define MIXER_SPEAKER_PLAYBACK_VOLUME "Speaker Playback Volume" +#define MIXER_SPEAK_DC_VOLUME "Speaker DC Volume" +#define MIXER_SPEAKER_AC_VOLUME "Speaker AC Volume" +#define MIXER_DAC_MONO_MIX "DAC Mono Mix" +#define MIXER_MONO_OUTPUT_MIXER_LEFT_SWITCH "Mono Output Mixer Left Switch" +#define MIXER_MONO_OUTPUT_MIXER_RIGHT_SWITCH "Mono Output Mixer Right Switch" + + +struct route_setting mic_input[] = { + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT1_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_INPUT_MIXER_BOOST_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT3_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT2_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME, + .intval = 40, + }, + { + .ctl_name = MIXER_ADC_HIGH_PASS_FILTER_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME_ZC_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_OUTPUT_SELECT, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_PCM_CAPTURE_VOLUME, + .intval = 2, + }, + { + .ctl_name = MIXER_LEFT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_RIGHT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_HEADPHONE_PLAYBACK_VOLUME, + .intval = 0, + }, + { + .ctl_name = MIXER_SPEAKER_PLAYBACK_VOLUME, + .intval = 125, + }, + { + .ctl_name = MIXER_SPEAK_DC_VOLUME, + .intval = 3, + }, + { + .ctl_name = MIXER_SPEAKER_AC_VOLUME, + .intval = 3, + }, + { + .ctl_name = MIXER_DAC_MONO_MIX, + .intval = 1, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_LEFT_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_RIGHT_SWITCH, + .intval = 1, + }, + { + .ctl_name = NULL, + }, +}; + +struct route_setting line_input[] = { + { + .ctl_name = NULL, + }, +}; + +struct route_setting output_speaker[] = { + /* + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT1_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_INPUT_MIXER_BOOST_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT3_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT2_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME, + .intval = 40, + }, + { + .ctl_name = MIXER_ADC_HIGH_PASS_FILTER_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME_ZC_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_OUTPUT_SELECT, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_PCM_CAPTURE_VOLUME, + .intval = 2, + }, + */ + { + .ctl_name = MIXER_LEFT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_RIGHT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_HEADPHONE_PLAYBACK_VOLUME, + .intval = 0, + }, + { + .ctl_name = MIXER_SPEAKER_PLAYBACK_VOLUME, + .intval = 125, + }, + { + .ctl_name = MIXER_SPEAK_DC_VOLUME, + .intval = 3, + }, + { + .ctl_name = MIXER_SPEAKER_AC_VOLUME, + .intval = 3, + }, + { + .ctl_name = MIXER_DAC_MONO_MIX, + .intval = 1, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_LEFT_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_RIGHT_SWITCH, + .intval = 1, + }, + { + .ctl_name = NULL, + }, +}; + +struct route_setting output_headphone[] = { + /* + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT1_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_INPUT_MIXER_BOOST_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT3_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT2_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME, + .intval = 40, + }, + { + .ctl_name = MIXER_ADC_HIGH_PASS_FILTER_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME_ZC_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_OUTPUT_SELECT, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_PCM_CAPTURE_VOLUME, + .intval = 2, + }, + */ + { + .ctl_name = MIXER_LEFT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_RIGHT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_SPEAKER_PLAYBACK_VOLUME, + .intval = 0, + }, + { + .ctl_name = MIXER_DAC_MONO_MIX, + .intval = 0, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_LEFT_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_RIGHT_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_HEADPHONE_PLAYBACK_VOLUME, + .intval = 112, + }, + { + .ctl_name = NULL, + }, +}; + +struct route_setting output_headset[] = { + /* + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT1_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_LEFT_INPUT_MIXER_BOOST_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT3_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_LEFT_BOOST_MIXER_LINPUT2_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME, + .intval = 40, + }, + { + .ctl_name = MIXER_ADC_HIGH_PASS_FILTER_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_CAPTURE_VOLUME_ZC_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_OUTPUT_SELECT, + .intval = 1, + }, + { + .ctl_name = MIXER_ADC_PCM_CAPTURE_VOLUME, + .intval = 2, + }, + */ + { + .ctl_name = MIXER_LEFT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + { + .ctl_name = MIXER_RIGHT_OUTPUT_MIXER_PCM_PLAYBACK_SWITCH, + .intval = 1, + }, + + { + .ctl_name = MIXER_SPEAKER_PLAYBACK_VOLUME, + .intval = 0, + }, + { + .ctl_name = MIXER_DAC_MONO_MIX, + .intval = 0, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_LEFT_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_MONO_OUTPUT_MIXER_RIGHT_SWITCH, + .intval = 0, + }, + { + .ctl_name = MIXER_HEADPHONE_PLAYBACK_VOLUME, + .intval = 112, + }, + { + .ctl_name = NULL, + }, +}; + + +#endif //_WM8960_MIXER_CTRL_H_ + |