* [PATCH 3/5] omap-alsa-tsc2101-mixer: playback and recording selection cleanup.
@ 2006-03-30 22:55 lamikr
0 siblings, 0 replies; only message in thread
From: lamikr @ 2006-03-30 22:55 UTC (permalink / raw)
To: OMAP-Linux
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: 0003-omap-alsa-tsc2101-mixer-playback-and-recording-selection-cleanup.txt --]
[-- Type: text/plain, Size: 6560 bytes --]
>From nobody Mon Sep 17 00:00:00 2001
From: lamikr <lamikr@cc.jyu.fi)>
Date: Fri Mar 31 01:21:59 2006 +0300
Subject: [PATCH 3/5] omap-alsa-tsc2101-mixer: playback and recording selection cleanup.
Signed-off-by: lamikr <lamikr@cc.jyu.fi>
---
sound/arm/omap/omap-alsa-tsc2101-mixer.c | 80 +++++++++++-------------------
sound/arm/omap/omap-alsa-tsc2101-mixer.h | 16 +++---
2 files changed, 37 insertions(+), 59 deletions(-)
cc513fa045980cdd6366f70559988cb4a8b5a137
diff --git a/sound/arm/omap/omap-alsa-tsc2101-mixer.c b/sound/arm/omap/omap-alsa-tsc2101-mixer.c
index 1b7b968..3d99984 100644
--- a/sound/arm/omap/omap-alsa-tsc2101-mixer.c
+++ b/sound/arm/omap/omap-alsa-tsc2101-mixer.c
@@ -85,25 +85,24 @@ inline u16 omap_tsc2101_audio_read(u8 ad
}
/*
- * Used for switching between TSC2101 recourd sources.
- * Logic is adjusted from the TSC2101 OSS code.
+ * For selecting tsc2101 recourd source.
*/
-static int set_record_source(int val)
+static void set_record_source(int val)
{
u16 data;
- int maskedVal;
- FN_IN;
- maskedVal = 0xe0 & val;
-
- data = omap_tsc2101_audio_read(TSC2101_MIXER_PGA_CTRL);
+ /* Mute Analog Sidetone
+ * Analog sidetone gain db?
+ * Cell Phone In not connected to ADC
+ * Input selected by MICSEL connected to ADC
+ */
+ data = MPC_ASTMU | MPC_ASTG(0x45);
data &= ~MPC_MICSEL(7); /* clear all MICSEL bits */
- data |= maskedVal;
+ data |= MPC_MICSEL(val);
+ data |= MPC_MICADC;
omap_tsc2101_audio_write(TSC2101_MIXER_PGA_CTRL, data);
+
current_rec_src = val;
-
- FN_OUT(0);
- return 0;
}
/*
@@ -324,24 +323,9 @@ int set_mixer_volume_as_handset_gain_con
return retVal;
}
-void init_record_sources(void)
-{
- /* Mute Analog Sidetone
- * analog sidetone gain db?
- * Cell Phone In not connected to ADC
- * Input selected by MICSEL connected to ADC
- */
- omap_tsc2101_audio_write(TSC2101_MIXER_PGA_CTRL,
- MPC_ASTMU | MPC_ASTG(0x40) | ~MPC_CPADC | MPC_MICADC);
- /* Set record source, Select MIC_INHED input for headset */
- set_record_source(REC_SRC_SINGLE_ENDED_MICIN_HED);
-}
-
void set_loudspeaker_to_playback_target(void)
{
- u16 val;
-
- /* power down sp1, sp2 and loudspeaker */
+ /* power down SPK1, SPK2 and loudspeaker */
omap_tsc2101_audio_write(TSC2101_CODEC_POWER_CTRL,
CPC_SP1PWDN | CPC_SP2PWDN | CPC_LDAPWDF);
/* ADC, DAC, Analog Sidetone, cellphone, buzzer softstepping enabled
@@ -352,21 +336,13 @@ void set_loudspeaker_to_playback_target(
/* DAC left and right routed to SPK1/SPK2
* SPK1/SPK2 unmuted
- * keyclicks routed to SPK1/SPK2
- */
- val = AC5_DIFFIN |
+ * Keyclicks routed to SPK1/SPK2 */
+ omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_5,
+ AC5_DIFFIN |
AC5_DAC2SPK1(3) | AC5_AST2SPK1 | AC5_KCL2SPK1 |
- AC5_DAC2SPK2(3) | AC5_AST2SPK2 | AC5_KCL2SPK2 |
- AC5_HDSCPTC;
- val = val & ~AC5_HDSCPTC;
- omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_5, val);
-
- /* powerdown spk1/out32n and spk2 */
- val = omap_tsc2101_audio_read(TSC2101_POWERDOWN_STS);
- val = val & ~(~PS_SPK1FL | ~PS_HNDFL | PS_LSPKFL);
- omap_tsc2101_audio_write(TSC2101_POWERDOWN_STS, val);
-
- /* routing selected to SPK1 goes to OUT8P/OUT84 alsa. (loudspeaker)
+ AC5_DAC2SPK2(3) | AC5_AST2SPK2 | AC5_KCL2SPK2);
+
+ /* routing selected to SPK1 goes also to OUT8P/OUT8N. (loudspeaker)
* analog sidetone routed to loudspeaker
* buzzer pga routed to loudspeaker
* keyclick routing to loudspeaker
@@ -380,29 +356,29 @@ void set_loudspeaker_to_playback_target(
*/
omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_6,
AC6_SPL2LSK | AC6_AST2LSK | AC6_BUZ2LSK | AC6_KCL2LSK |
- AC6_CPI2LSK | AC6_MIC2CPO | AC6_SPL2CPO |
- ~AC6_MUTLSPK | ~AC6_MUTSPK2 | ~AC6_LDSCPTC | ~AC6_VGNDSCPTC);
+ AC6_CPI2LSK | AC6_MIC2CPO | AC6_SPL2CPO);
current_playback_target = PLAYBACK_TARGET_LOUDSPEAKER;
}
void set_headphone_to_playback_target(void)
{
- /* power down sp1, sp2 and loudspeaker */
+ /* power down SPK1, SPK2 and loudspeaker */
omap_tsc2101_audio_write(TSC2101_CODEC_POWER_CTRL,
CPC_SP1PWDN | CPC_SP2PWDN | CPC_LDAPWDF);
/* ADC, DAC, Analog Sidetone, cellphone, buzzer softstepping enabled */
/* 1dB AGC hysteresis */
/* MICes bias 2V */
omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_4, AC4_MB_HED(0));
-
- /* DAC left and right routed to SPK2 */
- /* SPK1/2 unmuted */
+
+ /* DAC left and right routed to SPK1/SPK2
+ * SPK1/SPK2 unmuted
+ * Keyclicks routed to SPK1/SPK2 */
omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_5,
AC5_DAC2SPK1(3) | AC5_AST2SPK1 | AC5_KCL2SPK1 |
AC5_DAC2SPK2(3) | AC5_AST2SPK2 | AC5_KCL2SPK2 |
AC5_HDSCPTC);
-
- /* OUT8P/N muted, CPOUT muted */
+
+ /* OUT8P/OUT8N muted, CPOUT muted */
omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_6,
AC6_MUTLSPK | AC6_MUTSPK2 | AC6_LDSCPTC |
AC6_VGNDSCPTC);
@@ -479,7 +455,9 @@ void snd_omap_init_mixer(void)
/* Headset/Hook switch detect enabled */
omap_tsc2101_audio_write(TSC2101_AUDIO_CTRL_7, AC7_DETECT);
- init_record_sources();
+ /* Select headset to record source (MIC_INHED)*/
+ set_record_source(REC_SRC_SINGLE_ENDED_MICIN_HED);
+ /* Init loudspeaker as a default playback target*/
init_playback_targets();
FN_OUT(0);
diff --git a/sound/arm/omap/omap-alsa-tsc2101-mixer.h b/sound/arm/omap/omap-alsa-tsc2101-mixer.h
index f68f33d..ff852b5 100644
--- a/sound/arm/omap/omap-alsa-tsc2101-mixer.h
+++ b/sound/arm/omap/omap-alsa-tsc2101-mixer.h
@@ -62,14 +62,14 @@
/* following are used for register 03h Mixer PGA control bits D7-D5 for selecting record source */
#define REC_SRC_TARGET_COUNT 0x08
-#define REC_SRC_SINGLE_ENDED_MICIN_HED MPC_MICSEL(0) // oss code referred to MIXER_LINE
-#define REC_SRC_SINGLE_ENDED_MICIN_HND MPC_MICSEL(1) // oss code referred to MIXER_MIC
-#define REC_SRC_SINGLE_ENDED_AUX1 MPC_MICSEL(2)
-#define REC_SRC_SINGLE_ENDED_AUX2 MPC_MICSEL(3)
-#define REC_SRC_MICIN_HED_AND_AUX1 MPC_MICSEL(4)
-#define REC_SRC_MICIN_HED_AND_AUX2 MPC_MICSEL(5)
-#define REC_SRC_MICIN_HND_AND_AUX1 MPC_MICSEL(6)
-#define REC_SRC_MICIN_HND_AND_AUX2 MPC_MICSEL(7)
+#define REC_SRC_SINGLE_ENDED_MICIN_HED 0x00 // oss code referred to MIXER_LINE
+#define REC_SRC_SINGLE_ENDED_MICIN_HND 0x01 // oss code referred to MIXER_MIC
+#define REC_SRC_SINGLE_ENDED_AUX1 0x02
+#define REC_SRC_SINGLE_ENDED_AUX2 0x03
+#define REC_SRC_MICIN_HED_AND_AUX1 0x04
+#define REC_SRC_MICIN_HED_AND_AUX2 0x05
+#define REC_SRC_MICIN_HND_AND_AUX1 0x06
+#define REC_SRC_MICIN_HND_AND_AUX2 0x07
#define DEFAULT_OUTPUT_VOLUME 90 // default output volume to dac dgc
#define DEFAULT_INPUT_VOLUME 20 // default record volume
--
1.2.2
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2006-03-30 22:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-30 22:55 [PATCH 3/5] omap-alsa-tsc2101-mixer: playback and recording selection cleanup lamikr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox