summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2008-04-28 08:37:18 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2008-04-28 08:37:18 +0000
commit8391526f794b296e5b6edd5707bbf25b5be73e17 (patch)
treec35e4565831b3a822394e98da32dc79db339345b /firmware/drivers
parent17f7adb90d232e6dece891790405d1b99b5b8215 (diff)
downloadrockbox-8391526f794b296e5b6edd5707bbf25b5be73e17.tar.gz
rockbox-8391526f794b296e5b6edd5707bbf25b5be73e17.zip
* introduce AUDIOHW_CAPS to define which audio codec can do what kind of operations in hw, e.g. setting bass
* added documentation why and when we need the software based prescaler * implement audiohw_set_bass and audiohw_set_treble for mas35xx * clean up sound_set_bass and sound_set_treble * simplify some #ifdef logic * fix special handling of WM8751 - looking for tester :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17274 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/audio/mas35xx.c20
-rw-r--r--firmware/drivers/audio/wm8751.c2
2 files changed, 21 insertions, 1 deletions
diff --git a/firmware/drivers/audio/mas35xx.c b/firmware/drivers/audio/mas35xx.c
index dac890ddc8..983818bf61 100644
--- a/firmware/drivers/audio/mas35xx.c
+++ b/firmware/drivers/audio/mas35xx.c
@@ -150,3 +150,23 @@ void audiohw_set_stereo_width(int val)
150 set_channel_config(); 150 set_channel_config();
151 } 151 }
152} 152}
153
154void audiohw_set_bass(int val)
155{
156#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
157 unsigned tmp = ((unsigned)(val * 8) & 0xff) << 8;
158 mas_codec_writereg(0x14, tmp);
159#elif CONFIG_CODEC == MAS3507D
160 mas_writereg(MAS_REG_KBASS, bass_table[val+15]);
161#endif
162}
163
164void audiohw_set_treble(int val)
165{
166#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
167 unsigned tmp = ((unsigned)(val * 8) & 0xff) << 8;
168 mas_codec_writereg(0x15, tmp);
169#elif CONFIG_CODEC == MAS3507D
170 mas_writereg(MAS_REG_KTREBLE, treble_table[val+15]);
171#endif
172}
diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c
index 831f16ab17..26123456b6 100644
--- a/firmware/drivers/audio/wm8751.c
+++ b/firmware/drivers/audio/wm8751.c
@@ -79,7 +79,7 @@ static int tone_tenthdb2hw(int value)
79 /* -6.0db..+0db..+9.0db step 1.5db - translate -60..+0..+90 step 15 79 /* -6.0db..+0db..+9.0db step 1.5db - translate -60..+0..+90 step 15
80 to 10..6..0 step -1. 80 to 10..6..0 step -1.
81 */ 81 */
82 value = 10 - (value + 60) / 15; 82 value = (10 - (value + 60) / 15) / 10;
83 83
84 if (value == 6) 84 if (value == 6)
85 value = 0xf; /* 0db -> off */ 85 value = 0xf; /* 0db -> off */