summaryrefslogtreecommitdiff
path: root/firmware/drivers/audio/imx233-codec.c
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-10-18 22:08:41 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-10-18 22:08:41 +0000
commit623cbd6e02869a1704969fd8faf87fbdf11e766d (patch)
tree12b6b715a481de7989787c1c065b4bfa10868865 /firmware/drivers/audio/imx233-codec.c
parent390edd58c877f62b4d9363e4f0172259d4d76148 (diff)
downloadrockbox-623cbd6e02869a1704969fd8faf87fbdf11e766d.tar.gz
rockbox-623cbd6e02869a1704969fd8faf87fbdf11e766d.zip
imx233/fuze+: implement pcm out and audio codec, update SOURCES
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30800 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/audio/imx233-codec.c')
-rw-r--r--firmware/drivers/audio/imx233-codec.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/firmware/drivers/audio/imx233-codec.c b/firmware/drivers/audio/imx233-codec.c
index 769216af87..d99a4d0ca9 100644
--- a/firmware/drivers/audio/imx233-codec.c
+++ b/firmware/drivers/audio/imx233-codec.c
@@ -22,34 +22,61 @@
22#include "system.h" 22#include "system.h"
23#include "audiohw.h" 23#include "audiohw.h"
24#include "audio.h" 24#include "audio.h"
25#include "audioout-imx233.h"
26#include "audioin-imx233.h"
25 27
26/* TO FILL */
27const struct sound_settings_info audiohw_settings[] = 28const struct sound_settings_info audiohw_settings[] =
28{ 29{
29 [SOUND_VOLUME] = {"dB", 0, 1, -74, 6, -25}, 30 /* i.MX233 has half dB steps */
31 [SOUND_VOLUME] = {"dB", 0, 5, VOLUME_MIN / 10, VOLUME_MAX / 10, -25},
32 /* HAVE_SW_TONE_CONTROLS */
33 [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0},
34 [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0},
30 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0}, 35 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0},
31 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0}, 36 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0},
32 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100}, 37 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100},
38#ifdef HAVE_RECORDING
33 [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 31, 23}, 39 [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 31, 23},
34 [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 31, 23}, 40 [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 31, 23},
35 [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 1, 0}, 41 [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 1, 0},
42#endif
36 [SOUND_DEPTH_3D] = {"%", 0, 1, 0, 15, 0}, 43 [SOUND_DEPTH_3D] = {"%", 0, 1, 0, 15, 0},
37}; 44};
38 45
39void audiohw_init(void) 46int tenthdb2master(int tdb)
40{ 47{
48 /* Just go from tenth of dB to half to dB */
49 return tdb / 5;
41} 50}
42 51
43void audiohw_preinit(void) 52void audiohw_preinit(void)
44{ 53{
54 imx233_audioout_preinit();
55 imx233_audioin_preinit();
45} 56}
46 57
47void audiohw_postinit(void) 58void audiohw_postinit(void)
48{ 59{
60 imx233_audioout_postinit();
61 imx233_audioin_postinit();
49} 62}
50 63
51void audiohw_close(void) 64void audiohw_close(void)
52{ 65{
66 imx233_audioout_close();
67 imx233_audioin_close();
68}
69
70void audiohw_set_headphone_vol(int vol_l, int vol_r)
71{
72 /* Use playback volume if <0 and headphone volume if >0 */
73 imx233_audioout_set_dac_vol(MIN(0, vol_l), MIN(0, vol_r));
74 imx233_audioout_set_hp_vol(MAX(0, vol_l), MAX(0, vol_r));
75}
76
77void audiohw_set_frequency(int fsel)
78{
79 imx233_audioout_set_freq(fsel);
53} 80}
54 81
55void audiohw_set_recvol(int left, int right, int type) 82void audiohw_set_recvol(int left, int right, int type)