diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2008-09-16 08:09:44 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2008-09-16 08:09:44 +0000 |
commit | 1a08f46329e9f6d7bd55a8a9ad45db27df8a7593 (patch) | |
tree | 693d2bd43f42c2d1ba35584e3a0b08f4fcef5969 /firmware | |
parent | 9cf7ef68c9747fe1baa16a80e28d8cb783ea63f5 (diff) | |
download | rockbox-1a08f46329e9f6d7bd55a8a9ad45db27df8a7593.tar.gz rockbox-1a08f46329e9f6d7bd55a8a9ad45db27df8a7593.zip |
Commit fs#9404 (iAudio 7 updates by vitja). Also fixes play/pause behaviour on D2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18528 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/config-iaudio7.h | 21 | ||||
-rw-r--r-- | firmware/export/hd66789r.h | 2 | ||||
-rw-r--r-- | firmware/target/arm/pcm-telechips.c | 17 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/crt0.S | 9 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/iaudio7/ata2501.c | 4 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c | 10 | ||||
-rw-r--r-- | firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c | 1 | ||||
-rw-r--r-- | firmware/thread.c | 8 |
8 files changed, 45 insertions, 27 deletions
diff --git a/firmware/export/config-iaudio7.h b/firmware/export/config-iaudio7.h index 8bc73fa41c..881dc0d1b2 100644 --- a/firmware/export/config-iaudio7.h +++ b/firmware/export/config-iaudio7.h | |||
@@ -13,7 +13,7 @@ | |||
13 | explicitly if different */ | 13 | explicitly if different */ |
14 | #define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO) | 14 | #define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO) |
15 | 15 | ||
16 | /* define hardware samples rate caps mask */ | 16 | /* define hardware samples rate caps mask */ |
17 | #define HW_SAMPR_CAPS (/*SAMPR_CAP_88 | */SAMPR_CAP_44/* | SAMPR_CAP_22 | SAMPR_CAP_11*/) | 17 | #define HW_SAMPR_CAPS (/*SAMPR_CAP_88 | */SAMPR_CAP_44/* | SAMPR_CAP_22 | SAMPR_CAP_11*/) |
18 | 18 | ||
19 | /* define the bitmask of recording sample rates */ | 19 | /* define the bitmask of recording sample rates */ |
@@ -31,6 +31,9 @@ | |||
31 | /* define this if you can invert the colours on your LCD */ | 31 | /* define this if you can invert the colours on your LCD */ |
32 | //#define HAVE_LCD_INVERT | 32 | //#define HAVE_LCD_INVERT |
33 | 33 | ||
34 | /* define this if you want album art for this target */ | ||
35 | #define HAVE_ALBUMART | ||
36 | |||
34 | /* define this if you have access to the quickscreen */ | 37 | /* define this if you have access to the quickscreen */ |
35 | #define HAVE_QUICKSCREEN | 38 | #define HAVE_QUICKSCREEN |
36 | 39 | ||
@@ -100,11 +103,8 @@ | |||
100 | /* Codec is slave on serial bus */ | 103 | /* Codec is slave on serial bus */ |
101 | #define CODEC_SLAVE | 104 | #define CODEC_SLAVE |
102 | 105 | ||
103 | /* Define this if you have the TLV320 audio codec */ | 106 | /* WM8731 has no tone controls, so we use the software ones */ |
104 | //#define HAVE_TLV320 | 107 | #define HAVE_SW_TONE_CONTROLS |
105 | |||
106 | /* TLV320 has no tone controls, so we use the software ones */ | ||
107 | //#define HAVE_SW_TONE_CONTROLS | ||
108 | 108 | ||
109 | /* Define this for LCD backlight available */ | 109 | /* Define this for LCD backlight available */ |
110 | #define HAVE_BACKLIGHT | 110 | #define HAVE_BACKLIGHT |
@@ -132,9 +132,6 @@ | |||
132 | /* Define this to the CPU frequency */ | 132 | /* Define this to the CPU frequency */ |
133 | #define CPU_FREQ 120000000 | 133 | #define CPU_FREQ 120000000 |
134 | 134 | ||
135 | /* Offset ( in the firmware file's header ) to the file length */ | ||
136 | //#define FIRMWARE_OFFSET_FILE_LENGTH 0 | ||
137 | |||
138 | /* Offset ( in the firmware file's header ) to the file CRC */ | 135 | /* Offset ( in the firmware file's header ) to the file CRC */ |
139 | #define FIRMWARE_OFFSET_FILE_CRC 0 | 136 | #define FIRMWARE_OFFSET_FILE_CRC 0 |
140 | 137 | ||
@@ -146,12 +143,12 @@ | |||
146 | 143 | ||
147 | #define CONFIG_LCD LCD_IAUDIO67 | 144 | #define CONFIG_LCD LCD_IAUDIO67 |
148 | 145 | ||
149 | /* FM Tuner */ | 146 | /* FM Tuner */ |
150 | #define CONFIG_TUNER LV24020LP | 147 | #define CONFIG_TUNER LV24020LP |
151 | #define HAVE_TUNER_PWR_CTRL | 148 | #define HAVE_TUNER_PWR_CTRL |
152 | 149 | ||
153 | /* Define this for FM radio input available */ | 150 | /* Define this for FM radio input available */ |
154 | #define HAVE_FMRADIO_IN | 151 | #define HAVE_FMRADIO_IN |
155 | 152 | ||
156 | #define BOOTFILE_EXT "iaudio" | 153 | #define BOOTFILE_EXT "iaudio" |
157 | #define BOOTFILE "rockbox." BOOTFILE_EXT | 154 | #define BOOTFILE "rockbox." BOOTFILE_EXT |
diff --git a/firmware/export/hd66789r.h b/firmware/export/hd66789r.h index 464ddbab4f..f0b2c2bb71 100644 --- a/firmware/export/hd66789r.h +++ b/firmware/export/hd66789r.h | |||
@@ -7,7 +7,7 @@ | |||
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id$ | 8 | * $Id$ |
9 | * | 9 | * |
10 | * Copyright (C) 2008 Vitja Makarov | 10 | * Copyright (C) 2004 by Linus Nielsen Feltzing |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU General Public License | 13 | * modify it under the terms of the GNU General Public License |
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c index a0ad00eb22..63f50f7d78 100644 --- a/firmware/target/arm/pcm-telechips.c +++ b/firmware/target/arm/pcm-telechips.c | |||
@@ -207,7 +207,11 @@ void pcm_play_unlock(void) | |||
207 | 207 | ||
208 | void pcm_play_dma_pause(bool pause) | 208 | void pcm_play_dma_pause(bool pause) |
209 | { | 209 | { |
210 | (void) pause; | 210 | if (pause) { |
211 | play_stop_pcm(); | ||
212 | } else { | ||
213 | play_start_pcm(); | ||
214 | } | ||
211 | } | 215 | } |
212 | 216 | ||
213 | size_t pcm_get_bytes_waiting(void) | 217 | size_t pcm_get_bytes_waiting(void) |
@@ -251,11 +255,12 @@ const void * pcm_rec_dma_get_peak_buffer(int *count) | |||
251 | 255 | ||
252 | void pcm_record_more(void *start, size_t size) | 256 | void pcm_record_more(void *start, size_t size) |
253 | { | 257 | { |
258 | (void) start; | ||
259 | (void) size; | ||
254 | } | 260 | } |
255 | #endif | 261 | #endif |
256 | 262 | ||
257 | #if defined(COWON_D2) | 263 | #if defined(CPU_TCC77X) || defined(CPU_TCC780X) |
258 | /* TODO: hardcoded hex values differs for tcc7xx and tcc8xx */ | ||
259 | void fiq_handler(void) ICODE_ATTR __attribute__((naked)); | 264 | void fiq_handler(void) ICODE_ATTR __attribute__((naked)); |
260 | void fiq_handler(void) | 265 | void fiq_handler(void) |
261 | { | 266 | { |
@@ -266,10 +271,14 @@ void fiq_handler(void) | |||
266 | * r0-r3 and r12 is a working register. | 271 | * r0-r3 and r12 is a working register. |
267 | */ | 272 | */ |
268 | asm volatile ( | 273 | asm volatile ( |
274 | #if defined(CPU_TCC780X) | ||
269 | "mov r8, #0xc000 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ | 275 | "mov r8, #0xc000 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ |
270 | "ldr r9, =0xf3001004 \n" /* CREQ */ | 276 | "ldr r9, =0xf3001004 \n" /* CREQ */ |
277 | #elif defined(CPU_TCC77X) | ||
278 | "mov r8, #0x0030 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ | ||
279 | "ldr r9, =0x80000104 \n" /* CREQ */ | ||
280 | #endif | ||
271 | "str r8, [r9] \n" /* clear DAI IRQs */ | 281 | "str r8, [r9] \n" /* clear DAI IRQs */ |
272 | |||
273 | "ldmia r11, { r8-r9 } \n" /* r8 = p, r9 = size */ | 282 | "ldmia r11, { r8-r9 } \n" /* r8 = p, r9 = size */ |
274 | "cmp r9, #0x10 \n" /* is size <16? */ | 283 | "cmp r9, #0x10 \n" /* is size <16? */ |
275 | "blt .more_data \n" /* if so, ask pcmbuf for more data */ | 284 | "blt .more_data \n" /* if so, ask pcmbuf for more data */ |
diff --git a/firmware/target/arm/tcc77x/crt0.S b/firmware/target/arm/tcc77x/crt0.S index 569930352a..03dc2a9771 100644 --- a/firmware/target/arm/tcc77x/crt0.S +++ b/firmware/target/arm/tcc77x/crt0.S | |||
@@ -131,6 +131,15 @@ copied_start: | |||
131 | msr cpsr, r0 | 131 | msr cpsr, r0 |
132 | ldr sp, =fiq_stack | 132 | ldr sp, =fiq_stack |
133 | 133 | ||
134 | #ifndef BOOTLOADER | ||
135 | /* Load the banked FIQ mode registers with useful values here. | ||
136 | These values will be used in the FIQ handler in pcm-telechips.c */ | ||
137 | .equ DADO_BASE, 0x80000020 | ||
138 | |||
139 | ldr r10, =DADO_BASE | ||
140 | ldr r11, =dma_play_data | ||
141 | #endif | ||
142 | |||
134 | /* Let abort and undefined modes use IRQ stack */ | 143 | /* Let abort and undefined modes use IRQ stack */ |
135 | mov r0,#0xd7 | 144 | mov r0,#0xd7 |
136 | msr cpsr, r0 | 145 | msr cpsr, r0 |
diff --git a/firmware/target/arm/tcc77x/iaudio7/ata2501.c b/firmware/target/arm/tcc77x/iaudio7/ata2501.c index fa165d9d0d..bc39872de6 100644 --- a/firmware/target/arm/tcc77x/iaudio7/ata2501.c +++ b/firmware/target/arm/tcc77x/iaudio7/ata2501.c | |||
@@ -86,7 +86,7 @@ unsigned short ata2501_read(void) | |||
86 | return ret; | 86 | return ret; |
87 | } | 87 | } |
88 | 88 | ||
89 | #define ATA2501_TEST | 89 | //#define ATA2501_TEST |
90 | #ifdef ATA2501_TEST | 90 | #ifdef ATA2501_TEST |
91 | #include "lcd.h" | 91 | #include "lcd.h" |
92 | #include "sprintf.h" | 92 | #include "sprintf.h" |
@@ -108,7 +108,7 @@ void ata2501_test(void) | |||
108 | 108 | ||
109 | while (1) { | 109 | while (1) { |
110 | unsigned short data; | 110 | unsigned short data; |
111 | int i, line = 0; | 111 | int line = 0; |
112 | 112 | ||
113 | data = ata2501_read(); | 113 | data = ata2501_read(); |
114 | lcd_clear_display(); | 114 | lcd_clear_display(); |
diff --git a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c index bbc20b6860..0ca18bee67 100644 --- a/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c +++ b/firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <cpu.h> | 31 | #include <cpu.h> |
32 | #include <lcd.h> | 32 | #include <lcd.h> |
33 | #include <system-target.h> | 33 | #include <system-target.h> |
34 | #include <panic.h> | ||
34 | 35 | ||
35 | #include "hd66789r.h" | 36 | #include "hd66789r.h" |
36 | 37 | ||
@@ -142,7 +143,7 @@ void lcd_enable(bool on) | |||
142 | 143 | ||
143 | if (on) { | 144 | if (on) { |
144 | _display_on(); | 145 | _display_on(); |
145 | // lcd_call_enable_hook(); | 146 | lcd_call_enable_hook(); |
146 | } else { | 147 | } else { |
147 | /** Off sequence according to datasheet, p. 130 **/ | 148 | /** Off sequence according to datasheet, p. 130 **/ |
148 | lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */ | 149 | lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */ |
@@ -242,6 +243,13 @@ void lcd_blit_yuv(unsigned char *const src[3], | |||
242 | int src_x, int src_y, int stride, | 243 | int src_x, int src_y, int stride, |
243 | int x, int y, int width, int height) | 244 | int x, int y, int width, int height) |
244 | { | 245 | { |
246 | (void) src; | ||
247 | (void) src_x; | ||
248 | (void) src_y; | ||
249 | (void) stride; | ||
250 | (void) x; | ||
251 | (void) y; | ||
252 | |||
245 | if (!display_on) | 253 | if (!display_on) |
246 | return; | 254 | return; |
247 | 255 | ||
diff --git a/firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c b/firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c index ef012cbbdf..ce7175ef55 100644 --- a/firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c +++ b/firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c | |||
@@ -73,6 +73,7 @@ void power_touch_panel(bool on) | |||
73 | 73 | ||
74 | void ide_power_enable(bool on) | 74 | void ide_power_enable(bool on) |
75 | { | 75 | { |
76 | (void) on; | ||
76 | } | 77 | } |
77 | 78 | ||
78 | bool ide_powered(void) | 79 | bool ide_powered(void) |
diff --git a/firmware/thread.c b/firmware/thread.c index 6ba3bd9231..4e22c51689 100644 --- a/firmware/thread.c +++ b/firmware/thread.c | |||
@@ -777,13 +777,7 @@ static inline void core_sleep(void) | |||
777 | "msr cpsr_c, r0 \n" /* Enable IRQ, restore FIQ */ | 777 | "msr cpsr_c, r0 \n" /* Enable IRQ, restore FIQ */ |
778 | : : : "r0", "r1", "r2"); | 778 | : : : "r0", "r1", "r2"); |
779 | } | 779 | } |
780 | #elif defined(CPU_TCC77X) | 780 | #elif defined(CPU_TCC780X) || defined(CPU_TCC77X) |
781 | static inline void core_sleep(void) | ||
782 | { | ||
783 | #warning TODO: Implement core_sleep | ||
784 | enable_irq(); | ||
785 | } | ||
786 | #elif defined(CPU_TCC780X) | ||
787 | static inline void core_sleep(void) | 781 | static inline void core_sleep(void) |
788 | { | 782 | { |
789 | /* Single core only for now. Use the generic ARMv5 wait for IRQ */ | 783 | /* Single core only for now. Use the generic ARMv5 wait for IRQ */ |