summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Purchase <shotofadds@rockbox.org>2008-09-16 08:09:44 +0000
committerRob Purchase <shotofadds@rockbox.org>2008-09-16 08:09:44 +0000
commit1a08f46329e9f6d7bd55a8a9ad45db27df8a7593 (patch)
tree693d2bd43f42c2d1ba35584e3a0b08f4fcef5969
parent9cf7ef68c9747fe1baa16a80e28d8cb783ea63f5 (diff)
downloadrockbox-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
-rw-r--r--apps/keymaps/keymap-iaudio67.c12
-rw-r--r--apps/plugins/doom/i_video.c9
-rw-r--r--firmware/export/config-iaudio7.h21
-rw-r--r--firmware/export/hd66789r.h2
-rw-r--r--firmware/target/arm/pcm-telechips.c17
-rw-r--r--firmware/target/arm/tcc77x/crt0.S9
-rw-r--r--firmware/target/arm/tcc77x/iaudio7/ata2501.c4
-rw-r--r--firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c10
-rw-r--r--firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c1
-rw-r--r--firmware/thread.c8
-rwxr-xr-xtools/configure2
11 files changed, 62 insertions, 33 deletions
diff --git a/apps/keymaps/keymap-iaudio67.c b/apps/keymaps/keymap-iaudio67.c
index b97a5602c9..b0dac93386 100644
--- a/apps/keymaps/keymap-iaudio67.c
+++ b/apps/keymaps/keymap-iaudio67.c
@@ -40,11 +40,12 @@ static const struct button_mapping button_context_standard[] = {
40 { ACTION_STD_NEXT, BUTTON_LEFT, BUTTON_NONE }, 40 { ACTION_STD_NEXT, BUTTON_LEFT, BUTTON_NONE },
41 { ACTION_STD_NEXTREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 41 { ACTION_STD_NEXTREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
42 42
43 { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY }, 43 { ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
44 { ACTION_STD_OK, BUTTON_PLAY, BUTTON_NONE }, 44 { ACTION_STD_OK, BUTTON_PLAY, BUTTON_NONE },
45 { ACTION_STD_CANCEL, BUTTON_STOP, BUTTON_NONE }, 45 { ACTION_STD_CANCEL, BUTTON_STOP, BUTTON_NONE },
46 { ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
46 47
47 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, 48 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
48 { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY }, 49 { ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
49// { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_PLAY, BUTTON_NONE }, 50// { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_PLAY, BUTTON_NONE },
50 51
@@ -69,7 +70,8 @@ static const struct button_mapping button_context_wps[] = {
69 { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 70 { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
70 { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, 71 { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
71 72
72 { ACTION_WPS_STOP, BUTTON_STOP, BUTTON_NONE }, 73 { ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
74 { ACTION_WPS_STOP, BUTTON_STOP, BUTTON_NONE },
73 75
74 LAST_ITEM_IN_LIST 76 LAST_ITEM_IN_LIST
75}; /* button_context_wps */ 77}; /* button_context_wps */
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index f0aacc47ec..15d0166733 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -268,6 +268,15 @@ void I_ShutdownGraphics(void)
268#define DOOMBUTTON_ESC BUTTON_POWER 268#define DOOMBUTTON_ESC BUTTON_POWER
269#define DOOMBUTTON_ENTER BUTTON_MENU 269#define DOOMBUTTON_ENTER BUTTON_MENU
270#define DOOMBUTTON_WEAPON BUTTON_DISPLAY 270#define DOOMBUTTON_WEAPON BUTTON_DISPLAY
271#elif CONFIG_KEYPAD == IAUDIO67_PAD
272#define DOOMBUTTON_ESC BUTTON_POWER
273#define DOOMBUTTON_UP BUTTON_STOP
274#define DOOMBUTTON_DOWN BUTTON_PLAY
275#define DOOMBUTTON_LEFT BUTTON_LEFT
276#define DOOMBUTTON_RIGHT BUTTON_RIGHT
277#define DOOMBUTTON_SHOOT BUTTON_VOLUP
278#define DOOMBUTTON_OPEN BUTTON_VOLDOWN
279#define DOOMBUTTON_ENTER BUTTON_MENU
271#else 280#else
272#error Keymap not defined! 281#error Keymap not defined!
273#endif 282#endif
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
208void pcm_play_dma_pause(bool pause) 208void 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
213size_t pcm_get_bytes_waiting(void) 217size_t pcm_get_bytes_waiting(void)
@@ -251,11 +255,12 @@ const void * pcm_rec_dma_get_peak_buffer(int *count)
251 255
252void pcm_record_more(void *start, size_t size) 256void 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 */
259void fiq_handler(void) ICODE_ATTR __attribute__((naked)); 264void fiq_handler(void) ICODE_ATTR __attribute__((naked));
260void fiq_handler(void) 265void 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
74void ide_power_enable(bool on) 74void ide_power_enable(bool on)
75{ 75{
76 (void) on;
76} 77}
77 78
78bool ide_powered(void) 79bool 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)
781static inline void core_sleep(void)
782{
783 #warning TODO: Implement core_sleep
784 enable_irq();
785}
786#elif defined(CPU_TCC780X)
787static inline void core_sleep(void) 781static 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 */
diff --git a/tools/configure b/tools/configure
index 319b20ebc5..2cb50a940b 100755
--- a/tools/configure
+++ b/tools/configure
@@ -1294,7 +1294,7 @@ fi
1294 tool="$rootdir/tools/scramble -add=i7" 1294 tool="$rootdir/tools/scramble -add=i7"
1295 boottool="$rootdir/tools/scramble -tcc=crc" 1295 boottool="$rootdir/tools/scramble -tcc=crc"
1296 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" 1296 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
1297 bmp2rb_native="$rootdir/tools/bmp2rb -f 5" 1297 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
1298 output="rockbox.iaudio" 1298 output="rockbox.iaudio"
1299 appextra="recorder:gui" 1299 appextra="recorder:gui"
1300 plugins="yes" 1300 plugins="yes"