From 1a6bcfa2c1545fc66aac40c88dba3a6f804d6227 Mon Sep 17 00:00:00 2001 From: Rob Purchase Date: Sat, 21 Mar 2009 00:13:20 +0000 Subject: D2: Enable FM radio (based on FS#10035 by Michael Burtin with some changes by myself). Also updates the LV24020 driver to add optional logf debugging. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20420 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/audio/wm8985.c | 7 +++++++ firmware/drivers/tuner/lv24020lp.c | 17 ++++++++++++----- firmware/export/config-cowond2.h | 5 +++-- firmware/export/wm8985.h | 1 + firmware/target/arm/tcc780x/cowond2/audio-cowond2.c | 2 ++ 5 files changed, 25 insertions(+), 7 deletions(-) (limited to 'firmware') diff --git a/firmware/drivers/audio/wm8985.c b/firmware/drivers/audio/wm8985.c index f7b2e510ae..d59d2d3230 100644 --- a/firmware/drivers/audio/wm8985.c +++ b/firmware/drivers/audio/wm8985.c @@ -186,6 +186,13 @@ void audiohw_set_lineout_vol(int vol_l, int vol_r) wmcodec_write(ROUT2VOL, 0x100 | vol_r); } +void audiohw_set_aux_vol(int vol_l, int vol_r) +{ + /* OUTMIX */ + wmcodec_write(LOUTMIX, 0x111 | (vol_l << 5) ); + wmcodec_write(ROUTMIX, 0x111 | (vol_r << 5) ); +} + void audiohw_set_bass(int value) { eq1_reg = (eq1_reg & ~EQ_GAIN_MASK) | EQ_GAIN_VALUE(value); diff --git a/firmware/drivers/tuner/lv24020lp.c b/firmware/drivers/tuner/lv24020lp.c index 769be8ac77..c6d396aca4 100644 --- a/firmware/drivers/tuner/lv24020lp.c +++ b/firmware/drivers/tuner/lv24020lp.c @@ -29,19 +29,17 @@ #include "power.h" #include "fmradio.h" /* physical interface driver */ #include "sound.h" -#include "pp5024.h" #include "system.h" #ifndef BOOTLOADER static struct mutex tuner_mtx; -#if 0 /* define to enable tuner logging */ -#define SANYO_TUNER_LOG -#endif +#undef SANYO_TUNER_LOG_FILE +#undef SANYO_TUNER_LOGF -#ifdef SANYO_TUNER_LOG +#ifdef SANYO_TUNER_LOG_FILE #include "sprintf.h" #include "file.h" @@ -52,6 +50,15 @@ static int fd_log = -1; /* syncing required because close() is never called */ #define TUNER_LOG_SYNC() fsync(fd_log) #define TUNER_LOG(s...) fdprintf(fd_log, s) + +#elif defined(SANYO_TUNER_LOGF) +#define LOGF_ENABLE +#include "logf.h" + +#define TUNER_LOG_OPEN() +#define TUNER_LOG_SYNC() +#define TUNER_LOG(s...) logf(s) + #else #define TUNER_LOG_OPEN() #define TUNER_LOG_SYNC() diff --git a/firmware/export/config-cowond2.h b/firmware/export/config-cowond2.h index 2b3b09cb09..85e46f9b30 100644 --- a/firmware/export/config-cowond2.h +++ b/firmware/export/config-cowond2.h @@ -49,9 +49,10 @@ /* define this if you would like tagcache to build on this target */ //#define HAVE_TAGCACHE -/* FM Tuner +/* FM Tuner */ #define CONFIG_TUNER LV24020LP -#define HAVE_TUNER_PWR_CTRL*/ +#define HAVE_TUNER_PWR_CTRL +#define HAVE_RADIO_REGION /* define this if you have a flash memory storage */ #define HAVE_FLASH_STORAGE diff --git a/firmware/export/wm8985.h b/firmware/export/wm8985.h index 0827d4388f..5d036a672f 100644 --- a/firmware/export/wm8985.h +++ b/firmware/export/wm8985.h @@ -32,5 +32,6 @@ extern int tenthdb2master(int db); extern void audiohw_set_headphone_vol(int vol_l, int vol_r); extern void audiohw_set_lineout_vol(int vol_l, int vol_r); +extern void audiohw_set_aux_vol(int vol_l, int vol_r); #endif /* _WM8985_H */ diff --git a/firmware/target/arm/tcc780x/cowond2/audio-cowond2.c b/firmware/target/arm/tcc780x/cowond2/audio-cowond2.c index cd7ea74df2..a6cace3d7d 100644 --- a/firmware/target/arm/tcc780x/cowond2/audio-cowond2.c +++ b/firmware/target/arm/tcc780x/cowond2/audio-cowond2.c @@ -57,6 +57,7 @@ void audio_input_mux(int source, unsigned flags) { /*audiohw_set_monitor(false); audiohw_disable_recording();*/ + audiohw_set_aux_vol(0,0); } break; @@ -86,6 +87,7 @@ void audio_input_mux(int source, unsigned flags) { /*audiohw_disable_recording(); audiohw_set_monitor(true); /. line 1 analog audio path */ + audiohw_set_aux_vol(7,7); } break; } /* end switch */ -- cgit v1.2.3