* [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
@ 2011-10-20 14:42 Ashish Chavan
2011-10-20 17:10 ` [alsa-devel] " Girdwood, Liam
0 siblings, 1 reply; 9+ messages in thread
From: Ashish Chavan @ 2011-10-20 14:42 UTC (permalink / raw)
To: Mark Brown, lrg, alsa-devel
Cc: linux-kernel, kuninori.morimoto.gx, David Dajun Chen
DA7210 has three line outputs. OUT1 Left, OUT1 Right and OUT2 (mono).
This patch adds support for gain controls for these three line outs.
It also adds support for overall DAC gain control.
Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
Signed-off-by: David Dajun Chen <dchen@diasemi.com>
---
Changes since v1:
- Removed explicit setting of default gains
- Renamed "DAC Playback" to "Digital Playback"
---
sound/soc/codecs/da7210.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/sound/soc/codecs/da7210.c b/sound/soc/codecs/da7210.c
index 2187db9..eaec60a 100644
--- a/sound/soc/codecs/da7210.c
+++ b/sound/soc/codecs/da7210.c
@@ -54,6 +54,8 @@
#define DA7210_DAC_EQ5 0x1B
#define DA7210_OUTMIX_L 0x1C
#define DA7210_OUTMIX_R 0x1D
+#define DA7210_OUT1_L 0x1E
+#define DA7210_OUT1_R 0x1F
#define DA7210_OUT2 0x20
#define DA7210_HP_L_VOL 0x21
#define DA7210_HP_R_VOL 0x22
@@ -187,6 +189,17 @@
#define DA7210_INPGA_MIN_VOL_NS 0x0A /* 10.5dB */
#define DA7210_AUX1_MIN_VOL_NS 0x35 /* 6dB */
+/* OUT1_L bit fields */
+#define DA7210_OUT1_L_EN (1 << 7)
+
+/* OUT1_R bit fields */
+#define DA7210_OUT1_R_EN (1 << 7)
+
+/* OUT2 bit fields */
+#define DA7210_OUT2_OUTMIX_R (1 << 5)
+#define DA7210_OUT2_OUTMIX_L (1 << 6)
+#define DA7210_OUT2_EN (1 << 7)
+
#define DA7210_VERSION "0.0.1"
/*
@@ -207,8 +220,23 @@ static const unsigned int hp_out_tlv[] = {
0x11, 0x3f, TLV_DB_SCALE_ITEM(-5400, 150, 0),
};
+static const unsigned int lineout_vol_tlv[] = {
+ TLV_DB_RANGE_HEAD(2),
+ 0x0, 0x10, TLV_DB_SCALE_ITEM(TLV_DB_GAIN_MUTE, 0, 1),
+ /* -54dB to 15dB */
+ 0x11, 0x3f, TLV_DB_SCALE_ITEM(-5400, 150, 0)
+};
+
+static const unsigned int mono_vol_tlv[] = {
+ TLV_DB_RANGE_HEAD(2),
+ 0x0, 0x2, TLV_DB_SCALE_ITEM(-1800, 0, 1),
+ /* -18dB to 6dB */
+ 0x3, 0x7, TLV_DB_SCALE_ITEM(-1800, 600, 0)
+};
+
static const DECLARE_TLV_DB_SCALE(eq_gain_tlv, -1050, 150, 0);
static const DECLARE_TLV_DB_SCALE(adc_eq_master_gain_tlv, -1800, 600, 1);
+static const DECLARE_TLV_DB_SCALE(dac_gain_tlv, -7725, 75, 0);
/* ADC and DAC high pass filter f0 value */
static const char const *da7210_hpf_cutoff_txt[] = {
@@ -307,6 +335,14 @@ static const struct snd_kcontrol_new da7210_snd_controls[] = {
SOC_DOUBLE_R_TLV("HeadPhone Playback Volume",
DA7210_HP_L_VOL, DA7210_HP_R_VOL,
0, 0x3F, 0, hp_out_tlv),
+ SOC_DOUBLE_R_TLV("Digital Playback Volume",
+ DA7210_DAC_L, DA7210_DAC_R,
+ 0, 0x77, 1, dac_gain_tlv),
+ SOC_DOUBLE_R_TLV("Lineout Playback Volume",
+ DA7210_OUT1_L, DA7210_OUT1_R,
+ 0, 0x3f, 0, lineout_vol_tlv),
+ SOC_SINGLE_TLV("Mono Playback Volume", DA7210_OUT2, 0, 0x7, 0,
+ mono_vol_tlv),
/* DAC Equalizer controls */
SOC_SINGLE("DAC EQ Switch", DA7210_DAC_EQ5, 7, 1, 0),
@@ -886,6 +922,12 @@ static int da7210_probe(struct snd_soc_codec *codec)
/* Enable ramp mode for DAC gain update */
snd_soc_write(codec, DA7210_SOFTMUTE, DA7210_RAMP_EN);
+ /* Enable Line out amplifiers */
+ snd_soc_write(codec, DA7210_OUT1_L, DA7210_OUT1_L_EN);
+ snd_soc_write(codec, DA7210_OUT1_R, DA7210_OUT1_R_EN);
+ snd_soc_write(codec, DA7210_OUT2, DA7210_OUT2_EN |
+ DA7210_OUT2_OUTMIX_L | DA7210_OUT2_OUTMIX_R);
+
/* Diable PLL and bypass it */
snd_soc_write(codec, DA7210_PLL, DA7210_PLL_FS_48000);
--
1.7.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [alsa-devel] [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-20 14:42 [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC Ashish Chavan
@ 2011-10-20 17:10 ` Girdwood, Liam
2011-10-21 8:37 ` Ashish Chavan
0 siblings, 1 reply; 9+ messages in thread
From: Girdwood, Liam @ 2011-10-20 17:10 UTC (permalink / raw)
To: Ashish Chavan
Cc: Mark Brown, alsa-devel, David Dajun Chen, kuninori.morimoto.gx,
linux-kernel
On 20 October 2011 15:42, Ashish Chavan <ashish.chavan@kpitcummins.com> wrote:
> DA7210 has three line outputs. OUT1 Left, OUT1 Right and OUT2 (mono).
> This patch adds support for gain controls for these three line outs.
> It also adds support for overall DAC gain control.
>
> Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
> Signed-off-by: David Dajun Chen <dchen@diasemi.com>
> ---
> Changes since v1:
> - Removed explicit setting of default gains
> - Renamed "DAC Playback" to "Digital Playback"
> ---
> sound/soc/codecs/da7210.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 42 insertions(+), 0 deletions(-)
>
>
> + /* Enable Line out amplifiers */
> + snd_soc_write(codec, DA7210_OUT1_L, DA7210_OUT1_L_EN);
> + snd_soc_write(codec, DA7210_OUT1_R, DA7210_OUT1_R_EN);
> + snd_soc_write(codec, DA7210_OUT2, DA7210_OUT2_EN |
> + DA7210_OUT2_OUTMIX_L | DA7210_OUT2_OUTMIX_R);
> +
Any reason for not using DAPM here ? Otherwise they are always on
making your chip burn mW.....
Thanks
Liam
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-20 17:10 ` [alsa-devel] " Girdwood, Liam
@ 2011-10-21 8:37 ` Ashish Chavan
2011-10-21 9:00 ` [alsa-devel] " Mark Brown
0 siblings, 1 reply; 9+ messages in thread
From: Ashish Chavan @ 2011-10-21 8:37 UTC (permalink / raw)
To: Girdwood, Liam
Cc: alsa-devel, Mark Brown, linux-kernel, kuninori.morimoto.gx,
David Dajun Chen
On Thu, 2011-10-20 at 18:10 +0100, Girdwood, Liam wrote:
> On 20 October 2011 15:42, Ashish Chavan <ashish.chavan@kpitcummins.com> wrote:
> > DA7210 has three line outputs. OUT1 Left, OUT1 Right and OUT2 (mono).
> > This patch adds support for gain controls for these three line outs.
> > It also adds support for overall DAC gain control.
> >
> > Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
> > Signed-off-by: David Dajun Chen <dchen@diasemi.com>
> > ---
> > Changes since v1:
> > - Removed explicit setting of default gains
> > - Renamed "DAC Playback" to "Digital Playback"
> > ---
> > sound/soc/codecs/da7210.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> > 1 files changed, 42 insertions(+), 0 deletions(-)
> >
>
> >
> > + /* Enable Line out amplifiers */
> > + snd_soc_write(codec, DA7210_OUT1_L, DA7210_OUT1_L_EN);
> > + snd_soc_write(codec, DA7210_OUT1_R, DA7210_OUT1_R_EN);
> > + snd_soc_write(codec, DA7210_OUT2, DA7210_OUT2_EN |
> > + DA7210_OUT2_OUTMIX_L | DA7210_OUT2_OUTMIX_R);
> > +
>
> Any reason for not using DAPM here ? Otherwise they are always on
> making your chip burn mW.....
>
Not really. As explained in the comment in DAPM patch, this enables will
be effective (burn mW) only after respective IO is taken out from
STANDBY mode. DAPM takes care of managing STANDBY mode for all IOs and
ADC/DAC. I know this way of handling low power mode is bit non-trivial,
but it is what is recommended by chip designers. Actually Mark was also
initially confused with this and requested to put enough documentation
into code. After that I tried explaining the logic in source code
comment in DAPM patch. Let me know if it is not clear and doesn't convey
clearly what is should.
Thanks,
-- Ashish (GNU FAN)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [alsa-devel] [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 8:37 ` Ashish Chavan
@ 2011-10-21 9:00 ` Mark Brown
2011-10-21 9:49 ` Ashish Chavan
0 siblings, 1 reply; 9+ messages in thread
From: Mark Brown @ 2011-10-21 9:00 UTC (permalink / raw)
To: Ashish Chavan
Cc: Girdwood, Liam, alsa-devel, David Dajun Chen,
kuninori.morimoto.gx, linux-kernel
On Fri, Oct 21, 2011 at 02:07:40PM +0530, Ashish Chavan wrote:
> On Thu, 2011-10-20 at 18:10 +0100, Girdwood, Liam wrote:
> > Any reason for not using DAPM here ? Otherwise they are always on
> > making your chip burn mW.....
> Not really. As explained in the comment in DAPM patch, this enables will
> be effective (burn mW) only after respective IO is taken out from
> STANDBY mode. DAPM takes care of managing STANDBY mode for all IOs and
> ADC/DAC. I know this way of handling low power mode is bit non-trivial,
> but it is what is recommended by chip designers. Actually Mark was also
> initially confused with this and requested to put enough documentation
> into code. After that I tried explaining the logic in source code
> comment in DAPM patch. Let me know if it is not clear and doesn't convey
> clearly what is should.
That'd be fine but there's no DAPM code in the patch, only code to
unconditionally enable on init.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 9:00 ` [alsa-devel] " Mark Brown
@ 2011-10-21 9:49 ` Ashish Chavan
2011-10-21 10:24 ` Mark Brown
0 siblings, 1 reply; 9+ messages in thread
From: Ashish Chavan @ 2011-10-21 9:49 UTC (permalink / raw)
To: Mark Brown
Cc: linux-kernel, alsa-devel, Girdwood, Liam, kuninori.morimoto.gx,
David Dajun Chen
On Fri, 2011-10-21 at 10:00 +0100, Mark Brown wrote:
> On Fri, Oct 21, 2011 at 02:07:40PM +0530, Ashish Chavan wrote:
> > On Thu, 2011-10-20 at 18:10 +0100, Girdwood, Liam wrote:
>
> > > Any reason for not using DAPM here ? Otherwise they are always on
> > > making your chip burn mW.....
>
> > Not really. As explained in the comment in DAPM patch, this enables will
> > be effective (burn mW) only after respective IO is taken out from
> > STANDBY mode. DAPM takes care of managing STANDBY mode for all IOs and
> > ADC/DAC. I know this way of handling low power mode is bit non-trivial,
> > but it is what is recommended by chip designers. Actually Mark was also
> > initially confused with this and requested to put enough documentation
> > into code. After that I tried explaining the logic in source code
> > comment in DAPM patch. Let me know if it is not clear and doesn't convey
> > clearly what is should.
>
> That'd be fine but there's no DAPM code in the patch, only code to
> unconditionally enable on init.
>
Yes, because DAPM part for those IOs is already covered by DAPM patch.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 9:49 ` Ashish Chavan
@ 2011-10-21 10:24 ` Mark Brown
2011-10-21 11:05 ` Ashish Chavan
0 siblings, 1 reply; 9+ messages in thread
From: Mark Brown @ 2011-10-21 10:24 UTC (permalink / raw)
To: Ashish Chavan
Cc: linux-kernel, alsa-devel, Girdwood, Liam, kuninori.morimoto.gx,
David Dajun Chen
On Fri, Oct 21, 2011 at 03:19:15PM +0530, Ashish Chavan wrote:
> On Fri, 2011-10-21 at 10:00 +0100, Mark Brown wrote:
> > That'd be fine but there's no DAPM code in the patch, only code to
> > unconditionally enable on init.
> Yes, because DAPM part for those IOs is already covered by DAPM patch.
Ah, you should split that out of the DAPM patch into here - the DAPM bit
won't work without the enable bits (as I understand it).
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 10:24 ` Mark Brown
@ 2011-10-21 11:05 ` Ashish Chavan
2011-10-21 11:12 ` Mark Brown
0 siblings, 1 reply; 9+ messages in thread
From: Ashish Chavan @ 2011-10-21 11:05 UTC (permalink / raw)
To: Mark Brown
Cc: linux-kernel, alsa-devel, Girdwood, Liam, kuninori.morimoto.gx,
David Dajun Chen
On Fri, 2011-10-21 at 11:24 +0100, Mark Brown wrote:
> On Fri, Oct 21, 2011 at 03:19:15PM +0530, Ashish Chavan wrote:
> > On Fri, 2011-10-21 at 10:00 +0100, Mark Brown wrote:
>
> > > That'd be fine but there's no DAPM code in the patch, only code to
> > > unconditionally enable on init.
>
> > Yes, because DAPM part for those IOs is already covered by DAPM patch.
>
> Ah, you should split that out of the DAPM patch into here - the DAPM bit
> won't work without the enable bits (as I understand it).
>
Yes, your understanding is correct. Actually I acted bit lazy here by
not splitting, assuming that both patches are going to get merged
shortly. Do you think is it mandatory to do that? Or can I repost the
patch after just resolving merge issue?
Thanks,
-- Ashish (GNU FAN)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 11:05 ` Ashish Chavan
@ 2011-10-21 11:12 ` Mark Brown
2011-10-21 11:32 ` Ashish Chavan
0 siblings, 1 reply; 9+ messages in thread
From: Mark Brown @ 2011-10-21 11:12 UTC (permalink / raw)
To: Ashish Chavan
Cc: linux-kernel, alsa-devel, Girdwood, Liam, kuninori.morimoto.gx,
David Dajun Chen
On Fri, Oct 21, 2011 at 04:35:32PM +0530, Ashish Chavan wrote:
> Yes, your understanding is correct. Actually I acted bit lazy here by
> not splitting, assuming that both patches are going to get merged
> shortly. Do you think is it mandatory to do that? Or can I repost the
> patch after just resolving merge issue?
It's better to refactor, it makes review much easier.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC
2011-10-21 11:12 ` Mark Brown
@ 2011-10-21 11:32 ` Ashish Chavan
0 siblings, 0 replies; 9+ messages in thread
From: Ashish Chavan @ 2011-10-21 11:32 UTC (permalink / raw)
To: Mark Brown
Cc: linux-kernel, alsa-devel, Girdwood, Liam, kuninori.morimoto.gx,
David Dajun Chen
On Fri, 2011-10-21 at 12:12 +0100, Mark Brown wrote:
> On Fri, Oct 21, 2011 at 04:35:32PM +0530, Ashish Chavan wrote:
>
> > Yes, your understanding is correct. Actually I acted bit lazy here by
> > not splitting, assuming that both patches are going to get merged
> > shortly. Do you think is it mandatory to do that? Or can I repost the
> > patch after just resolving merge issue?
>
> It's better to refactor, it makes review much easier.
>
OK. I am moving out line out and mic/aux related stuff from DAPM patch
and adding them in to other respective patches.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-10-21 11:21 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-20 14:42 [PATCH v7 2/3] ASoC: da7210: Add support for line out and DAC Ashish Chavan
2011-10-20 17:10 ` [alsa-devel] " Girdwood, Liam
2011-10-21 8:37 ` Ashish Chavan
2011-10-21 9:00 ` [alsa-devel] " Mark Brown
2011-10-21 9:49 ` Ashish Chavan
2011-10-21 10:24 ` Mark Brown
2011-10-21 11:05 ` Ashish Chavan
2011-10-21 11:12 ` Mark Brown
2011-10-21 11:32 ` Ashish Chavan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).