From: Siarhei Volkau <lis8215@gmail.com>
To: unlisted-recipients:; (no To-header on input)
Cc: Siarhei Volkau <lis8215@gmail.com>,
Paul Cercueil <paul@crapouillou.net>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>,
linux-mips@vger.kernel.org, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 5/6] ASoC: codecs: jz4725b: use right control for Master Playback
Date: Mon, 10 Oct 2022 21:54:22 +0300 [thread overview]
Message-ID: <20221010185423.3167208-6-lis8215@gmail.com> (raw)
In-Reply-To: <20221010185423.3167208-1-lis8215@gmail.com>
At the moment DAC control is used as Master Playback control, this is
incorrect as DAC's output goes to a Mixer.
The Mixer couples analog input from 4 sources (DAC, Line In, Mic 1,
Mic 2) each input has its own gain & mute controls.
Output of the Mixer goes to Output Stage control which is the best suite
for the new Playback Master. However, it doesn't have mute capability.
The patch implements Output Stage control as a new master and renames
old Master to DAC. Rest of mixer inputs will be implemented in the next
patch in the series.
Manual states that Output stage control (16.6.3.5 Programmable output
amplifier: PGAT) gain varies from -33.5dB to +4.5dB, gain step isn't
fixed and has 3 opts.
Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
---
sound/soc/codecs/jz4725b.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
index 3f9bbd79d..6614c5e37 100644
--- a/sound/soc/codecs/jz4725b.c
+++ b/sound/soc/codecs/jz4725b.c
@@ -136,6 +136,12 @@ enum {
#define REG_CGR3_GO1L_OFFSET 0
#define REG_CGR3_GO1L_MASK (0x1f << REG_CGR3_GO1L_OFFSET)
+#define REG_CGR8_GOR_OFFSET 0
+#define REG_CGR8_GOR_MASK (0x1f << REG_CGR8_GOR_OFFSET)
+
+#define REG_CGR9_GOL_OFFSET 0
+#define REG_CGR9_GOL_MASK (0x1f << REG_CGR9_GOL_OFFSET)
+
#define REG_CGR10_GIL_OFFSET 0
#define REG_CGR10_GIR_OFFSET 4
@@ -147,9 +153,14 @@ struct jz_icdc {
static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_adc_tlv, 0, 150, 0);
static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_dac_tlv, -2250, 150, 0);
+static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(jz4725b_out_tlv,
+ 0, 11, TLV_DB_SCALE_ITEM(-3350, 200, 0),
+ 12, 23, TLV_DB_SCALE_ITEM(-1050, 100, 0),
+ 24, 31, TLV_DB_SCALE_ITEM( 100, 50, 0),
+);
static const struct snd_kcontrol_new jz4725b_codec_controls[] = {
- SOC_DOUBLE_TLV("Master Playback Volume",
+ SOC_DOUBLE_TLV("DAC Playback Volume",
JZ4725B_CODEC_REG_CGR1,
REG_CGR1_GODL_OFFSET,
REG_CGR1_GODR_OFFSET,
@@ -160,7 +171,13 @@ static const struct snd_kcontrol_new jz4725b_codec_controls[] = {
REG_CGR10_GIR_OFFSET,
0xf, 0, jz4725b_adc_tlv),
- SOC_SINGLE("Master Playback Switch", JZ4725B_CODEC_REG_CR1,
+ SOC_DOUBLE_R_TLV("Master Playback Volume",
+ JZ4725B_CODEC_REG_CGR9,
+ JZ4725B_CODEC_REG_CGR8,
+ REG_CGR8_GOR_OFFSET,
+ 0x1f, 1, jz4725b_out_tlv),
+
+ SOC_SINGLE("DAC Playback Switch", JZ4725B_CODEC_REG_CR1,
REG_CR1_DAC_MUTE_OFFSET, 1, 1),
SOC_SINGLE("Deemphasize Filter Playback Switch",
--
2.36.1
next prev parent reply other threads:[~2022-10-10 18:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-08 18:16 [PATCH] ASoC: codecs: jz4725b: Various improvements and fixes Siarhei Volkau
2022-10-10 11:19 ` Mark Brown
2022-10-10 15:20 ` Siarhei Volkau
2022-10-10 15:53 ` Mark Brown
2022-10-10 16:26 ` Siarhei Volkau
2022-10-10 18:54 ` [PATCH v2 0/6] " Siarhei Volkau
2022-10-10 18:54 ` [PATCH v2 1/6] ASoC: codecs: jz4725b: add missed Line In power control bit Siarhei Volkau
2022-10-10 18:54 ` [PATCH v2 2/6] ASoC: codecs: jz4725b: fix reported volume for Master ctl Siarhei Volkau
2022-10-10 18:54 ` [PATCH v2 3/6] ASoC: codecs: jz4725b: use right control for Capture Volume Siarhei Volkau
2022-10-10 18:54 ` [PATCH v2 4/6] ASoC: codecs: jz4725b: fix capture selector naming Siarhei Volkau
2022-10-10 18:54 ` Siarhei Volkau [this message]
2022-10-10 18:54 ` [PATCH v2 6/6] ASoC: codecs: jz4725b: add missed Mixer inputs Siarhei Volkau
2022-10-18 11:28 ` [PATCH v2 0/6] ASoC: codecs: jz4725b: Various improvements and fixes Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221010185423.3167208-6-lis8215@gmail.com \
--to=lis8215@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=paul@crapouillou.net \
--cc=perex@perex.cz \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).