summary'>refsloglog'>tree'>commit'>diffstats
path: '>root//'>sys-kernel/boest-v5.0.15//'>raspberrypi//'>0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/boest-v5.0.15/raspberrypi/0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch')
-rw-r--r--sys-kernel/boest-v5.0.15/raspberrypi/0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/sys-kernel/boest-v5.0.15/raspberrypi/0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch b/sys-kernel/boest-v5.0.15/raspberrypi/0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch
new file mode 100644
index 00000000..0e18143a
--- /dev/null
+++ b/sys-kernel/boest-v5.0.15/raspberrypi/0191-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch
@@ -0,0 +1,56 @@
+From 74508b2cf262f71dc2ecb4b646db8c93273b2895 Mon Sep 17 00:00:00 2001
+From: Annaliese McDermond <nh6z@nh6z.net>
+Date: Wed, 3 Apr 2019 21:01:55 -0700
+Subject: [PATCH 191/194] ASoC: tlv320aic32x4: Add Playback PowerTune Controls
+
+commit d3e6e374566e1154820a9a3dc82f7eef646fcf95 upstream.
+
+PowerTune controls the power level of the chip. On playback this
+indirectly controls things like the gain of the various output
+amplifiers. This can allow for the decrease of output levels
+from the codec. This adds controls for those power levels to
+the driver.
+
+Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+---
+ sound/soc/codecs/tlv320aic32x4.c | 9 +++++++++
+ sound/soc/codecs/tlv320aic32x4.h | 2 ++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c
+index 5da0a6edbf61..3f59d103c0ae 100644
+--- a/sound/soc/codecs/tlv320aic32x4.c
++++ b/sound/soc/codecs/tlv320aic32x4.c
+@@ -248,9 +248,18 @@ static const char * const lo_cm_text[] = {
+
+ static SOC_ENUM_SINGLE_DECL(lo_cm_enum, AIC32X4_CMMODE, 3, lo_cm_text);
+
++static const char * const ptm_text[] = {
++ "P3", "P2", "P1",
++};
++
++static SOC_ENUM_SINGLE_DECL(l_ptm_enum, AIC32X4_LPLAYBACK, 2, ptm_text);
++static SOC_ENUM_SINGLE_DECL(r_ptm_enum, AIC32X4_RPLAYBACK, 2, ptm_text);
++
+ static const struct snd_kcontrol_new aic32x4_snd_controls[] = {
+ SOC_DOUBLE_R_S_TLV("PCM Playback Volume", AIC32X4_LDACVOL,
+ AIC32X4_RDACVOL, 0, -0x7f, 0x30, 7, 0, tlv_pcm),
++ SOC_ENUM("DAC Left Playback PowerTune Switch", l_ptm_enum),
++ SOC_ENUM("DAC Right Playback PowerTune Switch", r_ptm_enum),
+ SOC_DOUBLE_R_S_TLV("HP Driver Gain Volume", AIC32X4_HPLGAIN,
+ AIC32X4_HPRGAIN, 0, -0x6, 0x1d, 5, 0,
+ tlv_driver_gain),
+diff --git a/sound/soc/codecs/tlv320aic32x4.h b/sound/soc/codecs/tlv320aic32x4.h
+index 88205bc97198..40734211bc0e 100644
+--- a/sound/soc/codecs/tlv320aic32x4.h
++++ b/sound/soc/codecs/tlv320aic32x4.h
+@@ -78,6 +78,8 @@ int aic32x4_register_clocks(struct device *dev, const char *mclk_name);
+
+ #define AIC32X4_PWRCFG AIC32X4_REG(1, 1)
+ #define AIC32X4_LDOCTL AIC32X4_REG(1, 2)
++#define AIC32X4_LPLAYBACK AIC32X4_REG(1, 3)
++#define AIC32X4_RPLAYBACK AIC32X4_REG(1, 4)
+ #define AIC32X4_OUTPWRCTL AIC32X4_REG(1, 9)
+ #define AIC32X4_CMMODE AIC32X4_REG(1, 10)
+ #define AIC32X4_HPLROUTE AIC32X4_REG(1, 12)