All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] ASoC: TWL4030: VIBRA output support
@ 2009-05-05  5:55 Peter Ujfalusi
  2009-05-05  5:55 ` [PATCH 1/1] ASoC: TWL4030: Add VIBRA output Peter Ujfalusi
  2009-05-05  6:12 ` [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi
  0 siblings, 2 replies; 4+ messages in thread
From: Peter Ujfalusi @ 2009-05-05  5:55 UTC (permalink / raw)
  To: alsa-devel; +Cc: sakoman, broonie

Hello,

The VIBRA output can be driven with audio data or with local vibrator driver,
the following patch adds VIBRA output support (for driving the VIBRA output
with audio data) for the TWL4030 codec.

---
Peter Ujfalusi (1):
  ASoC: TWL4030: Add VIBRA output

 sound/soc/codecs/twl4030.c |   61 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/1] ASoC: TWL4030: Add VIBRA output
  2009-05-05  5:55 [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi
@ 2009-05-05  5:55 ` Peter Ujfalusi
  2009-05-05  8:48   ` Mark Brown
  2009-05-05  6:12 ` [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi
  1 sibling, 1 reply; 4+ messages in thread
From: Peter Ujfalusi @ 2009-05-05  5:55 UTC (permalink / raw)
  To: alsa-devel; +Cc: sakoman, broonie

This patch adds support for the VIBRA output on TWL4030 codec.
The VIBRA output can be driven with audio data or with
local vibrator driver.
Add the needed DAPM elements and routes for the VIBRA output and
controls for the VIBRA driver configuration.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
---
 sound/soc/codecs/twl4030.c |   61 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 23bae74..1a00e4b 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -396,6 +396,31 @@ static const struct soc_enum twl4030_handsfreer_enum =
 static const struct snd_kcontrol_new twl4030_dapm_handsfreer_control =
 SOC_DAPM_ENUM("Route", twl4030_handsfreer_enum);
 
+/* Vibra */
+/* Vibra audio path selection */
+static const char *twl4030_vibra_texts[] =
+		{"AudioL1", "AudioR1", "AudioL2", "AudioR2"};
+
+static const struct soc_enum twl4030_vibra_enum =
+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 2,
+			ARRAY_SIZE(twl4030_vibra_texts),
+			twl4030_vibra_texts);
+
+static const struct snd_kcontrol_new twl4030_dapm_vibra_control =
+SOC_DAPM_ENUM("Route", twl4030_vibra_enum);
+
+/* Vibra path selection: local vibrator (PWM) or audio driven */
+static const char *twl4030_vibrapath_texts[] =
+		{"Local vibrator", "Audio"};
+
+static const struct soc_enum twl4030_vibrapath_enum =
+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 4,
+			ARRAY_SIZE(twl4030_vibrapath_texts),
+			twl4030_vibrapath_texts);
+
+static const struct snd_kcontrol_new twl4030_dapm_vibrapath_control =
+SOC_DAPM_ENUM("Route", twl4030_vibrapath_enum);
+
 /* Left analog microphone selection */
 static const char *twl4030_analoglmic_texts[] =
 		{"Off", "Main mic", "Headset mic", "AUXL", "Carkit mic"};
@@ -867,6 +892,26 @@ static const struct soc_enum twl4030_rampdelay_enum =
 			ARRAY_SIZE(twl4030_rampdelay_texts),
 			twl4030_rampdelay_texts);
 
+/* Vibra H-bridge direction mode */
+static const char *twl4030_vibradirmode_texts[] = {
+	"Vibra H-bridge direction", "Audio data MSB",
+};
+
+static const struct soc_enum twl4030_vibradirmode_enum =
+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 5,
+			ARRAY_SIZE(twl4030_vibradirmode_texts),
+			twl4030_vibradirmode_texts);
+
+/* Vibra H-bridge direction */
+static const char *twl4030_vibradir_texts[] = {
+	"Positive polarity", "Negative polarity",
+};
+
+static const struct soc_enum twl4030_vibradir_enum =
+	SOC_ENUM_SINGLE(TWL4030_REG_VIBRA_CTL, 1,
+			ARRAY_SIZE(twl4030_vibradir_texts),
+			twl4030_vibradir_texts);
+
 static const struct snd_kcontrol_new twl4030_snd_controls[] = {
 	/* Common playback gain controls */
 	SOC_DOUBLE_R_TLV("DAC1 Digital Fine Playback Volume",
@@ -933,6 +978,9 @@ static const struct snd_kcontrol_new twl4030_snd_controls[] = {
 		0, 3, 5, 0, input_gain_tlv),
 
 	SOC_ENUM("HS ramp delay", twl4030_rampdelay_enum),
+
+	SOC_ENUM("Vibra H-bridge mode", twl4030_vibradirmode_enum),
+	SOC_ENUM("Vibra H-bridge direction", twl4030_vibradir_enum),
 };
 
 static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
@@ -960,6 +1008,7 @@ static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
 	SND_SOC_DAPM_OUTPUT("CARKITR"),
 	SND_SOC_DAPM_OUTPUT("HFL"),
 	SND_SOC_DAPM_OUTPUT("HFR"),
+	SND_SOC_DAPM_OUTPUT("VIBRA"),
 
 	/* DACs */
 	SND_SOC_DAPM_DAC("DAC Right1", "Right Front Playback",
@@ -1060,6 +1109,11 @@ static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = {
 	SND_SOC_DAPM_MUX_E("HandsfreeR Mux", TWL4030_REG_HFR_CTL, 5, 0,
 		&twl4030_dapm_handsfreer_control, handsfree_event,
 		SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
+	/* Vibra */
+	SND_SOC_DAPM_MUX("Vibra Mux", TWL4030_REG_VIBRA_CTL, 0, 0,
+		&twl4030_dapm_vibra_control),
+	SND_SOC_DAPM_MUX("Vibra Route", SND_SOC_NOPM, 0, 0,
+		&twl4030_dapm_vibrapath_control),
 
 	/* Introducing four virtual ADC, since TWL4030 have four channel for
 	   capture */
@@ -1161,6 +1215,11 @@ static const struct snd_soc_dapm_route intercon[] = {
 	{"HandsfreeR Mux", "AudioR1", "ARXR1_APGA"},
 	{"HandsfreeR Mux", "AudioR2", "ARXR2_APGA"},
 	{"HandsfreeR Mux", "AudioL2", "ARXL2_APGA"},
+	/* Vibra */
+	{"Vibra Mux", "AudioL1", "DAC Left1"},
+	{"Vibra Mux", "AudioR1", "DAC Right1"},
+	{"Vibra Mux", "AudioL2", "DAC Left2"},
+	{"Vibra Mux", "AudioR2", "DAC Right2"},
 
 	/* outputs */
 	{"OUTL", NULL, "ARXL2_APGA"},
@@ -1174,6 +1233,8 @@ static const struct snd_soc_dapm_route intercon[] = {
 	{"CARKITR", NULL, "CarkitR Mixer"},
 	{"HFL", NULL, "HandsfreeL Mux"},
 	{"HFR", NULL, "HandsfreeR Mux"},
+	{"Vibra Route", "Audio", "Vibra Mux"},
+	{"VIBRA", NULL, "Vibra Route"},
 
 	/* Capture path */
 	{"Analog Left Capture Route", "Main mic", "MAINMIC"},
-- 
1.6.2.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/1] ASoC: TWL4030: VIBRA output support
  2009-05-05  5:55 [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi
  2009-05-05  5:55 ` [PATCH 1/1] ASoC: TWL4030: Add VIBRA output Peter Ujfalusi
@ 2009-05-05  6:12 ` Peter Ujfalusi
  1 sibling, 0 replies; 4+ messages in thread
From: Peter Ujfalusi @ 2009-05-05  6:12 UTC (permalink / raw)
  To: alsa-devel; +Cc: sakoman, broonie

On Tuesday 05 May 2009 08:55:46 Ujfalusi Peter (Nokia-D/Tampere) wrote:
> Hello,
>
> The VIBRA output can be driven with audio data or with local vibrator
> driver, the following patch adds VIBRA output support (for driving the
> VIBRA output with audio data) for the TWL4030 codec.

Forgot to mention, that this patch should be fine against Mark's 
sound-2.6:for-2.6.31 branch in regards of TWL4030 codec (on top of commit: 
ASoC: TWL4030: Add voice digital loopback: sidetone from Lopez Cruz, Misael)

-- 
Péter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/1] ASoC: TWL4030: Add VIBRA output
  2009-05-05  5:55 ` [PATCH 1/1] ASoC: TWL4030: Add VIBRA output Peter Ujfalusi
@ 2009-05-05  8:48   ` Mark Brown
  0 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2009-05-05  8:48 UTC (permalink / raw)
  To: Peter Ujfalusi; +Cc: sakoman, alsa-devel

On Tue, May 05, 2009 at 08:55:47AM +0300, Peter Ujfalusi wrote:
> This patch adds support for the VIBRA output on TWL4030 codec.
> The VIBRA output can be driven with audio data or with
> local vibrator driver.
> Add the needed DAPM elements and routes for the VIBRA output and
> controls for the VIBRA driver configuration.
> 
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-05-05  8:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-05  5:55 [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi
2009-05-05  5:55 ` [PATCH 1/1] ASoC: TWL4030: Add VIBRA output Peter Ujfalusi
2009-05-05  8:48   ` Mark Brown
2009-05-05  6:12 ` [PATCH 0/1] ASoC: TWL4030: VIBRA output support Peter Ujfalusi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.