summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarianne Arnold <pixelma@rockbox.org>2007-10-02 21:04:10 +0000
committerMarianne Arnold <pixelma@rockbox.org>2007-10-02 21:04:10 +0000
commitaf97e9369a5ecbe4438a1a5df14269fa56320fa3 (patch)
treeaa9f6c3df7f0eaee880caf10366ec9e8ef036e31
parent51a8a1e3f3e390c55f2661ef5b4b681121156eee (diff)
downloadrockbox-af97e9369a5ecbe4438a1a5df14269fa56320fa3.zip
rockbox-af97e9369a5ecbe4438a1a5df14269fa56320fa3.tar.gz
rockbox-af97e9369a5ecbe4438a1a5df14269fa56320fa3.tar.bz2
rockbox-af97e9369a5ecbe4438a1a5df14269fa56320fa3.tar.xz
Commit FS #7881 by Mark Arigo - enable radio on the Sansa c200. It seems that many (if not all) c200s have the radio hardware even if you can't use it with the original firmware...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14963 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/keymaps/keymap-c200.c15
-rw-r--r--apps/recorder/radio.c4
-rw-r--r--firmware/export/config-c200.h4
-rw-r--r--firmware/target/arm/sandisk/power-c200_e200.c8
4 files changed, 23 insertions, 8 deletions
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
index f8801a2..3f4bb49 100644
--- a/apps/keymaps/keymap-c200.c
+++ b/apps/keymaps/keymap-c200.c
@@ -87,12 +87,12 @@ static const struct button_mapping button_context_wps[] = {
static const struct button_mapping button_context_settings[] = {
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
{ ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE },
-
- { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
- { ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
- { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
- { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
+ { ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+
+ { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
+ { ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
@@ -241,6 +241,11 @@ static const struct button_mapping button_context_radio[] = {
{ ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE },
{ ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE },
{ ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
+ { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE },
+ { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE },
+ { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
+
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
#endif
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 5042305..6f155e5 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -45,7 +45,9 @@
#include "lang.h"
#include "font.h"
#include "sound_menu.h"
+#ifdef HAVE_RECORDING
#include "recording.h"
+#endif
#include "talk.h"
#include "tuner.h"
#include "power.h"
@@ -90,7 +92,7 @@
#elif CONFIG_KEYPAD == ONDIO_PAD
#define FM_RECORD_DBLPRE
#define FM_RECORD
-#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || (CONFIG_KEYPAD == SANSA_C200_PAD)
#define FM_MENU
#define FM_PRESET
#define FM_STOP
diff --git a/firmware/export/config-c200.h b/firmware/export/config-c200.h
index 1d91228..6397dd8 100644
--- a/firmware/export/config-c200.h
+++ b/firmware/export/config-c200.h
@@ -100,8 +100,8 @@
#define AB_REPEAT_ENABLE 1
/* FM Tuner */
-/* TODO: #define CONFIG_TUNER LV24020LP */
-/* TODO: #define HAVE_TUNER_PWR_CTRL */
+#define CONFIG_TUNER LV24020LP
+#define HAVE_TUNER_PWR_CTRL
/* Define this for LCD backlight available */
#define HAVE_BACKLIGHT
diff --git a/firmware/target/arm/sandisk/power-c200_e200.c b/firmware/target/arm/sandisk/power-c200_e200.c
index cb85b11..910c3aa 100644
--- a/firmware/target/arm/sandisk/power-c200_e200.c
+++ b/firmware/target/arm/sandisk/power-c200_e200.c
@@ -82,7 +82,11 @@ bool tuner_power_nolock(bool status)
if (status)
{
/* init mystery amplification device */
+#if defined(SANSA_E200)
outl(inl(0x70000084) | 0x1, 0x70000084);
+#else /* SANSA_C200 */
+ DEV_INIT &= ~0x800;
+#endif
udelay(5);
/* When power up, host should initialize the 3-wire bus
@@ -113,7 +117,11 @@ bool tuner_power_nolock(bool status)
GPIOH_ENABLE &= ~((1 << 5) | (1 << 3) | (1 << 4));
/* turn off mystery amplification device */
+#if defined (SANSA_E200)
outl(inl(0x70000084) & ~0x1, 0x70000084);
+#else
+ DEV_INIT |= 0x800;
+#endif
}
powered = status;