summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/ascodec-as3525.c
diff options
context:
space:
mode:
authorTobias Diedrich <ranma+coreboot@tdiedrich.de>2010-03-23 11:13:17 +0000
committerTobias Diedrich <ranma+coreboot@tdiedrich.de>2010-03-23 11:13:17 +0000
commitc4e4ffb5418afce2602a2310747676647ee04ddf (patch)
tree3e26d05e501bdf1c6d4ea5ed6f7013968226fd59 /firmware/target/arm/as3525/ascodec-as3525.c
parentf5988d4fbd7150e59f0ea9e4f3f0bd61bbcb0bf9 (diff)
downloadrockbox-c4e4ffb5418afce2602a2310747676647ee04ddf.tar.gz
rockbox-c4e4ffb5418afce2602a2310747676647ee04ddf.zip
Limit AUDIO_IRQ handling to AS3525, since it doesn't work on the newer SoC in SANSA_CLIPPLUS yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25305 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/ascodec-as3525.c')
-rw-r--r--firmware/target/arm/as3525/ascodec-as3525.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/firmware/target/arm/as3525/ascodec-as3525.c b/firmware/target/arm/as3525/ascodec-as3525.c
index 441008493c..ed7aa962e7 100644
--- a/firmware/target/arm/as3525/ascodec-as3525.c
+++ b/firmware/target/arm/as3525/ascodec-as3525.c
@@ -96,7 +96,9 @@ static unsigned char *req_data_ptr = NULL;
96static struct ascodec_request *req_head = NULL; 96static struct ascodec_request *req_head = NULL;
97static struct ascodec_request *req_tail = NULL; 97static struct ascodec_request *req_tail = NULL;
98 98
99#if CONFIG_CPU == AS3525
99static struct wakeup adc_wkup; 100static struct wakeup adc_wkup;
101static struct ascodec_request as_audio_req;
100 102
101#ifdef DEBUG 103#ifdef DEBUG
102static int int_audio_ctr = 0; 104static int int_audio_ctr = 0;
@@ -107,15 +109,16 @@ static int int_usb_insert = 0;
107static int int_usb_remove = 0; 109static int int_usb_remove = 0;
108static int int_rtc = 0; 110static int int_rtc = 0;
109static int int_adc = 0; 111static int int_adc = 0;
110#endif 112#endif /* DEBUG */
111 113
112static struct ascodec_request as_audio_req; 114static void ascodec_read_cb(unsigned const char *data, unsigned int len);
115#endif /* CONFIG_CPU == AS3525 */
113 116
114static void ascodec_start_req(struct ascodec_request *req); 117static void ascodec_start_req(struct ascodec_request *req);
115static int ascodec_continue_req(struct ascodec_request *req, int irq_status); 118static int ascodec_continue_req(struct ascodec_request *req, int irq_status);
116static void ascodec_finish_req(struct ascodec_request *req); 119static void ascodec_finish_req(struct ascodec_request *req);
117static void ascodec_read_cb(unsigned const char *data, unsigned int len);
118 120
121#if CONFIG_CPU == AS3525
119void INT_AUDIO(void) 122void INT_AUDIO(void)
120{ 123{
121 VIC_INT_EN_CLEAR = INTERRUPT_AUDIO; 124 VIC_INT_EN_CLEAR = INTERRUPT_AUDIO;
@@ -123,6 +126,7 @@ void INT_AUDIO(void)
123 126
124 ascodec_async_read(AS3514_IRQ_ENRD0, 3, &as_audio_req, ascodec_read_cb); 127 ascodec_async_read(AS3514_IRQ_ENRD0, 3, &as_audio_req, ascodec_read_cb);
125} 128}
129#endif /* CONFIG_CPU == AS3525 */
126 130
127void INT_I2C_AUDIO(void) 131void INT_I2C_AUDIO(void)
128{ 132{
@@ -162,7 +166,9 @@ void ascodec_init(void)
162 int prescaler; 166 int prescaler;
163 167
164 mutex_init(&as_mtx); 168 mutex_init(&as_mtx);
169#if CONFIG_CPU == AS3525
165 wakeup_init(&adc_wkup); 170 wakeup_init(&adc_wkup);
171#endif
166 172
167 /* enable clock */ 173 /* enable clock */
168 CGU_PERI |= CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE; 174 CGU_PERI |= CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE;
@@ -423,6 +429,7 @@ int ascodec_readbytes(unsigned int index, unsigned int len, unsigned char *data)
423 return i; 429 return i;
424} 430}
425 431
432#if CONFIG_CPU == AS3525
426static void ascodec_read_cb(unsigned const char *data, unsigned int len) 433static void ascodec_read_cb(unsigned const char *data, unsigned int len)
427{ 434{
428 if (len != 3) /* some error happened? */ 435 if (len != 3) /* some error happened? */
@@ -465,6 +472,7 @@ void ascodec_wait_adc_finished(void)
465{ 472{
466 wakeup_wait(&adc_wkup, TIMEOUT_BLOCK); 473 wakeup_wait(&adc_wkup, TIMEOUT_BLOCK);
467} 474}
475#endif /* CONFIG_CPU == AS3525 */
468 476
469 477
470void ascodec_enable_endofch_irq(void) 478void ascodec_enable_endofch_irq(void)