summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2016-08-21 20:28:13 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2016-12-12 13:12:15 +0100
commit90a32ccad61c506fb021feb0e983e9c2aade8876 (patch)
tree14ab80e977f5bdf20ec2c6fb34d27a769bcb4616 /firmware
parentcc031d41ab89daa06789fb28c0c1992a7928847a (diff)
downloadrockbox-90a32ccad61c506fb021feb0e983e9c2aade8876.tar.gz
rockbox-90a32ccad61c506fb021feb0e983e9c2aade8876.zip
wm8751: document and fix audiohw settings
Document 3D depth range. Fix mismatch in recording volume: the displayed volume is completely off the chart Change-Id: I4c363f369e5d72f332391a6f96457b4e450404f9
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/audio/wm8751.c4
-rw-r--r--firmware/export/wm8751.h13
2 files changed, 11 insertions, 6 deletions
diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c
index 7b6a2712e5..1b4af3eca8 100644
--- a/firmware/drivers/audio/wm8751.c
+++ b/firmware/drivers/audio/wm8751.c
@@ -385,7 +385,8 @@ void audiohw_set_frequency(int fsel)
#ifdef HAVE_WM8750
#ifdef AUDIOHW_HAVE_DEPTH_3D
-/* Set the depth of the 3D effect */
+/* Set the depth of the 3D effect
+ * value in 0 .. 15, corresponds to 0% .. 100% in 6.66% steps */
void audiohw_set_depth_3d(int val)
{
if (val > 0)
@@ -631,6 +632,7 @@ static int pga_gain2hw(int value)
return ((4 * value) / 300) + 23;
}
+/* volume in hundredth of dB in -1725 .. 6000 */
void audiohw_set_recvol(int vol_l, int vol_r, int type)
{
int d_vol_l = 0;
diff --git a/firmware/export/wm8751.h b/firmware/export/wm8751.h
index 214643c64d..9b66981129 100644
--- a/firmware/export/wm8751.h
+++ b/firmware/export/wm8751.h
@@ -25,18 +25,21 @@
#define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP | \
BASS_CUTOFF_CAP | TREBLE_CUTOFF_CAP | \
DEPTH_3D_CAP | LIN_GAIN_CAP | MIC_GAIN_CAP)
-
+/* Percentage from 0% to 100% in steps of 6.66%:
+ * Values: 0, 1, 2, ... 14, 15
+ * => 0%, 6%, 14%, ..., 93%, 100%
+ */
AUDIOHW_SETTING(DEPTH_3D, "%", 0, 1, 0, 15, 0, (100 * val + 8) / 15)
#ifdef HAVE_RECORDING
/* PGA -17.25dB to 30.0dB in 0.75dB increments 64 steps
* digital gain 0dB to 30.0dB in 0.5dB increments
* we use 0.75dB fake steps through whole range
*
- * This combined gives -17.25 to 60.0dB
+ * This combined gives -17.25 to 60.0dB
*/
-AUDIOHW_SETTING(LEFT_GAIN, "dB", 2, 75,-1725, 6000, 0, val * 5)
-AUDIOHW_SETTING(RIGHT_GAIN, "dB", 2, 75,-1725, 6000, 0, val * 5)
-AUDIOHW_SETTING(MIC_GAIN, "dB", 2, 75,-1725, 6000, 3000, val * 5)
+AUDIOHW_SETTING(LEFT_GAIN, "dB", 2, 75,-1725, 6000, 0)
+AUDIOHW_SETTING(RIGHT_GAIN, "dB", 2, 75,-1725, 6000, 0)
+AUDIOHW_SETTING(MIC_GAIN, "dB", 2, 75,-1725, 6000, 3000)
void audiohw_set_recsrc(int source, bool recording);
#endif /* HAVE_RECORDING */