Index: apps/eq_menu.c =================================================================== RCS file: /cvsroot/rockbox/apps/eq_menu.c,v retrieving revision 1.9 diff -u -r1.9 eq_menu.c --- apps/eq_menu.c 21 Feb 2006 10:21:48 -0000 1.9 +++ apps/eq_menu.c 22 Feb 2006 21:17:15 -0000 @@ -58,7 +58,8 @@ #define EQ_BTN_CHANGE_MODE BUTTON_SELECT #define EQ_BTN_EXIT BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define EQ_BTN_DECREMENT BUTTON_SCROLL_BACK #define EQ_BTN_INCREMENT BUTTON_SCROLL_FWD Index: apps/main.c =================================================================== RCS file: /cvsroot/rockbox/apps/main.c,v retrieving revision 1.161 diff -u -r1.161 main.c --- apps/main.c 27 Jan 2006 11:39:46 -0000 1.161 +++ apps/main.c 22 Feb 2006 21:17:15 -0000 @@ -220,7 +220,7 @@ font_init(); show_logo(); lang_init(); - + set_irq_level(0); #ifdef DEBUG debug_init(); @@ -246,10 +246,12 @@ backlight_init(); + button_init(); + powermgmt_init(); - + #if CONFIG_CODEC == SWCODEC audio_preinit(); #endif @@ -258,6 +260,7 @@ radio_init(); #endif + /* Must be done before any code uses the multi-screen APi */ screen_access_init(); gui_syncstatusbar_init(&statusbars); Index: apps/plugins/battery_bench.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/battery_bench.c,v retrieving revision 1.5 diff -u -r1.5 battery_bench.c --- apps/plugins/battery_bench.c 7 Feb 2006 16:41:29 -0000 1.5 +++ apps/plugins/battery_bench.c 22 Feb 2006 21:17:16 -0000 @@ -52,7 +52,7 @@ #define BATTERY_OFF BUTTON_OFF #define BATTERY_RC_OFF BUTTON_RC_STOP -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define BATTERY_ON BUTTON_PLAY #define BATTERY_OFF BUTTON_MENU Index: apps/plugins/battery_test.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/battery_test.c,v retrieving revision 1.17 diff -u -r1.17 battery_test.c --- apps/plugins/battery_test.c 18 Jan 2006 11:09:05 -0000 1.17 +++ apps/plugins/battery_test.c 22 Feb 2006 21:17:16 -0000 @@ -43,7 +43,7 @@ #define BATTERY_TEST_QUIT BUTTON_OFF #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define BATTERY_TEST_QUIT BUTTON_PLAY -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define BATTERY_TEST_QUIT BUTTON_MENU #elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) #define BATTERY_TEST_QUIT BUTTON_POWER Index: apps/plugins/bounce.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/bounce.c,v retrieving revision 1.25 diff -u -r1.25 bounce.c --- apps/plugins/bounce.c 19 Jan 2006 12:44:46 -0000 1.25 +++ apps/plugins/bounce.c 22 Feb 2006 21:17:16 -0000 @@ -52,7 +52,7 @@ #define BOUNCE_QUIT (BUTTON_OFF | BUTTON_REL) #define BOUNCE_MODE (BUTTON_SELECT | BUTTON_REL) -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define BOUNCE_UP BUTTON_SCROLL_BACK #define BOUNCE_DOWN BUTTON_SCROLL_FWD #define BOUNCE_QUIT (BUTTON_MENU | BUTTON_REL) Index: apps/plugins/brickmania.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/brickmania.c,v retrieving revision 1.12 diff -u -r1.12 brickmania.c --- apps/plugins/brickmania.c 22 Feb 2006 10:34:36 -0000 1.12 +++ apps/plugins/brickmania.c 22 Feb 2006 21:17:16 -0000 @@ -65,6 +65,7 @@ #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) + #define QUIT BUTTON_MENU #define LEFT BUTTON_LEFT #define RIGHT BUTTON_RIGHT Index: apps/plugins/calculator.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/calculator.c,v retrieving revision 1.16 diff -u -r1.16 calculator.c --- apps/plugins/calculator.c 18 Jan 2006 11:09:05 -0000 1.16 +++ apps/plugins/calculator.c 22 Feb 2006 21:17:17 -0000 @@ -134,7 +134,7 @@ #define CALCULATOR_OPERATORS BUTTON_MODE #define CALCULATOR_CLEAR BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define CALCULATOR_UP BUTTON_SCROLL_BACK #define CALCULATOR_DOWN BUTTON_SCROLL_FWD Index: apps/plugins/chessclock.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/chessclock.c,v retrieving revision 1.16 diff -u -r1.16 chessclock.c --- apps/plugins/chessclock.c 18 Jan 2006 11:09:05 -0000 1.16 +++ apps/plugins/chessclock.c 22 Feb 2006 21:17:17 -0000 @@ -66,7 +66,7 @@ #define CHC_SETTINGS_CANCEL BUTTON_OFF #define CHC_SETTINGS_CANCEL2 BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define CHC_QUIT BUTTON_PLAY #define CHC_STARTSTOP BUTTON_SELECT #define CHC_RESET BUTTON_LEFT Index: apps/plugins/chip8.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/chip8.c,v retrieving revision 1.17 diff -u -r1.17 chip8.c --- apps/plugins/chip8.c 18 Jan 2006 11:09:05 -0000 1.17 +++ apps/plugins/chip8.c 22 Feb 2006 21:17:17 -0000 @@ -976,7 +976,7 @@ #define CHIP8_KEY6 BUTTON_RIGHT #define CHIP8_KEY8 BUTTON_DOWN -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define CHIP8_OFF BUTTON_MENU #define CHIP8_KEY2 BUTTON_SCROLL_BACK #define CHIP8_KEY4 BUTTON_LEFT Index: apps/plugins/cube.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/cube.c,v retrieving revision 1.26 diff -u -r1.26 cube.c --- apps/plugins/cube.c 23 Jan 2006 23:53:22 -0000 1.26 +++ apps/plugins/cube.c 22 Feb 2006 21:17:18 -0000 @@ -82,7 +82,7 @@ #define CUBE_PAUSE (BUTTON_ON | BUTTON_REL) #define CUBE_HIGHSPEED BUTTON_SELECT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define CUBE_QUIT BUTTON_MENU #define CUBE_X_INC BUTTON_LEFT #define CUBE_X_DEC BUTTON_RIGHT Index: apps/plugins/demystify.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/demystify.c,v retrieving revision 1.5 diff -u -r1.5 demystify.c --- apps/plugins/demystify.c 18 Jan 2006 11:09:05 -0000 1.5 +++ apps/plugins/demystify.c 22 Feb 2006 21:17:18 -0000 @@ -26,7 +26,7 @@ PLUGIN_HEADER /* Key assignement */ -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define DEMYSTIFY_QUIT BUTTON_MENU #define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT #define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT Index: apps/plugins/dict.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/dict.c,v retrieving revision 1.11 diff -u -r1.11 dict.c --- apps/plugins/dict.c 11 Feb 2006 14:58:52 -0000 1.11 +++ apps/plugins/dict.c 22 Feb 2006 21:17:18 -0000 @@ -104,7 +104,7 @@ /* Button definitions */ #if CONFIG_KEYPAD == PLAYER_PAD #define LP_QUIT BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define LP_QUIT BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define LP_QUIT BUTTON_PLAY Index: apps/plugins/flipit.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/flipit.c,v retrieving revision 1.16 diff -u -r1.16 flipit.c --- apps/plugins/flipit.c 18 Jan 2006 11:09:05 -0000 1.16 +++ apps/plugins/flipit.c 22 Feb 2006 21:17:18 -0000 @@ -52,7 +52,7 @@ #define FLIPIT_TOGGLE_PRE BUTTON_SELECT #define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL) -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) #define FLIPIT_UP BUTTON_SCROLL_FWD #define FLIPIT_DOWN BUTTON_SCROLL_BACK Index: apps/plugins/logo.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/logo.c,v retrieving revision 1.21 diff -u -r1.21 logo.c --- apps/plugins/logo.c 19 Jan 2006 12:44:46 -0000 1.21 +++ apps/plugins/logo.c 22 Feb 2006 21:17:18 -0000 @@ -183,7 +183,7 @@ #define LP_INC_X BUTTON_RIGHT #define LP_DEC_Y (BUTTON_ON | BUTTON_LEFT) #define LP_INC_Y (BUTTON_ON | BUTTON_RIGHT) -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define LP_QUIT BUTTON_MENU #define LP_DEC_X BUTTON_LEFT #define LP_INC_X BUTTON_RIGHT Index: apps/plugins/mandelbrot.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/mandelbrot.c,v retrieving revision 1.25 diff -u -r1.25 mandelbrot.c --- apps/plugins/mandelbrot.c 5 Feb 2006 12:59:07 -0000 1.25 +++ apps/plugins/mandelbrot.c 22 Feb 2006 21:17:18 -0000 @@ -66,7 +66,7 @@ #define MANDELBROT_MAXITER_DEC (BUTTON_ON | BUTTON_LEFT) #define MANDELBROT_RESET BUTTON_REC -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif CONFIG_KEYPAD == IPOD_4G_PAD||(CONFIG_KEYPAD == IPOD_3G_PAD) #define MANDELBROT_QUIT (BUTTON_SELECT | BUTTON_MENU) #define MANDELBROT_UP BUTTON_MENU #define MANDELBROT_DOWN BUTTON_PLAY Index: apps/plugins/metronome.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/metronome.c,v retrieving revision 1.24 diff -u -r1.24 metronome.c --- apps/plugins/metronome.c 7 Feb 2006 20:38:55 -0000 1.24 +++ apps/plugins/metronome.c 22 Feb 2006 21:17:19 -0000 @@ -58,7 +58,7 @@ #define METRONOME_MSG_START "press play" #define METRONOME_MSG_STOP "press pause" -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define METRONOME_QUIT BUTTON_MENU #define METRONOME_PLAYPAUSE BUTTON_PLAY #define METRONOME_VOL_UP BUTTON_SCROLL_FWD Index: apps/plugins/minesweeper.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/minesweeper.c,v retrieving revision 1.19 diff -u -r1.19 minesweeper.c --- apps/plugins/minesweeper.c 18 Jan 2006 11:09:05 -0000 1.19 +++ apps/plugins/minesweeper.c 22 Feb 2006 21:17:19 -0000 @@ -71,7 +71,7 @@ #define MINESWP_DISCOVER BUTTON_ON #define MINESWP_INFO BUTTON_MODE -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define MINESWP_UP BUTTON_SCROLL_BACK #define MINESWP_DOWN BUTTON_SCROLL_FWD #define MINESWP_QUIT BUTTON_MENU Index: apps/plugins/mosaique.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/mosaique.c,v retrieving revision 1.13 diff -u -r1.13 mosaique.c --- apps/plugins/mosaique.c 18 Jan 2006 11:09:05 -0000 1.13 +++ apps/plugins/mosaique.c 22 Feb 2006 21:17:19 -0000 @@ -53,7 +53,7 @@ #define MOSAIQUE_SPEED BUTTON_MODE #define MOSAIQUE_RESTART BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define MOSAIQUE_QUIT BUTTON_MENU #define MOSAIQUE_SPEED BUTTON_SELECT #define MOSAIQUE_RESTART BUTTON_PLAY Index: apps/plugins/mp3_encoder.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/mp3_encoder.c,v retrieving revision 1.7 diff -u -r1.7 mp3_encoder.c --- apps/plugins/mp3_encoder.c 18 Jan 2006 11:09:05 -0000 1.7 +++ apps/plugins/mp3_encoder.c 22 Feb 2006 21:17:20 -0000 @@ -1880,7 +1880,7 @@ #define MP3ENC_NEXT BUTTON_DOWN #define MP3ENC_DONE BUTTON_OFF #define MP3ENC_SELECT BUTTON_SELECT -#elif CONFIG_KEYPAD == IPOD_4G_PAD +#elif CONFIG_KEYPAD == IPOD_4G_PAD||(CONFIG_KEYPAD == IPOD_3G_PAD) #define MP3ENC_PREV BUTTON_SCROLL_BACK #define MP3ENC_NEXT BUTTON_SCROLL_FWD #define MP3ENC_DONE BUTTON_MENU Index: apps/plugins/plugin.lds =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/plugin.lds,v retrieving revision 1.32 diff -u -r1.32 plugin.lds --- apps/plugins/plugin.lds 12 Feb 2006 23:16:05 -0000 1.32 +++ apps/plugins/plugin.lds 22 Feb 2006 21:17:20 -0000 @@ -73,7 +73,7 @@ .text : { *(.text*) -#if (CONFIG_CPU==PP5020) || (CONFIG_CPU==PNX0101) +#if (CONFIG_CPU==PP5020) || (CONFIG_CPU==PNX0101) || (CONFIG_CPU==PP5002) *(.glue_7) *(.glue_7t) #endif Index: apps/plugins/pong.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/pong.c,v retrieving revision 1.15 diff -u -r1.15 pong.c --- apps/plugins/pong.c 18 Jan 2006 11:09:05 -0000 1.15 +++ apps/plugins/pong.c 22 Feb 2006 21:17:20 -0000 @@ -58,7 +58,7 @@ #define PONG_RIGHT_UP BUTTON_ON #define PONG_RIGHT_DOWN BUTTON_MODE -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define PONG_QUIT BUTTON_SELECT #define PONG_LEFT_UP BUTTON_MENU #define PONG_LEFT_DOWN BUTTON_LEFT Index: apps/plugins/rockblox.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/rockblox.c,v retrieving revision 1.7 diff -u -r1.7 rockblox.c --- apps/plugins/rockblox.c 18 Jan 2006 11:09:05 -0000 1.7 +++ apps/plugins/rockblox.c 22 Feb 2006 21:17:20 -0000 @@ -24,7 +24,7 @@ PLUGIN_HEADER -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define ROCKBLOX_OFF BUTTON_MENU #define ROCKBLOX_UP BUTTON_SCROLL_BACK #define ROCKBLOX_DOWN BUTTON_SCROLL_FWD Index: apps/plugins/sliding_puzzle.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/sliding_puzzle.c,v retrieving revision 1.17 diff -u -r1.17 sliding_puzzle.c --- apps/plugins/sliding_puzzle.c 18 Jan 2006 11:09:05 -0000 1.17 +++ apps/plugins/sliding_puzzle.c 22 Feb 2006 21:17:20 -0000 @@ -45,7 +45,7 @@ #define PUZZLE_SHUFFLE BUTTON_SELECT #define PUZZLE_PICTURE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define PUZZLE_QUIT BUTTON_MENU #define PUZZLE_UP BUTTON_SCROLL_BACK #define PUZZLE_DOWN BUTTON_SCROLL_FWD Index: apps/plugins/snake.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/snake.c,v retrieving revision 1.12 diff -u -r1.12 snake.c --- apps/plugins/snake.c 18 Jan 2006 11:09:05 -0000 1.12 +++ apps/plugins/snake.c 22 Feb 2006 21:17:20 -0000 @@ -55,7 +55,7 @@ #define SNAKE_DOWN BUTTON_DOWN #define SNAKE_PLAYPAUSE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SNAKE_QUIT (BUTTON_SELECT|BUTTON_MENU) #define SNAKE_UP BUTTON_MENU #define SNAKE_DOWN BUTTON_PLAY Index: apps/plugins/snake2.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/snake2.c,v retrieving revision 1.22 diff -u -r1.22 snake2.c --- apps/plugins/snake2.c 23 Jan 2006 21:14:55 -0000 1.22 +++ apps/plugins/snake2.c 22 Feb 2006 21:17:21 -0000 @@ -93,7 +93,7 @@ #define SNAKE2_SELECT_TYPE BUTTON_MODE #define SNAKE2_PLAYPAUSE BUTTON_ON -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SNAKE2_UP BUTTON_MENU #define SNAKE2_DOWN BUTTON_PLAY #define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) Index: apps/plugins/snow.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/snow.c,v retrieving revision 1.17 diff -u -r1.17 snow.c --- apps/plugins/snow.c 18 Jan 2006 11:09:05 -0000 1.17 +++ apps/plugins/snow.c 22 Feb 2006 21:17:21 -0000 @@ -36,7 +36,7 @@ /* variable button definitions */ #if CONFIG_KEYPAD == PLAYER_PAD #define SNOW_QUIT BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SNOW_QUIT BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define SNOW_QUIT BUTTON_PLAY Index: apps/plugins/sokoban.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/sokoban.c,v retrieving revision 1.20 diff -u -r1.20 sokoban.c --- apps/plugins/sokoban.c 19 Jan 2006 07:42:57 -0000 1.20 +++ apps/plugins/sokoban.c 22 Feb 2006 21:17:21 -0000 @@ -66,7 +66,7 @@ #define SOKOBAN_LEVEL_DOWN BUTTON_REC #define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SOKOBAN_UP BUTTON_MENU #define SOKOBAN_DOWN BUTTON_PLAY #define SOKOBAN_QUIT (BUTTON_SELECT | BUTTON_MENU) Index: apps/plugins/solitaire.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/solitaire.c,v retrieving revision 1.26 diff -u -r1.26 solitaire.c --- apps/plugins/solitaire.c 5 Feb 2006 01:58:09 -0000 1.26 +++ apps/plugins/solitaire.c 22 Feb 2006 21:17:22 -0000 @@ -109,7 +109,7 @@ #define SOL_OPT BUTTON_ON #define SOL_REM BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SOL_QUIT (BUTTON_SELECT | BUTTON_MENU) #define SOL_UP BUTTON_MENU #define SOL_DOWN BUTTON_PLAY @@ -168,7 +168,7 @@ #define HELP_SOL_CUR2STACK "SELECT..: Put the card under the cursor on one of the 4 final stacks." #define HELP_SOL_REM2STACK "PLAY+RIGHT: Put the card on top of the remains' stack on one of the 4 final stacks." -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) ||(CONFIG_KEYPAD == IPOD_3G_PAD) #define HELP_SOL_MOVE "SELECT: Select cards, Move cards, reveal hidden cards ..." #define HELP_SOL_DRAW "SELECT+PLAY: Un-select a card if it was selected. Else, draw 3 new cards out of the remains' stack." #define HELP_SOL_REM2CUR "SELECT+LEFT: Put the card on top of the remains' stack on top of the cursor." Index: apps/plugins/star.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/star.c,v retrieving revision 1.14 diff -u -r1.14 star.c --- apps/plugins/star.c 18 Jan 2006 11:09:05 -0000 1.14 +++ apps/plugins/star.c 22 Feb 2006 21:17:22 -0000 @@ -98,7 +98,7 @@ #define STAR_LEVEL_REPEAT (BUTTON_MODE | BUTTON_UP) #define STAR_MENU_RUN BUTTON_RIGHT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define STAR_QUIT (BUTTON_SELECT | BUTTON_MENU) #define STAR_UP BUTTON_SCROLL_BACK Index: apps/plugins/starfield.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/starfield.c,v retrieving revision 1.9 diff -u -r1.9 starfield.c --- apps/plugins/starfield.c 18 Jan 2006 11:09:05 -0000 1.9 +++ apps/plugins/starfield.c 22 Feb 2006 21:17:22 -0000 @@ -26,7 +26,7 @@ static struct plugin_api* rb; /* global api struct pointer */ /* Key assignement */ -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define STARFIELD_QUIT BUTTON_MENU #define STARFIELD_INCREASE_ZMOVE BUTTON_SCROLL_FWD #define STARFIELD_DECREASE_ZMOVE BUTTON_SCROLL_BACK Index: apps/plugins/stats.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/stats.c,v retrieving revision 1.7 diff -u -r1.7 stats.c --- apps/plugins/stats.c 18 Jan 2006 11:09:05 -0000 1.7 +++ apps/plugins/stats.c 22 Feb 2006 21:17:22 -0000 @@ -30,7 +30,7 @@ #if CONFIG_KEYPAD == PLAYER_PAD #define STATS_STOP BUTTON_STOP -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define STATS_STOP BUTTON_MENU #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #define STATS_STOP BUTTON_PLAY Index: apps/plugins/stopwatch.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/stopwatch.c,v retrieving revision 1.15 diff -u -r1.15 stopwatch.c --- apps/plugins/stopwatch.c 18 Jan 2006 11:09:05 -0000 1.15 +++ apps/plugins/stopwatch.c 22 Feb 2006 21:17:22 -0000 @@ -63,7 +63,7 @@ #define STOPWATCH_LAP_TIMER BUTTON_ON #define STOPWATCH_SCROLL_UP BUTTON_RIGHT #define STOPWATCH_SCROLL_DOWN BUTTON_LEFT -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define STOPWATCH_QUIT BUTTON_MENU #define STOPWATCH_START_STOP BUTTON_SELECT #define STOPWATCH_RESET_TIMER BUTTON_LEFT Index: apps/plugins/sudoku.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/sudoku.c,v retrieving revision 1.19 diff -u -r1.19 sudoku.c --- apps/plugins/sudoku.c 24 Jan 2006 23:24:58 -0000 1.19 +++ apps/plugins/sudoku.c 22 Feb 2006 21:17:22 -0000 @@ -95,7 +95,7 @@ #define SUDOKU_BUTTON_MENU BUTTON_MODE #define SUDOKU_BUTTON_POSSIBLE BUTTON_REC -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define SUDOKU_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) #define SUDOKU_BUTTON_UP BUTTON_SCROLL_BACK #define SUDOKU_BUTTON_DOWN BUTTON_SCROLL_FWD Index: apps/plugins/viewer.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/viewer.c,v retrieving revision 1.25 diff -u -r1.25 viewer.c --- apps/plugins/viewer.c 16 Feb 2006 01:18:21 -0000 1.25 +++ apps/plugins/viewer.c 22 Feb 2006 21:17:23 -0000 @@ -118,7 +118,7 @@ #define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT) /* iPods with the 4G pad */ -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define VIEWER_QUIT BUTTON_MENU #define VIEWER_PAGE_UP BUTTON_SCROLL_BACK #define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD Index: apps/plugins/databox/databox.c =================================================================== RCS file: /cvsroot/rockbox/apps/plugins/databox/databox.c,v retrieving revision 1.18 diff -u -r1.18 databox.c --- apps/plugins/databox/databox.c 18 Jan 2006 11:09:05 -0000 1.18 +++ apps/plugins/databox/databox.c 22 Feb 2006 21:17:23 -0000 @@ -31,7 +31,7 @@ #elif CONFIG_KEYPAD == ONDIO_PAD #define DBX_SELECT BUTTON_MENU #define DBX_STOP BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) #define DBX_SELECT BUTTON_SELECT #define DBX_STOP BUTTON_MENU #elif CONFIG_KEYPAD == PLAYER_PAD Index: bootloader/ipod.c =================================================================== RCS file: /cvsroot/rockbox/bootloader/ipod.c,v retrieving revision 1.13 diff -u -r1.13 ipod.c --- bootloader/ipod.c 21 Feb 2006 21:13:03 -0000 1.13 +++ bootloader/ipod.c 22 Feb 2006 21:17:23 -0000 @@ -425,6 +425,7 @@ "mov pc, r0 \n" ); + /* We don't get here, but keep the compiler happy. */ return (void*)0; } Index: firmware/backlight.c =================================================================== RCS file: /cvsroot/rockbox/firmware/backlight.c,v retrieving revision 1.73 diff -u -r1.73 backlight.c --- firmware/backlight.c 21 Feb 2006 15:01:24 -0000 1.73 +++ firmware/backlight.c 22 Feb 2006 21:17:23 -0000 @@ -34,7 +34,7 @@ #include "pcf50606.h" /* iRiver brightness */ #endif -#if CONFIG_BACKLIGHT == BL_IRIVER_H300 +#if (CONFIG_BACKLIGHT == BL_IRIVER_H300) || (CONFIG_BACKLIGHT == BL_IPOD3G) #include "lcd.h" /* for lcd_enable() */ #endif #ifdef HAVE_REMOTE_LCD Index: firmware/pcm_playback.c =================================================================== RCS file: /cvsroot/rockbox/firmware/pcm_playback.c,v retrieving revision 1.96 diff -u -r1.96 pcm_playback.c --- firmware/pcm_playback.c 20 Feb 2006 20:23:21 -0000 1.96 +++ firmware/pcm_playback.c 22 Feb 2006 21:17:24 -0000 @@ -626,6 +626,181 @@ dma_stop(); } + +#elif defined(HAVE_WM8731L) + +/* We need to unify this code with the uda1380 code as much as possible, but + we will keep it separate during early development. +*/ + +static bool pcm_playing; +static bool pcm_paused; +static int pcm_freq = 0x6; /* 44.1 is default */ + + +/* the registered callback function to ask for more mp3 data */ +static void (*callback_for_more)(unsigned char**, long*) = NULL; + +static unsigned char *next_start IBSS_ATTR; +static long next_size IBSS_ATTR; + +void fiq(void) ICODE_ATTR; +void fiq(void) +{ + /* Clear interrupt */ + IISCONFIG &= ~0x2; + + if ((next_size==0) && (callback_for_more)) { + callback_for_more((unsigned char **)&next_start, (long *)&next_size); + } + + while (next_size > 0) { + if (((IISFIFO_CFG & 0x7800000) >> 23) < 2) { + /* Enable interrupt */ + IISFIFO_CFG |= (1<<9); + return; + } + + IISFIFO_WR = (*(next_start++))<<16; + IISFIFO_WR = (*(next_start++))<<16; + next_size-=4; + + if ((next_size==0) && (callback_for_more)) { + callback_for_more((unsigned char **)&next_start, (long *)&next_size); + } + } +} +/* Set up the DMA transfer that kicks in when the audio FIFO gets empty */ +static void dma_start(const void *addr, long size) +{ + pcm_playing = true; + + addr = (void *)((unsigned long)addr & ~3); /* Align data */ + size &= ~3; /* Size must be multiple of 4 */ + + /* Disable playback for now */ + pcm_playing = false; + return; + +/* This is the uda1380 code */ +#if 0 + /* Reset the audio FIFO */ + + /* Set up DMA transfer */ + SAR0 = ((unsigned long)addr); /* Source address */ + DAR0 = (unsigned long)&PDOR3; /* Destination address */ + BCR0 = size; /* Bytes to transfer */ + + /* Enable the FIFO and force one write to it */ + IIS2CONFIG = IIS_DEFPARM(pcm_freq); + + DCR0 = DMA_INT | DMA_EEXT | DMA_CS | DMA_SINC | DMA_START; +#endif +} + +/* Stops the DMA transfer and interrupt */ +static void dma_stop(void) +{ + pcm_playing = false; + +#if 0 +/* This is the uda1380 code */ + DCR0 = 0; + DSR0 = 1; + /* Reset the FIFO */ + IIS2CONFIG = IIS_RESET | IIS_DEFPARM(pcm_freq); +#endif + next_start = NULL; + next_size = 0; + pcm_paused = false; +} + + +void pcm_init(void) +{ + pcm_playing = false; + pcm_paused = false; + + /* Initialize default register values. */ + wm8731l_init(); + + /* The uda1380 needs a sleep(HZ) here - do we need one? */ + + /* Power on */ + wm8731l_enable_output(true); + + /* Unmute the master channel (DAC should be at zero point now). */ + wm8731l_mute(false); + + /* Call dma_stop to initialize everything. */ + dma_stop(); +} + +void pcm_set_frequency(unsigned int frequency) +{ + (void)frequency; + pcm_freq=frequency; +} + +void pcm_mute(bool mute) +{ + (void)mute; +} + +/* the registered callback function to ask for more mp3 data */ + +void pcm_play_data(void (*get_more)(unsigned char** start, size_t* size), + unsigned char* start, size_t size) +{ + + + callback_for_more = get_more; + + get_more((unsigned char **)&start, (long *)size); + get_more(&next_start, &next_size); + + dma_start(start, size); +} + +void pcm_play_stop(void) +{ + if (pcm_playing) { + dma_stop(); + } +} + +void pcm_play_pause(bool play) +{ + if(pcm_paused && play && next_size) + { + logf("unpause"); + /* We need to enable DMA here */ + } + else if(!pcm_paused && !play) + { + logf("pause"); + /* We need to disable DMA here */ + } + pcm_paused = !play; +} + +bool pcm_is_paused(void) +{ + return pcm_paused; +} + +bool pcm_is_playing(void) +{ + return pcm_playing; +} + + +size_t pcm_get_bytes_waiting(void) +{ + return 0; +} + + #elif CONFIG_CPU == PNX0101 /* TODO: Implement for iFP7xx Index: firmware/usb.c =================================================================== RCS file: /cvsroot/rockbox/firmware/usb.c,v retrieving revision 1.85 diff -u -r1.85 usb.c --- firmware/usb.c 21 Feb 2006 15:01:24 -0000 1.85 +++ firmware/usb.c 22 Feb 2006 21:17:24 -0000 @@ -68,7 +68,7 @@ #elif CONFIG_KEYPAD == ONDIO_PAD #define USBPOWER_BUTTON BUTTON_MENU #define USBPOWER_BTN_IGNORE BUTTON_OFF -#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) #define USBPOWER_BUTTON BUTTON_MENU #define USBPOWER_BTN_IGNORE BUTTON_PLAY #elif CONFIG_KEYPAD == IRIVER_H300_PAD @@ -166,7 +166,7 @@ #endif } -#elif defined(USB_IPODSTYLE) +#elif defined(USB_IPODSTYLE) /* For the ipod, we can only do one thing with USB mode - reboot into Apple's flash-based disk-mode. This does not return. */ if (on) @@ -181,6 +181,7 @@ memcpy(storage_ptr, "diskmode\0\0hotstuff\0\0\1", 21); DEV_RS |= 4; /* Reboot */ } + #elif defined(USB_ISP1582) /* TODO: Implement USB_ISP1582 */ (void) on; @@ -554,6 +555,7 @@ tick_add_task(usb_tick); #endif + } void usb_wait_for_disconnect(struct event_queue *q) @@ -642,4 +644,9 @@ return false; } +void usb_wait_for_disconnect(struct event_queue *q) +{ + (void*)q; +} + #endif /* USB_NONE or SIMULATOR */ Index: firmware/drivers/adc.c =================================================================== RCS file: /cvsroot/rockbox/firmware/drivers/adc.c,v retrieving revision 1.26 diff -u -r1.26 adc.c --- firmware/drivers/adc.c 17 Feb 2006 22:38:38 -0000 1.26 +++ firmware/drivers/adc.c 22 Feb 2006 21:17:24 -0000 @@ -282,7 +282,7 @@ sleep(2); /* Ensure valid readings when adc_init returns */ } -#elif CONFIG_CPU == PP5020 +#elif CONFIG_CPU == PP5020 || (CONFIG_CPU == PP5002) /* TODO: Implement adc.c */ Index: firmware/drivers/button.c =================================================================== RCS file: /cvsroot/rockbox/firmware/drivers/button.c,v retrieving revision 1.119 diff -u -r1.119 button.c --- firmware/drivers/button.c 20 Feb 2006 20:08:27 -0000 1.119 +++ firmware/drivers/button.c 22 Feb 2006 21:17:24 -0000 @@ -279,12 +279,13 @@ else { /* 'r' keypress */ wheel_keycode = BUTTON_SCROLL_FWD; + } break; default: /* only happens if we get out of sync */ break; - } - } + + } } if (wheel_keycode != BUTTON_NONE) queue_post(&button_queue, wheel_keycode, NULL); @@ -303,53 +304,53 @@ udelay(250); /* get source of interupts */ - source = inb(0xcf000040); - if (source) { + source = GPIOA_INT_STAT; + /* get current keypad status */ - state = inb(0xcf000030); - outb(~state, 0xcf000060); + state = GPIOA_INPUT_VAL; + GPIOA_INT_LEV = ~state; if (was_hold && source == 0x40 && state == 0xbf) { /* ack any active interrupts */ - outb(source, 0xcf000070); + GPIOA_INT_CLR = source; return BUTTON_NONE; } was_hold = 0; - if ( source & 0x20 ) { + if ((state & 0x20) == 0) { /* 3g hold switch is active low */ btn |= BUTTON_HOLD; was_hold = 1; /* hold switch on 3g causes all outputs to go low */ /* we shouldn't interpret these as key presses */ - goto done; + GPIOA_INT_CLR = source; + return BUTTON_NONE; } - if (source & 0x1) { + if ((state & 0x1) == 0) { btn |= BUTTON_RIGHT; } - if (source & 0x2) { + if ((state & 0x2) == 0) { btn |= BUTTON_SELECT; } - if (source & 0x4) { + if ((state & 0x4) == 0) { btn |= BUTTON_PLAY; } - if (source & 0x8) { + if ((state & 0x8) == 0) { btn |= BUTTON_LEFT; } - if (source & 0x10) { + if ((state & 0x10) == 0) { btn |= BUTTON_MENU; } if (source & 0xc0) { handle_scroll_wheel((state & 0xc0) >> 6, was_hold, 0); } - done: /* ack any active interrupts */ - outb(source, 0xcf000070); - } + GPIOA_INT_CLR = source; + return btn; } @@ -558,10 +559,9 @@ CPU_HI_INT_EN = I2C_MASK; #elif CONFIG_KEYPAD == IPOD_3G_PAD - outb(~inb(GPIOA_INPUT_VAL), GPIOA_INT_LEV); - outb(inb(GPIOA_INT_STAT), GPIOA_INT_CLR); - outb(0xff, GPIOA_INT_EN); - + GPIOA_INT_LEV = ~GPIOA_INPUT_VAL; + GPIOA_INT_CLR = GPIOA_INT_STAT; + GPIOA_INT_EN = 0xff; #endif /* CONFIG_KEYPAD */ queue_init(&button_queue); button_read(); @@ -576,7 +576,7 @@ #ifdef HAVE_LCD_BITMAP /* only bitmap displays can be flipped */ #if (CONFIG_KEYPAD != IPOD_3G_PAD) && (CONFIG_KEYPAD != IPOD_4G_PAD) -/* +/** * helper function to swap UP/DOWN, LEFT/RIGHT (and F1/F3 for Recorder) */ static int button_flip(int button) @@ -1035,10 +1035,13 @@ if (data & 0x01) btn |= BUTTON_ON; -#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) (void)data; /* The int_btn variable is set in the button interrupt handler */ btn = int_btn; +#elif(CONFIG_KEYPAD == IPOD_3G_PAD) + (void)data; + btn = ipod_3g_button_read(); #endif /* CONFIG_KEYPAD */ @@ -1058,7 +1061,7 @@ return retval; } -#if (CONFIG_KEYPAD == IPOD_4G_PAD) +#if (CONFIG_KEYPAD == IPOD_4G_PAD)||(CONFIG_KEYPAD == IPOD_3G_PAD) bool button_hold(void) { return (GPIOA_INPUT_VAL & 0x20)?false:true; Index: firmware/export/button.h =================================================================== RCS file: /cvsroot/rockbox/firmware/export/button.h,v retrieving revision 1.40 diff -u -r1.40 button.h --- firmware/export/button.h 22 Feb 2006 11:48:58 -0000 1.40 +++ firmware/export/button.h 22 Feb 2006 21:17:24 -0000 @@ -26,7 +26,8 @@ (CONFIG_KEYPAD == IRIVER_H300_PAD) #define HAS_BUTTON_HOLD #define HAS_REMOTE_BUTTON_HOLD -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ + (CONFIG_KEYPAD == IPOD_3G_PAD) #define HAS_BUTTON_HOLD #endif extern struct event_queue button_queue; Index: firmware/export/config-ipod3g.h =================================================================== RCS file: /cvsroot/rockbox/firmware/export/config-ipod3g.h,v retrieving revision 1.2 diff -u -r1.2 config-ipod3g.h --- firmware/export/config-ipod3g.h 9 Feb 2006 00:47:49 -0000 1.2 +++ firmware/export/config-ipod3g.h 22 Feb 2006 21:17:24 -0000 @@ -82,10 +82,8 @@ /* Offset ( in the firmware file's header ) to the real data */ #define FIRMWARE_OFFSET_FILE_DATA 8 -#define USB_IPODSTYLE +#define USB_NONE -/* define this if the unit can be powered or charged via USB */ -#define HAVE_USB_POWER /* Virtual LED (icon) */ #define CONFIG_LED LED_VIRTUAL Index: firmware/export/pp5002.h =================================================================== RCS file: /cvsroot/rockbox/firmware/export/pp5002.h,v retrieving revision 1.1 diff -u -r1.1 pp5002.h --- firmware/export/pp5002.h 5 Feb 2006 16:52:22 -0000 1.1 +++ firmware/export/pp5002.h 22 Feb 2006 21:17:24 -0000 @@ -21,38 +21,38 @@ /* All info gleaned and/or copied from the iPodLinux project. */ -#define GPIOA_ENABLE (*(volatile unsigned long *)(0xcf000000)) -#define GPIOB_ENABLE (*(volatile unsigned long *)(0xcf000004)) -#define GPIOC_ENABLE (*(volatile unsigned long *)(0xcf000008)) -#define GPIOD_ENABLE (*(volatile unsigned long *)(0xcf00000c)) -#define GPIOA_OUTPUT_EN (*(volatile unsigned long *)(0xcf000010)) -#define GPIOB_OUTPUT_EN (*(volatile unsigned long *)(0xcf000014)) -#define GPIOC_OUTPUT_EN (*(volatile unsigned long *)(0xcf000018)) -#define GPIOD_OUTPUT_EN (*(volatile unsigned long *)(0xcf00001c)) -#define GPIOA_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000020)) -#define GPIOB_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000024)) -#define GPIOC_OUTPUT_VAL (*(volatile unsigned long *)(0xcf000028)) -#define GPIOD_OUTPUT_VAL (*(volatile unsigned long *)(0xcf00002c)) -#define GPIOA_INPUT_VAL (*(volatile unsigned long *)(0xcf000030)) -#define GPIOB_INPUT_VAL (*(volatile unsigned long *)(0xcf000034)) -#define GPIOC_INPUT_VAL (*(volatile unsigned long *)(0xcf000038)) -#define GPIOD_INPUT_VAL (*(volatile unsigned long *)(0xcf00003c)) -#define GPIOA_INT_STAT (*(volatile unsigned long *)(0xcf000040)) -#define GPIOB_INT_STAT (*(volatile unsigned long *)(0xcf000044)) -#define GPIOC_INT_STAT (*(volatile unsigned long *)(0xcf000048)) -#define GPIOD_INT_STAT (*(volatile unsigned long *)(0xcf00004c)) -#define GPIOA_INT_EN (*(volatile unsigned long *)(0xcf000050)) -#define GPIOB_INT_EN (*(volatile unsigned long *)(0xcf000054)) -#define GPIOC_INT_EN (*(volatile unsigned long *)(0xcf000058)) -#define GPIOD_INT_EN (*(volatile unsigned long *)(0xcf00005c)) -#define GPIOA_INT_LEV (*(volatile unsigned long *)(0xcf000060)) -#define GPIOB_INT_LEV (*(volatile unsigned long *)(0xcf000064)) -#define GPIOC_INT_LEV (*(volatile unsigned long *)(0xcf000068)) -#define GPIOD_INT_LEV (*(volatile unsigned long *)(0xcf00006c)) -#define GPIOA_INT_CLR (*(volatile unsigned long *)(0xcf000070)) -#define GPIOB_INT_CLR (*(volatile unsigned long *)(0xcf000074)) -#define GPIOC_INT_CLR (*(volatile unsigned long *)(0xcf000078)) -#define GPIOD_INT_CLR (*(volatile unsigned long *)(0xcf00007c)) +#define GPIOA_ENABLE (*(volatile unsigned char *)(0xcf000000)) +#define GPIOB_ENABLE (*(volatile unsigned char *)(0xcf000004)) +#define GPIOC_ENABLE (*(volatile unsigned char *)(0xcf000008)) +#define GPIOD_ENABLE (*(volatile unsigned char *)(0xcf00000c)) +#define GPIOA_OUTPUT_EN (*(volatile unsigned char *)(0xcf000010)) +#define GPIOB_OUTPUT_EN (*(volatile unsigned char *)(0xcf000014)) +#define GPIOC_OUTPUT_EN (*(volatile unsigned char *)(0xcf000018)) +#define GPIOD_OUTPUT_EN (*(volatile unsigned char *)(0xcf00001c)) +#define GPIOA_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000020)) +#define GPIOB_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000024)) +#define GPIOC_OUTPUT_VAL (*(volatile unsigned char *)(0xcf000028)) +#define GPIOD_OUTPUT_VAL (*(volatile unsigned char *)(0xcf00002c)) +#define GPIOA_INPUT_VAL (*(volatile unsigned char *)(0xcf000030)) +#define GPIOB_INPUT_VAL (*(volatile unsigned char *)(0xcf000034)) +#define GPIOC_INPUT_VAL (*(volatile unsigned char *)(0xcf000038)) +#define GPIOD_INPUT_VAL (*(volatile unsigned char *)(0xcf00003c)) +#define GPIOA_INT_STAT (*(volatile unsigned char *)(0xcf000040)) +#define GPIOB_INT_STAT (*(volatile unsigned char *)(0xcf000044)) +#define GPIOC_INT_STAT (*(volatile unsigned char *)(0xcf000048)) +#define GPIOD_INT_STAT (*(volatile unsigned char *)(0xcf00004c)) +#define GPIOA_INT_EN (*(volatile unsigned char *)(0xcf000050)) +#define GPIOB_INT_EN (*(volatile unsigned char *)(0xcf000054)) +#define GPIOC_INT_EN (*(volatile unsigned char *)(0xcf000058)) +#define GPIOD_INT_EN (*(volatile unsigned char *)(0xcf00005c)) +#define GPIOA_INT_LEV (*(volatile unsigned char *)(0xcf000060)) +#define GPIOB_INT_LEV (*(volatile unsigned char *)(0xcf000064)) +#define GPIOC_INT_LEV (*(volatile unsigned char *)(0xcf000068)) +#define GPIOD_INT_LEV (*(volatile unsigned char *)(0xcf00006c)) +#define GPIOA_INT_CLR (*(volatile unsigned char *)(0xcf000070)) +#define GPIOB_INT_CLR (*(volatile unsigned char *)(0xcf000074)) +#define GPIOC_INT_CLR (*(volatile unsigned char *)(0xcf000078)) +#define GPIOD_INT_CLR (*(volatile unsigned char *)(0xcf00007c)) #define DEV_RS (*(volatile unsigned long *)( 0xcf005030)) #define DEV_EN (*(volatile unsigned long *)( 0xcf005000))