summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-05-20 20:26:36 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-05-20 20:26:36 +0000
commit8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e (patch)
treea54381487762ec69bdec99f69dd24b148d3400b9 /firmware/target
parent731d7a16c3f606d586237fc8b4086ee54a0d0704 (diff)
downloadrockbox-8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e.tar.gz
rockbox-8f659ae8d3845b40ff93ebfa3692f7b2302e6c7e.zip
Use bitmasks to define which inputs are available. Makes it easier to remove old assumptions of which are available. Inspired by e200 being unique in having FM Radio and Mic but no Line. Doesn't remove the assumption that Mic is available or that one of Mic and/or Line is available just to avoid excessive #ifdef'ing until needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13448 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/audio-pp.c7
-rw-r--r--firmware/target/arm/system-pp502x.c10
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c8
3 files changed, 18 insertions, 7 deletions
diff --git a/firmware/target/arm/audio-pp.c b/firmware/target/arm/audio-pp.c
index 603bbad5fe..82c5545a3f 100644
--- a/firmware/target/arm/audio-pp.c
+++ b/firmware/target/arm/audio-pp.c
@@ -40,7 +40,6 @@ void audio_set_source(int source, unsigned flags)
40 { 40 {
41 default: /* playback - no recording */ 41 default: /* playback - no recording */
42 source = AUDIO_SRC_PLAYBACK; 42 source = AUDIO_SRC_PLAYBACK;
43#ifdef HAVE_RECORDING
44 case AUDIO_SRC_PLAYBACK: 43 case AUDIO_SRC_PLAYBACK:
45 if (source != last_source) 44 if (source != last_source)
46 { 45 {
@@ -48,6 +47,7 @@ void audio_set_source(int source, unsigned flags)
48 audiohw_set_monitor(false); 47 audiohw_set_monitor(false);
49 } 48 }
50 break; 49 break;
50#ifdef HAVE_MIC_REC
51 case AUDIO_SRC_MIC: /* recording only */ 51 case AUDIO_SRC_MIC: /* recording only */
52 if (source != last_source) 52 if (source != last_source)
53 { 53 {
@@ -55,7 +55,8 @@ void audio_set_source(int source, unsigned flags)
55 audiohw_set_monitor(false); 55 audiohw_set_monitor(false);
56 } 56 }
57 break; 57 break;
58 58#endif
59#ifdef HAVE_LINEIN_REC
59 case AUDIO_SRC_LINEIN: /* recording only */ 60 case AUDIO_SRC_LINEIN: /* recording only */
60 if (source != last_source) 61 if (source != last_source)
61 { 62 {
@@ -64,7 +65,7 @@ void audio_set_source(int source, unsigned flags)
64 } 65 }
65 break; 66 break;
66#endif 67#endif
67#if CONFIG_TUNER 68#ifdef HAVE_FMRADIO_REC
68 case AUDIO_SRC_FMRADIO: /* recording and playback */ 69 case AUDIO_SRC_FMRADIO: /* recording and playback */
69 if (!recording) 70 if (!recording)
70 audiohw_set_recvol(0, 0, AUDIO_GAIN_LINEIN); 71 audiohw_set_recvol(0, 0, AUDIO_GAIN_LINEIN);
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c
index 1f2d27a7b7..0148f3d9de 100644
--- a/firmware/target/arm/system-pp502x.c
+++ b/firmware/target/arm/system-pp502x.c
@@ -62,6 +62,11 @@ extern void clickwheel_int(void);
62void irq(void) 62void irq(void)
63{ 63{
64 if(CURRENT_CORE == CPU) { 64 if(CURRENT_CORE == CPU) {
65 if (CPU_HI_INT_STAT)
66 {
67 gui_syncsplash(0, "%08X %08X", inl(0x6000414c), CPU_HI_INT_STAT);
68 }
69
65 if (CPU_INT_STAT & TIMER1_MASK) { 70 if (CPU_INT_STAT & TIMER1_MASK) {
66#ifdef SANSA_E200 71#ifdef SANSA_E200
67 if (GPIOF_INT_STAT & 0xff) 72 if (GPIOF_INT_STAT & 0xff)
@@ -239,6 +244,11 @@ void system_init(void)
239 CPU_INT_CLR = -1; 244 CPU_INT_CLR = -1;
240 INT_FORCED_CLR = -1; 245 INT_FORCED_CLR = -1;
241 246
247 outl(0, 0x6000414c);
248 outl(0, 0x60004144);
249
250// outl(0x80000, 0x6000414c);
251
242 GPIOA_INT_EN = 0; 252 GPIOA_INT_EN = 0;
243 GPIOB_INT_EN = 0; 253 GPIOB_INT_EN = 0;
244 GPIOC_INT_EN = 0; 254 GPIOC_INT_EN = 0;
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index b52e5e09b5..dc40dacf0e 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -22,7 +22,7 @@
22#include "logf.h" 22#include "logf.h"
23#include "audio.h" 23#include "audio.h"
24#include "sound.h" 24#include "sound.h"
25#if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT) 25#if defined(HAVE_SPDIF_REC) || defined(HAVE_SPDIF_OUT)
26#include "spdif.h" 26#include "spdif.h"
27#endif 27#endif
28 28
@@ -276,7 +276,7 @@ void pcm_init(void)
276 audiohw_set_frequency(freq_ent[FPARM_FSEL]); 276 audiohw_set_frequency(freq_ent[FPARM_FSEL]);
277 coldfire_set_pllcr_audio_bits(PLLCR_SET_AUDIO_BITS_DEFPARM); 277 coldfire_set_pllcr_audio_bits(PLLCR_SET_AUDIO_BITS_DEFPARM);
278 278
279#if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT) 279#if defined(HAVE_SPDIF_REC) || defined(HAVE_SPDIF_OUT)
280 spdif_init(); 280 spdif_init();
281#endif 281#endif
282 /* Enable interrupt at level 6, priority 0 */ 282 /* Enable interrupt at level 6, priority 0 */
@@ -365,7 +365,7 @@ void pcm_rec_dma_start(void *addr, size_t size)
365 _pcm_apply_settings(!is_playback_monitoring()); 365 _pcm_apply_settings(!is_playback_monitoring());
366 366
367 /* Start the DMA transfer.. */ 367 /* Start the DMA transfer.. */
368#ifdef HAVE_SPDIF_IN 368#ifdef HAVE_SPDIF_REC
369 /* clear: ebu1cnew, valnogood, symbolerr, parityerr */ 369 /* clear: ebu1cnew, valnogood, symbolerr, parityerr */
370 INTERRUPTCLEAR = (1 << 25) | (1 << 24) | (1 << 23) | (1 << 22); 370 INTERRUPTCLEAR = (1 << 25) | (1 << 24) | (1 << 23) | (1 << 22);
371#endif 371#endif
@@ -462,7 +462,7 @@ void DMA1(void)
462 logf(" DCR1: %08x", DCR1); 462 logf(" DCR1: %08x", DCR1);
463#endif 463#endif
464 } 464 }
465#ifdef HAVE_SPDIF_IN 465#ifdef HAVE_SPDIF_REC
466 else if (DATAINCONTROL == 0xc038 && 466 else if (DATAINCONTROL == 0xc038 &&
467 (INTERRUPTSTAT & ((1 << 24) | (1 << 23) | (1 << 22)))) 467 (INTERRUPTSTAT & ((1 << 24) | (1 << 23) | (1 << 22))))
468 { 468 {