Skip to content

Commit

Permalink
ASoC: da7210: Add HeadPhone Playback Volume control
Browse files Browse the repository at this point in the history
HeadPhone Playback Volume control register of DA7210 has
reserved area. This patch considered it as mute.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Jul 23, 2010
1 parent 49e7042 commit a7e7cd5
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions sound/soc/codecs/da7210.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <sound/pcm_params.h>
#include <sound/soc-dapm.h>
#include <sound/initval.h>
#include <sound/tlv.h>

#include "da7210.h"

Expand Down Expand Up @@ -136,6 +137,29 @@

#define DA7210_VERSION "0.0.1"

/*
* Playback Volume
*
* max : 0x3F (+15.0 dB)
* (1.5 dB step)
* min : 0x11 (-54.0 dB)
* mute : 0x10
* reserved : 0x00 - 0x0F
*
* ** FIXME **
*
* Reserved area are considered as "mute".
* -> min = -79.5 dB
*/
static const DECLARE_TLV_DB_SCALE(hp_out_tlv, -7950, 150, 1);

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),
};

/* Codec private data */
struct da7210_priv {
struct snd_soc_codec codec;
Expand Down Expand Up @@ -218,10 +242,6 @@ static int da7210_startup(struct snd_pcm_substream *substream,
struct snd_soc_codec *codec = dai->codec;

if (is_play) {
/* PlayBack Volume 40 */
snd_soc_update_bits(codec, DA7210_HP_L_VOL, 0x3F, 40);
snd_soc_update_bits(codec, DA7210_HP_R_VOL, 0x3F, 40);

/* Enable Out */
snd_soc_update_bits(codec, DA7210_OUTMIX_L, 0x1F, 0x10);
snd_soc_update_bits(codec, DA7210_OUTMIX_R, 0x1F, 0x10);
Expand Down Expand Up @@ -647,6 +667,9 @@ static int da7210_probe(struct platform_device *pdev)
if (ret < 0)
goto pcm_err;

snd_soc_add_controls(da7210_codec, da7210_snd_controls,
ARRAY_SIZE(da7210_snd_controls));

dev_info(&pdev->dev, "DA7210 Audio Codec %s\n", DA7210_VERSION);

pcm_err:
Expand Down

0 comments on commit a7e7cd5

Please sign in to comment.