From b09d3aec392538ca0934644ff6357c41aaa4c323 Mon Sep 17 00:00:00 2001 From: Marcin Bukat Date: Mon, 26 Apr 2010 21:40:00 +0000 Subject: Add MPIO HD200 port - changed files git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25724 a1c6a512-1295-4272-9138-f99709370657 --- apps/SOURCES | 2 ++ apps/debug_menu.c | 3 +++ apps/plugins/battery_bench.c | 6 +++++ apps/plugins/bitmaps/native/SOURCES | 19 ++++++++++++++++ apps/plugins/blackjack.c | 15 +++++++++++++ apps/plugins/bounce.c | 8 +++++++ apps/plugins/brickmania.c | 8 +++++++ apps/plugins/calculator.c | 7 ++++++ apps/plugins/calendar.c | 10 +++++++++ apps/plugins/chessbox/chessbox_pgn.h | 10 +++++++++ apps/plugins/chessclock.c | 10 +++++++++ apps/plugins/chip8.c | 9 ++++++++ apps/plugins/chopper.c | 5 +++++ apps/plugins/cube.c | 10 +++++++++ apps/plugins/dict.c | 2 ++ apps/plugins/doom/i_video.c | 10 +++++++++ apps/plugins/fft/fft.c | 8 +++++++ apps/plugins/fireworks.c | 4 ++++ apps/plugins/flipit.c | 12 ++++++++++ apps/plugins/fractals/fractal.h | 12 ++++++++++ apps/plugins/goban/goban.h | 10 +++++++++ apps/plugins/imageviewer/imageviewer.h | 12 ++++++++++ apps/plugins/jewels.c | 10 +++++++++ apps/plugins/lib/pluginlib_actions.c | 32 ++++++++++++++++++++++++++ apps/plugins/logo.c | 7 ++++++ apps/plugins/matrix.c | 6 +++++ apps/plugins/midi/midiplay.c | 8 +++++++ apps/plugins/minesweeper.c | 10 +++++++++ apps/plugins/mosaique.c | 5 +++++ apps/plugins/mp3_encoder.c | 6 +++++ apps/plugins/mpegplayer/mpeg_settings.c | 8 +++++++ apps/plugins/mpegplayer/mpegplayer.c | 9 ++++++++ apps/plugins/oscilloscope.c | 11 +++++++++ apps/plugins/pegbox.c | 19 ++++++++++++++++ apps/plugins/plasma.c | 6 +++++ apps/plugins/pong.c | 7 ++++++ apps/plugins/reversi/reversi-gui.h | 10 +++++++++ apps/plugins/rockblox.c | 10 +++++++++ apps/plugins/rockblox1d.c | 4 ++++ apps/plugins/sliding_puzzle.c | 9 ++++++++ apps/plugins/snake.c | 8 +++++++ apps/plugins/snake2.c | 9 ++++++++ apps/plugins/snow.c | 3 +++ apps/plugins/sokoban.c | 15 +++++++++++++ apps/plugins/solitaire.c | 18 +++++++++++++++ apps/plugins/spacerocks.c | 10 +++++++++ apps/plugins/star.c | 18 +++++++++++++++ apps/plugins/starfield.c | 8 +++++++ apps/plugins/stats.c | 3 +++ apps/plugins/stopwatch.c | 8 +++++++ apps/plugins/sudoku/sudoku.h | 9 ++++++++ apps/plugins/test_fps.c | 2 ++ apps/plugins/test_grey.c | 8 +++++++ apps/plugins/test_greylib_bitmap_scale.c | 2 ++ apps/plugins/test_scanrate.c | 7 ++++++ apps/plugins/viewer.c | 10 +++++++++ apps/plugins/vu_meter.c | 11 +++++++++ apps/plugins/wormlet.c | 10 +++++++++ apps/plugins/xobox.c | 9 ++++++++ apps/plugins/zxbox/keymaps.h | 9 ++++++++ apps/plugins/zxbox/zxbox_keyb.c | 9 ++++++++ bootloader/SOURCES | 2 ++ firmware/SOURCES | 24 +++++++++++++++++++- firmware/drivers/audio/wm8751.c | 25 +++++++++++++++++++-- firmware/export/audiohw.h | 2 +- firmware/export/config.h | 3 +++ firmware/export/wm8751.h | 9 ++++++++ firmware/sound.c | 11 ++++----- firmware/target/coldfire/crt0.S | 19 +++++++++++++++- firmware/target/coldfire/i2c-coldfire.c | 4 ++++ firmware/target/coldfire/pcm-coldfire.c | 30 +++++++++++++++++++++++++ firmware/target/coldfire/system-coldfire.c | 5 +++++ tools/configure | 28 ++++++++++++++++++++++- tools/scramble.c | 4 +++- uisimulator/sdl/button.c | 36 ++++++++++++++++++++++++++++++ uisimulator/sdl/uisdl.h | 8 +++++++ 76 files changed, 753 insertions(+), 12 deletions(-) diff --git a/apps/SOURCES b/apps/SOURCES index 66f2a7da51..ef81f0cfdd 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -279,4 +279,6 @@ keymaps/keymap-yh8xx_yh9xx.c keymaps/keymap-mini2440.c #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD keymaps/keymap-vibe500.c +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +keymaps/keymap-mpio-hd200.c #endif diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 5b413598fc..867ac1fccd 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -1000,6 +1000,9 @@ static bool dbg_spdif(void) #elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) # define DEBUG_CANCEL BUTTON_CANCEL +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) +# define DEBUG_CANCEL BUTTON_REC + #endif /* key definitions */ /* Test code!!! */ diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index e4e399ff7b..5c04892d61 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c @@ -210,6 +210,12 @@ PLUGIN_HEADER #define BATTERY_ON_TXT "PLAY - start" #define BATTERY_OFF_TXT "REC" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define BATTERY_ON BUTTON_PLAY +#define BATTERY_OFF BUTTON_REC +#define BATTERY_ON_TXT "PLAY - start" +#define BATTERY_OFF_TXT "REC" + #else #error No keymap defined! #endif diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES index 506ecc9451..6d3257608f 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -98,6 +98,9 @@ brickmania_bricks.160x128x2.bmp #elif LCD_WIDTH >= 138 brickmania_ball.5x5x2.bmp brickmania_bricks.138x110x2.bmp +#elif LCD_WIDTH >= 128 +brickmania_ball.4x4x2.bmp +brickmania_bricks.128x128x2.bmp #else /* M3 currently */ brickmania_ball.4x4x2.bmp brickmania_bricks.128x96x2.bmp @@ -251,6 +254,14 @@ clock_segments.132x80x16.bmp clock_smallsegments.132x80x16.bmp clock_logo.132x80x16.bmp clock_messages.132x80x16.bmp +#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2) +clock_binary.128x128x2.bmp +clock_digits.128x128x2.bmp +clock_smalldigits.128x128x2.bmp +clock_segments.128x128x2.bmp +clock_smallsegments.128x128x2.bmp +clock_logo.128x128x2.bmp +clock_messages.128x128x2.bmp #elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1) clock_binary.112x64x1.bmp clock_digits.112x64x1.bmp @@ -494,6 +505,8 @@ rockblox_background.128x96x2.bmp rockblox_background.160x128x2.bmp #elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) rockblox_background.138x110x2.bmp +#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) +rockblox_background.128x128x2.bmp #elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 96) rockblox_background.128x96x2.bmp #endif @@ -698,6 +711,10 @@ sudoku_inverse.112x64x1.bmp sudoku_start.128x96x2.bmp sudoku_normal.128x96x2.bmp sudoku_inverse.128x96x2.bmp +#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2) +sudoku_start.128x128x2.bmp +sudoku_normal.128x128x2.bmp +sudoku_inverse.128x128x2.bmp #elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH >= 2) sudoku_start.138x110x2.bmp sudoku_normal.138x110x2.bmp @@ -861,6 +878,8 @@ pitch_notes.160x128x2.bmp pitch_notes.160x128x2.bmp #elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16) pitch_notes.132x80x16.bmp +#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 2) +pitch_notes.128x128x2.bmp #elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 96) && (LCD_DEPTH >= 2) pitch_notes.128x96x2.bmp #elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 64) diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index a8f92b9f5a..1af26f290f 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c @@ -404,6 +404,21 @@ enum { #define BJACK_RIGHT BUTTON_NEXT #define BJACK_LEFT BUTTON_PREV +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define BJACK_SELECT_NAME "SELECT" +#define BJACK_STAY_NAME "RIGHT" +#define BJACK_RESUME_NAME "PLAY" +#define BJACK_QUIT_NAME "REC+PLAY" +#define BJACK_DOUBLE_NAME "LEFT" +#define BJACK_SELECT BUTTON_SELECT +#define BJACK_QUIT (BUTTON_REC|BUTTON_PLAY) +#define BJACK_STAY BUTTON_VOL_UP +#define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN +#define BJACK_UP BUTTON_PREV +#define BJACK_DOWN BUTTON_NEXT +#define BJACK_RIGHT BUTTON_VOL_UP +#define BJACK_LEFT BUTTON_VOL_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index a7f8e1847d..f193818850 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c @@ -204,6 +204,14 @@ PLUGIN_HEADER #define BOUNCE_QUIT BUTTON_REC #define BOUNCE_MODE BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define BOUNCE_LEFT BUTTON_VOL_DOWN +#define BOUNCE_RIGHT BUTTON_VOL_UP +#define BOUNCE_UP BUTTON_PREV +#define BOUNCE_DOWN BUTTON_NEXT +#define BOUNCE_QUIT (BUTTON_REC | BUTTON_PLAY) +#define BOUNCE_MODE BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index bc446df179..60e8f3820b 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -243,6 +243,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD #define UP BUTTON_UP #define DOWN BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define QUIT (BUTTON_REC|BUTTON_PLAY) +#define LEFT BUTTON_VOL_DOWN +#define RIGHT BUTTON_VOL_UP +#define SELECT BUTTON_SELECT +#define UP BUTTON_PREV +#define DOWN BUTTON_NEXT + #else #error No keymap defined! #endif diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 4e40625356..942f031890 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -374,6 +374,13 @@ PLUGIN_HEADER #define CALCULATOR_CALC BUTTON_PLAY #define CALCULATOR_CLEAR BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define CALCULATOR_LEFT BUTTON_PREV +#define CALCULATOR_RIGHT BUTTON_NEXT +#define CALCULATOR_QUIT (BUTTON_REC|BUTTON_PLAY) +#define CALCULATOR_INPUT BUTTON_SELECT +#define CALCULATOR_CALC BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index 9327ac6aa2..d6a1a9a4ac 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c @@ -258,6 +258,16 @@ PLUGIN_HEADER #define CALENDAR_NEXT_MONTH BUTTON_PLAY #define CALENDAR_PREV_MONTH BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY) +#define CALENDAR_SELECT BUTTON_SELECT +#define CALENDAR_NEXT_WEEK BUTTON_NEXT +#define CALENDAR_PREV_WEEK BUTTON_PREV +#define CALENDAR_NEXT_DAY BUTTON_VOL_UP +#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN +#define CALENDAR_NEXT_MONTH BUTTON_PLAY +#define CALENDAR_PREV_MONTH BUTTON_REC + #else #error "No keypad setting." #endif diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h index 64cf3a5383..ee28a4fd55 100644 --- a/apps/plugins/chessbox/chessbox_pgn.h +++ b/apps/plugins/chessbox/chessbox_pgn.h @@ -366,6 +366,16 @@ #define CB_LEVEL BUTTON_CANCEL #define CB_MENU BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define CB_SELECT BUTTON_SELECT +#define CB_UP BUTTON_PREV +#define CB_DOWN BUTTON_NEXT +#define CB_LEFT BUTTON_VOL_DOWN +#define CB_RIGHT BUTTON_VOL_UP +#define CB_PLAY BUTTON_PLAY +#define CB_LEVEL BUTTON_REC +#define CB_MENU (BUTTON_SELECT | BUTTON_REPEAT) + #else #error No keymap defined! #endif diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index f0a63f63dc..3afa705bf1 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c @@ -276,6 +276,16 @@ PLUGIN_HEADER #define CHC_SETTINGS_OK BUTTON_OK #define CHC_SETTINGS_CANCEL BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define CHC_QUIT (BUTTON_REC|BUTTON_PLAY) +#define CHC_STARTSTOP BUTTON_PLAY +#define CHC_RESET BUTTON_PREV +#define CHC_MENU BUTTON_SELECT +#define CHC_SETTINGS_INC BUTTON_VOL_UP +#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN +#define CHC_SETTINGS_OK BUTTON_SELECT +#define CHC_SETTINGS_CANCEL BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index 4aa19125f2..edc3bf0bc1 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -1136,6 +1136,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define CHIP8_KEY6 BUTTON_NEXT #define CHIP8_KEY8 BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define CHIP8_OFF (BUTTON_REC|BUTTON_PLAY) +#define CHIP8_KEY2 BUTTON_PREV +#define CHIP8_KEY4 BUTTON_NEXT +#define CHIP8_KEY5 BUTTON_PLAY +#define CHIP8_KEY6 BUTTON_VOL_DOWN +#define CHIP8_KEY8 BUTTON_VOL_UP + #else #error No keymap defined! #endif diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c index 1217ea75ac..67cb9ee760 100644 --- a/apps/plugins/chopper.c +++ b/apps/plugins/chopper.c @@ -157,6 +157,11 @@ CONFIG_KEYPAD == MROBE500_PAD #define ACTION2 BUTTON_UP #define ACTIONTEXT "PLAY" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define QUIT (BUTTON_REC|BUTTON_PLAY) +#define ACTION BUTTON_SELECT +#define ACTIONTEXT "SELECT" + #else #error No keymap defined! #endif diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 014bcfcb79..5c6f9934eb 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -274,6 +274,16 @@ PLUGIN_HEADER #define CUBE_PAUSE BUTTON_PLAY #define CUBE_HIGHSPEED BUTTON_OK +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define CUBE_QUIT (BUTTON_REC | BUTTON_PLAY) +#define CUBE_NEXT BUTTON_NEXT +#define CUBE_PREV BUTTON_PREV +#define CUBE_INC BUTTON_VOL_UP +#define CUBE_DEC BUTTON_VOL_DOWN +#define CUBE_MODE BUTTON_REC +#define CUBE_PAUSE BUTTON_PLAY +#define CUBE_HIGHSPEED BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c index bb98df7501..cdd4c651de 100644 --- a/apps/plugins/dict.c +++ b/apps/plugins/dict.c @@ -150,6 +150,8 @@ long reverse (long N) { #define LP_QUIT BUTTON_LEFT #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD #define LP_QUIT BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define LP_QUIT (BUTTON_REC|BUTTON_PLAY) #else #define LP_QUIT BUTTON_OFF #endif diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index fbe8369100..dc0374f852 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c @@ -360,6 +360,16 @@ void I_ShutdownGraphics(void) #define DOOMBUTTON_ESC BUTTON_REC #define DOOMBUTTON_ENTER BUTTON_POWER #define DOOMBUTTON_WEAPON BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define DOOMBUTTON_UP BUTTON_PREV +#define DOOMBUTTON_DOWN BUTTON_NEXT +#define DOOMBUTTON_LEFT BUTTON_VOL_DOWN +#define DOOMBUTTON_RIGHT BUTTON_VOL_UP +#define DOOMBUTTON_SHOOT BUTTON_SELECT +#define DOOMBUTTON_OPEN (BUTTON_SELECT|BUTTON_PLAY) +#define DOOMBUTTON_ESC BUTTON_REC +#define DOOMBUTTON_ENTER BUTTON_PLAY +#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT) #else #error Keymap not defined! #endif diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c index e62c919f88..ae07179557 100644 --- a/apps/plugins/fft/fft.c +++ b/apps/plugins/fft/fft.c @@ -195,6 +195,14 @@ GREY_INFO_STRUCT # define FFT_SCALE BUTTON_PLAY # define FFT_QUIT BUTTON_REC +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +# define FFT_PREV_GRAPH BUTTON_PREV +# define FFT_NEXT_GRAPH BUTTON_NEXT +# define FFT_ORIENTATION BUTTON_REC +# define FFT_WINDOW BUTTON_SELECT +# define FFT_SCALE BUTTON_PLAY +# define FFT_QUIT (BUTTON_REC | BUTTON_PLAY) + #else #error No keymap defined! #endif diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c index 263c05792b..1ad5f9a2ca 100644 --- a/apps/plugins/fireworks.c +++ b/apps/plugins/fireworks.c @@ -114,6 +114,10 @@ PLUGIN_HEADER #define BTN_MENU BUTTON_MENU #define BTN_FIRE BUTTON_OK +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) +#define BTN_MENU BUTTON_REC +#define BTN_FIRE BUTTON_SELECT + #elif defined(HAVE_TOUCHSCREEN) /* This is a touchscreen target */ #else diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index b706b63f94..d4c5702bc0 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c @@ -320,6 +320,18 @@ PLUGIN_HEADER #define FLIPIT_STEP_BY_STEP BUTTON_CANCEL #define FLIPIT_TOGGLE BUTTON_OK +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define FLIPIT_LEFT BUTTON_VOL_DOWN +#define FLIPIT_RIGHT BUTTON_VOL_UP +#define FLIPIT_UP BUTTON_PREV +#define FLIPIT_DOWN BUTTON_NEXT +#define FLIPIT_QUIT (BUTTON_REC|BUTTON_PLAY) +#define FLIPIT_SHUFFLE BUTTON_SELECT +#define FLIPIT_SOLVE BUTTON_REC +#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_PREV) +#define FLIPIT_TOGGLE (BUTTON_PLAY|BUTTON_NEXT) + #else #error No keymap defined! #endif diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h index 2bcee1da57..557dde470a 100644 --- a/apps/plugins/fractals/fractal.h +++ b/apps/plugins/fractals/fractal.h @@ -318,6 +318,18 @@ #define FRACTAL_PRECISION_DEC BUTTON_CANCEL #define FRACTAL_RESET (BUTTON_CANCEL | BUTTON_REPEAT) +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define FRACTAL_QUIT (BUTTON_REC | BUTTON_PLAY) +#define FRACTAL_UP BUTTON_PREV +#define FRACTAL_DOWN BUTTON_NEXT +#define FRACTAL_LEFT BUTTON_VOL_DOWN +#define FRACTAL_RIGHT BUTTON_VOL_UP +#define FRACTAL_ZOOM_IN (BUTTON_PLAY|BUTTON_NEXT) +#define FRACTAL_ZOOM_OUT (BUTTON_PLAY|BUTTON_PREV) +#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_VOL_UP) +#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_VOL_DOWN) +#define FRACTAL_RESET BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h index 6bc1e83ea9..978812ac65 100644 --- a/apps/plugins/goban/goban.h +++ b/apps/plugins/goban/goban.h @@ -309,6 +309,16 @@ #define GBN_BUTTON_CONTEXT BUTTON_OK #define GBN_BUTTON_NEXT_VAR BUTTON_CANCEL +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) +#define GBN_BUTTON_UP BUTTON_PREV +#define GBN_BUTTON_DOWN BUTTON_NEXT +#define GBN_BUTTON_LEFT BUTTON_VOL_DOWN +#define GBN_BUTTON_RIGHT BUTTON_VOL_UP +#define GBN_BUTTON_RETREAT BUTTON_REC +#define GBN_BUTTON_ADVANCE BUTTON_PLAY +#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL +#define GBN_BUTTON_MENU BUTTON_SELECT | BUTTON_REPEAT + #else #error Unsupported keypad #endif diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h index a2e12911b3..b704701cda 100644 --- a/apps/plugins/imageviewer/imageviewer.h +++ b/apps/plugins/imageviewer/imageviewer.h @@ -316,6 +316,18 @@ #define IMGVIEW_MENU BUTTON_MENU #define IMGVIEW_QUIT BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP) +#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN) +#define IMGVIEW_UP BUTTON_PREV +#define IMGVIEW_DOWN BUTTON_NEXT +#define IMGVIEW_LEFT BUTTON_VOL_DOWN +#define IMGVIEW_RIGHT BUTTON_VOL_UP +#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT) +#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV) +#define IMGVIEW_MENU BUTTON_SELECT +#define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY) + #else #error No keymap defined! #endif diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 74e8d6ec11..6bed9bf827 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -277,6 +277,16 @@ CONFIG_KEYPAD == MROBE500_PAD #define HK_SELECT "OK" #define HK_CANCEL "REC" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define JEWELS_LEFT BUTTON_VOL_DOWN +#define JEWELS_RIGHT BUTTON_VOL_UP +#define JEWELS_UP BUTTON_PREV +#define JEWELS_DOWN BUTTON_NEXT +#define JEWELS_SELECT BUTTON_SELECT +#define JEWELS_CANCEL BUTTON_REC +#define HK_SELECT "SELECT" +#define HK_CANCEL "REC" + #else #error No keymap defined! #endif diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index 20e7bd7ea3..29c9430f64 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c @@ -199,6 +199,16 @@ const struct button_mapping generic_directions[] = { PLA_DOWN_REPEAT, BUTTON_DOWN, BUTTON_NONE}, { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE}, { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) + { PLA_UP, BUTTON_PREV, BUTTON_NONE}, + { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE}, + { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE}, + { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE}, + { PLA_UP_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE}, + { PLA_DOWN_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, + { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, + #else #error pluginlib_actions: Unsupported keypad #endif @@ -342,6 +352,15 @@ const struct button_mapping generic_left_right_fire[] = { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE}, { PLA_FIRE, BUTTON_OK, BUTTON_NONE}, { PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) + { PLA_LEFT, BUTTON_VOL_DOWN, BUTTON_NONE}, + { PLA_RIGHT, BUTTON_VOL_UP, BUTTON_NONE}, + { PLA_LEFT_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + { PLA_RIGHT_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, + { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, + { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, + + #else #error pluginlib_actions: Unsupported keypad #endif @@ -521,6 +540,13 @@ const struct button_mapping generic_actions[] = {PLA_MENU, BUTTON_MENU, BUTTON_NONE}, {PLA_FIRE, BUTTON_OK, BUTTON_NONE}, {PLA_FIRE_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) + {PLA_QUIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE}, + {PLA_START, BUTTON_PLAY, BUTTON_NONE}, + {PLA_MENU, BUTTON_REC, BUTTON_NONE}, + {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, + {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, + #else #error pluginlib_actions: Unsupported keypad #endif @@ -616,6 +642,12 @@ const struct button_mapping generic_increase_decrease[] = {PLA_DEC, BUTTON_DOWN, BUTTON_NONE}, {PLA_INC_REPEAT, BUTTON_UP, BUTTON_NONE}, {PLA_DEC_REPEAT, BUTTON_DOWN, BUTTON_NONE}, +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + {PLA_INC, BUTTON_VOL_UP, BUTTON_NONE}, + {PLA_DEC, BUTTON_VOL_DOWN, BUTTON_NONE}, + {PLA_INC_REPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE}, + {PLA_DEC_REPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, + #else #error pluginlib_actions: Unsupported keypad #endif diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c index b2320237f9..59baa2d5af 100644 --- a/apps/plugins/logo.c +++ b/apps/plugins/logo.c @@ -193,6 +193,13 @@ const unsigned char rockbox16x7[] = { #define LP_DEC_Y BUTTON_DOWN #define LP_INC_Y BUTTON_UP +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define LP_QUIT (BUTTON_REC|BUTTON_PLAY) +#define LP_DEC_X BUTTON_VOL_DOWN +#define LP_INC_X BUTTON_VOL_UP +#define LP_DEC_Y BUTTON_PREV +#define LP_INC_Y BUTTON_NEXT + #else #define LP_QUIT BUTTON_OFF #define LP_DEC_X BUTTON_LEFT diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c index e7326ea4f4..5a13b3aa38 100644 --- a/apps/plugins/matrix.c +++ b/apps/plugins/matrix.c @@ -156,6 +156,12 @@ CONFIG_KEYPAD == MROBE500_PAD #define MATRIX_SLEEP_LESS BUTTON_NEXT #define MATRIX_PAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define MATRIX_EXIT (BUTTON_REC|BUTTON_PLAY) +#define MATRIX_SLEEP_MORE BUTTON_VOL_UP +#define MATRIX_SLEEP_LESS BUTTON_VOL_DOWN +#define MATRIX_PAUSE BUTTON_PLAY + #else #error Unsupported keypad #endif diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index 69c137e268..b225014fce 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -195,6 +195,14 @@ PLUGIN_IRAM_DECLARE #define BTN_DOWN BUTTON_DOWN #define BTN_PLAY BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define BTN_QUIT (BUTTON_REC | BUTTON_PLAY) +#define BTN_RIGHT BUTTON_VOL_DOWN +#define BTN_LEFT BUTTON_VOL_UP +#define BTN_UP BUTTON_PREV +#define BTN_DOWN BUTTON_NEXT +#define BTN_PLAY BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c index 7b26169da7..dbf3271353 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c @@ -259,6 +259,16 @@ CONFIG_KEYPAD == MROBE500_PAD # define MINESWP_DISCOVER BUTTON_OK # define MINESWP_INFO BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +# define MINESWP_LEFT BUTTON_VOL_DOWN +# define MINESWP_RIGHT BUTTON_VOL_UP +# define MINESWP_UP BUTTON_PREV +# define MINESWP_DOWN BUTTON_NEXT +# define MINESWP_QUIT (BUTTON_REC|BUTTON_PLAY) +# define MINESWP_TOGGLE BUTTON_PLAY +# define MINESWP_DISCOVER BUTTON_SELECT +# define MINESWP_INFO BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c index d6fc11d131..6506c85560 100644 --- a/apps/plugins/mosaique.c +++ b/apps/plugins/mosaique.c @@ -169,6 +169,11 @@ PLUGIN_HEADER #define MOSAIQUE_SPEED BUTTON_PLAY #define MOSAIQUE_RESTART BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define MOSAIQUE_QUIT (BUTTON_REC | BUTTON_PLAY) +#define MOSAIQUE_SPEED BUTTON_SELECT +#define MOSAIQUE_RESTART BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index 070bdb199f..50aa99b2ae 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c @@ -2511,6 +2511,12 @@ CONFIG_KEYPAD == MROBE500_PAD #define MP3ENC_DONE BUTTON_REC #define MP3ENC_SELECT BUTTON_OK +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define MP3ENC_PREV BUTTON_PREV +#define MP3ENC_NEXT BUTTON_NEXT +#define MP3ENC_DONE BUTTON_PLAY +#define MP3ENC_SELECT BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 49d7f8b38d..6c8a2b8e3e 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c @@ -206,6 +206,14 @@ struct mpeg_settings settings; #define MPEG_START_TIME_RIGHT2 BUTTON_CANCEL #define MPEG_START_TIME_EXIT BUTTON_REC +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define MPEG_START_TIME_SELECT BUTTON_SELECT +#define MPEG_START_TIME_LEFT BUTTON_PREV +#define MPEG_START_TIME_RIGHT BUTTON_NEXT +#define MPEG_START_TIME_UP BUTTON_VOL_UP +#define MPEG_START_TIME_DOWN BUTTON_VOL_DOWN +#define MPEG_START_TIME_EXIT BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 015aae4ad0..4c7245dc94 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -317,6 +317,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD #define MPEG_RW BUTTON_PREV #define MPEG_FF BUTTON_NEXT +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define MPEG_MENU BUTTON_SELECT +#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL) +#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT) +#define MPEG_VOLDOWN BUTTON_VOL_DOWN +#define MPEG_VOLUP BUTTON_VOL_UP +#define MPEG_RW BUTTON_PREV +#define MPEG_FF BUTTON_NEXT + #else #error No keymap defined! #endif diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c index 69ae8bcfaf..4195d96d5f 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c @@ -287,6 +287,17 @@ PLUGIN_HEADER #define OSCILLOSCOPE_VOL_UP BUTTON_UP #define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define OSCILLOSCOPE_QUIT (BUTTON_REC | BUTTON_PLAY) +#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT +#define OSCILLOSCOPE_ADVMODE BUTTON_REC +#define OSCILLOSCOPE_ORIENTATION (BUTTON_SELECT|BUTTON_REPEAT) +#define OSCILLOSCOPE_PAUSE BUTTON_PLAY +#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT +#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV +#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP +#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index f80b163c3f..a429b00166 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c @@ -418,6 +418,25 @@ CONFIG_KEYPAD == MROBE500_PAD #define LVL_DOWN_TEXT "CANCEL" #define SELECT_TEXT "PLAY" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define PEGBOX_SAVE (BUTTON_PLAY|BUTTON_SELECT) +#define PEGBOX_QUIT (BUTTON_REC|BUTTON_PLAY) +#define PEGBOX_RESTART BUTTON_REC +#define PEGBOX_LVL_UP (BUTTON_PLAY|BUTTON_PREV) +#define PEGBOX_LVL_DOWN (BUTTON_PLAY|BUTTON_NEXT) +#define PEGBOX_UP BUTTON_PREV +#define PEGBOX_DOWN BUTTON_NEXT +#define PEGBOX_RIGHT BUTTON_VOL_UP +#define PEGBOX_LEFT BUTTON_VOL_DOWN +#define PEGBOX_SELECT BUTTON_SELECT + +#define SAVE_TEXT "PLAY + SELECT" +#define QUIT_TEXT "REC + PLAY" +#define RESTART_TEXT "REC" +#define LVL_UP_TEXT "PREV" +#define LVL_DOWN_TEXT "NEXT" +#define SELECT_TEXT "SELECT" + #else #error Unsupported keymap! #endif diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c index f91242ed9f..adf7ab532a 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c @@ -170,6 +170,12 @@ static bool boosted = false; #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN #define PLASMA_REGEN_COLORS BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define PLASMA_QUIT (BUTTON_REC|BUTTON_PLAY) +#define PLASMA_INCREASE_FREQUENCY BUTTON_VOL_DOWN +#define PLASMA_DECREASE_FREQUENCY BUTTON_VOL_UP +#define PLASMA_REGEN_COLORS BUTTON_PLAY + #endif #ifdef HAVE_TOUCHSCREEN diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index d14db5fdbd..08899d767a 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -213,6 +213,13 @@ CONFIG_KEYPAD == MROBE500_PAD #define PONG_RIGHT_UP BUTTON_PLAY #define PONG_RIGHT_DOWN BUTTON_NEXT +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define PONG_QUIT (BUTTON_REC|BUTTON_PLAY) +#define PONG_LEFT_UP BUTTON_PREV +#define PONG_LEFT_DOWN BUTTON_NEXT +#define PONG_RIGHT_UP BUTTON_VOL_UP +#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h index 145335ce76..9b4c43ca21 100644 --- a/apps/plugins/reversi/reversi-gui.h +++ b/apps/plugins/reversi/reversi-gui.h @@ -216,6 +216,16 @@ #define REVERSI_BUTTON_MAKE_MOVE BUTTON_OK #define REVERSI_BUTTON_MENU BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define REVERSI_BUTTON_UP BUTTON_PREV +#define REVERSI_BUTTON_DOWN BUTTON_NEXT +#define REVERSI_BUTTON_LEFT BUTTON_VOL_DOWN +#define REVERSI_BUTTON_RIGHT BUTTON_VOL_UP +#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT +#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS +#define REVERSI_BUTTON_MENU BUTTON_SELECT +#define REVERSI_BUTTON_MENU_LONGPRESS + #else #error No keymap defined! #endif diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 891b79be56..f1ad8399fb 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -326,6 +326,16 @@ PLUGIN_HEADER #define ROCKBLOX_DROP BUTTON_OK #define ROCKBLOX_RESTART BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define ROCKBLOX_OFF (BUTTON_REC|BUTTON_PLAY) +#define ROCKBLOX_ROTATE_CCW BUTTON_PREV +#define ROCKBLOX_ROTATE_CW BUTTON_NEXT +#define ROCKBLOX_DOWN BUTTON_SELECT +#define ROCKBLOX_LEFT BUTTON_VOL_DOWN +#define ROCKBLOX_RIGHT BUTTON_VOL_UP +#define ROCKBLOX_DROP BUTTON_PLAY +#define ROCKBLOX_RESTART BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c index d34087ab61..5006d88a2d 100644 --- a/apps/plugins/rockblox1d.c +++ b/apps/plugins/rockblox1d.c @@ -117,6 +117,10 @@ PLUGIN_HEADER #define ONEDROCKBLOX_DOWN BUTTON_DOWN #define ONEDROCKBLOX_QUIT BUTTON_REC +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) +#define ONEDROCKBLOX_DOWN BUTTON_SELECT +#define ONEDROCKBLOX_QUIT (BUTTON_REC | BUTTON_PLAY) + #elif defined(HAVE_TOUCHSCREEN) #define ONEDROCKBLOX_DOWN BUTTON_BOTTOMMIDDLE diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index f6ba83e683..7bf49c123d 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -221,6 +221,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define PUZZLE_SHUFFLE BUTTON_CANCEL #define PUZZLE_PICTURE BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define PUZZLE_QUIT (BUTTON_REC | BUTTON_PLAY) +#define PUZZLE_LEFT BUTTON_VOL_DOWN +#define PUZZLE_RIGHT BUTTON_VOL_UP +#define PUZZLE_UP BUTTON_PREV +#define PUZZLE_DOWN BUTTON_NEXT +#define PUZZLE_SHUFFLE BUTTON_REC +#define PUZZLE_PICTURE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 1d14efea69..c3fe84e6d0 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -208,6 +208,14 @@ PLUGIN_HEADER #define SNAKE_DOWN BUTTON_DOWN #define SNAKE_PLAYPAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SNAKE_QUIT (BUTTON_REC|BUTTON_PLAY) +#define SNAKE_LEFT BUTTON_VOL_DOWN +#define SNAKE_RIGHT BUTTON_VOL_UP +#define SNAKE_UP BUTTON_PREV +#define SNAKE_DOWN BUTTON_NEXT +#define SNAKE_PLAYPAUSE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index 136952599c..d9b6542bf3 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -317,6 +317,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define SNAKE2_PLAYPAUSE BUTTON_PLAY #define SNAKE2_PLAYPAUSE_TEXT "Play" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SNAKE2_LEFT BUTTON_VOL_DOWN +#define SNAKE2_RIGHT BUTTON_VOL_UP +#define SNAKE2_UP BUTTON_PREV +#define SNAKE2_DOWN BUTTON_NEXT +#define SNAKE2_QUIT (BUTTON_REC | BUTTON_PLAY) +#define SNAKE2_PLAYPAUSE BUTTON_PLAY +#define SNAKE2_PLAYPAUSE_TEXT "Play" + #else #error No keymap defined! #endif diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c index a81e12be96..eb8870efde 100644 --- a/apps/plugins/snow.c +++ b/apps/plugins/snow.c @@ -82,6 +82,9 @@ PLUGIN_HEADER #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD #define SNOW_QUIT BUTTON_REC +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SNOW_QUIT (BUTTON_REC|BUTTON_PLAY) + #else #define SNOW_QUIT BUTTON_OFF #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index e7b22197e6..838b4de5b0 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -437,6 +437,21 @@ PLUGIN_HEADER #define BUTTON_SAVE BUTTON_MENU #define BUTTON_SAVE_NAME "MENU" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SOKOBAN_LEFT BUTTON_VOL_DOWN +#define SOKOBAN_RIGHT BUTTON_VOL_UP +#define SOKOBAN_UP BUTTON_PREV +#define SOKOBAN_DOWN BUTTON_NEXT +#define SOKOBAN_MENU BUTTON_SELECT +#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_PREV) +#define SOKOBAN_REDO (BUTTON_PLAY | BUTTON_NEXT) +#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_VOL_DOWN) +#define SOKOBAN_LEVEL_REPEAT BUTTON_REC +#define SOKOBAN_LEVEL_UP (BUTTON_PLAY | BUTTON_VOL_UP) +#define SOKOBAN_PAUSE BUTTON_PLAY +#define BUTTON_SAVE (BUTTON_PLAY|BUTTON_SELECT) +#define BUTTON_SAVE_NAME "PLAY+SELECT" + #else #error No keymap defined! #endif diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 8737275627..cf4e6475b0 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -457,6 +457,24 @@ CONFIG_KEYPAD == MROBE500_PAD # define HK_CUR2STACK "PLAY" # define HK_REM2STACK "PLAY..." +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +# define SOL_QUIT (BUTTON_REC | BUTTON_PLAY) +# define SOL_UP BUTTON_PREV +# define SOL_DOWN BUTTON_NEXT +# define SOL_LEFT BUTTON_VOL_DOWN +# define SOL_RIGHT BUTTON_VOL_UP +# define SOL_MOVE_PRE BUTTON_SELECT +# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL) +# define SOL_DRAW BUTTON_REC +# define SOL_REM2CUR (BUTTON_REC | BUTTON_REPEAT) +# define SOL_CUR2STACK BUTTON_PLAY +# define SOL_REM2STACK (BUTTON_PLAY | BUTTON_REPEAT) +# define HK_MOVE "SELECT" +# define HK_DRAW "REC" +# define HK_REM2CUR "REC.." +# define HK_CUR2STACK "PLAY" +# define HK_REM2STACK "PLAY...." + #else #error No keymap defined! #endif diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index 586beb37ab..0ade406b59 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -229,6 +229,16 @@ PLUGIN_HEADER #define AST_RIGHT BUTTON_NEXT #define AST_FIRE BUTTON_OK +#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) + +#define AST_PAUSE (BUTTON_PLAY|BUTTON_SELECT) +#define AST_QUIT (BUTTON_REC|BUTTON_PLAY) +#define AST_THRUST BUTTON_REC +#define AST_HYPERSPACE BUTTON_PLAY +#define AST_LEFT BUTTON_PREV +#define AST_RIGHT BUTTON_NEXT +#define AST_FIRE BUTTON_SELECT + #else #error No keymap defined! #endif diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 1e8eb868a9..d11e3187db 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -393,6 +393,24 @@ PLUGIN_HEADER #define STAR_LEVEL_DOWN_NAME "CANCEL" #define STAR_LEVEL_REPEAT_NAME "MENU" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define STAR_QUIT (BUTTON_REC | BUTTON_PLAY) +#define STAR_LEFT BUTTON_VOL_DOWN +#define STAR_RIGHT BUTTON_VOL_UP +#define STAR_UP BUTTON_PREV +#define STAR_DOWN BUTTON_NEXT +#define STAR_TOGGLE_CONTROL_PRE BUTTON_SELECT +#define STAR_TOGGLE_CONTROL (BUTTON_SELECT | BUTTON_REL) +#define STAR_LEVEL_UP BUTTON_PLAY +#define STAR_LEVEL_DOWN BUTTON_REC +#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_REPEAT) +#define STAR_TOGGLE_CONTROL_NAME "SELECT" +#define STAR_QUIT_NAME "REC + PLAY" +#define STAR_LEVEL_UP_NAME "PLAY" +#define STAR_LEVEL_DOWN_NAME "REC" +#define STAR_LEVEL_REPEAT_NAME "SELECT LONG" + #else #error No keymap defined! #endif diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c index 4b3b0878ad..1ae0f289ff 100644 --- a/apps/plugins/starfield.c +++ b/apps/plugins/starfield.c @@ -158,6 +158,14 @@ PLUGIN_HEADER #define STARFIELD_DECREASE_NB_STARS BUTTON_PREV #define STARFIELD_TOGGLE_COLOR BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define STARFIELD_QUIT (BUTTON_REC|BUTTON_PLAY) +#define STARFIELD_INCREASE_ZMOVE BUTTON_VOL_UP +#define STARFIELD_DECREASE_ZMOVE BUTTON_VOL_DOWN +#define STARFIELD_INCREASE_NB_STARS BUTTON_NEXT +#define STARFIELD_DECREASE_NB_STARS BUTTON_PREV +#define STARFIELD_TOGGLE_COLOR BUTTON_PLAY + #endif #ifdef HAVE_TOUCHSCREEN diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c index ae297841f6..eaa1055a73 100644 --- a/apps/plugins/stats.c +++ b/apps/plugins/stats.c @@ -105,6 +105,9 @@ static bool abort; #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD #define STATS_STOP BUTTON_REC +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define STATS_STOP BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index ad3b285d2f..cb85e360db 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -223,6 +223,14 @@ PLUGIN_HEADER #define STOPWATCH_SCROLL_UP BUTTON_UP #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define STOPWATCH_QUIT (BUTTON_REC|BUTTON_PLAY) +#define STOPWATCH_START_STOP BUTTON_PLAY +#define STOPWATCH_RESET_TIMER BUTTON_PREV +#define STOPWATCH_LAP_TIMER BUTTON_NEXT +#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP +#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN + #else #error No keymap defined! #endif diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h index 63e0718c70..8974bd8768 100644 --- a/apps/plugins/sudoku/sudoku.h +++ b/apps/plugins/sudoku/sudoku.h @@ -281,6 +281,15 @@ #define SUDOKU_BUTTON_MENU BUTTON_MENU #define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SUDOKU_BUTTON_MENU BUTTON_REC +#define SUDOKU_BUTTON_LEFT BUTTON_VOL_DOWN +#define SUDOKU_BUTTON_RIGHT BUTTON_VOL_UP +#define SUDOKU_BUTTON_CHANGEDIR BUTTON_SELECT +#define SUDOKU_BUTTON_TOGGLE BUTTON_NEXT +#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_PREV +#define SUDOKU_BUTTON_POSSIBLE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c index f7706f64bd..52a56d5954 100644 --- a/apps/plugins/test_fps.c +++ b/apps/plugins/test_fps.c @@ -35,6 +35,8 @@ PLUGIN_IRAM_DECLARE #define FPS_QUIT BUTTON_PLAY #elif CONFIG_KEYPAD == SANSA_FUZE_PAD #define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT) +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define FPS_QUIT (BUTTON_REC|BUTTON_PLAY) #elif defined(BUTTON_OFF) #define FPS_QUIT BUTTON_OFF #else diff --git a/apps/plugins/test_grey.c b/apps/plugins/test_grey.c index a1189dda77..c2adaf06b5 100644 --- a/apps/plugins/test_grey.c +++ b/apps/plugins/test_grey.c @@ -83,6 +83,14 @@ PLUGIN_HEADER #define GREY_UP BUTTON_UP #define GREY_DOWN BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define GREY_QUIT (BUTTON_REC|BUTTON_PLAY) +#define GREY_OK BUTTON_SELECT +#define GREY_PREV BUTTON_PREV +#define GREY_NEXT BUTTON_NEXT +#define GREY_UP BUTTON_VOL_UP +#define GREY_DOWN BUTTON_VOL_DOWN + #else #error unsupported keypad #endif diff --git a/apps/plugins/test_greylib_bitmap_scale.c b/apps/plugins/test_greylib_bitmap_scale.c index 7b226d4f96..892f3dc622 100644 --- a/apps/plugins/test_greylib_bitmap_scale.c +++ b/apps/plugins/test_greylib_bitmap_scale.c @@ -30,6 +30,8 @@ #define GBS_QUIT BUTTON_RC_REC #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD #define GBS_QUIT BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define GBS_QUIT (BUTTON_REC|BUTTON_PLAY) #elif defined(BUTTON_OFF) #define GBS_QUIT BUTTON_OFF #else diff --git a/apps/plugins/test_scanrate.c b/apps/plugins/test_scanrate.c index 5f1e3cacdf..fb59193272 100644 --- a/apps/plugins/test_scanrate.c +++ b/apps/plugins/test_scanrate.c @@ -71,6 +71,13 @@ PLUGIN_HEADER #define SCANRATE_INC BUTTON_UP #define SCANRATE_DEC BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define SCANRATE_DONE BUTTON_PLAY +#define SCANRATE_FASTINC BUTTON_NEXT +#define SCANRATE_FASTDEC BUTTON_PREV +#define SCANRATE_INC BUTTON_VOL_UP +#define SCANRATE_DEC BUTTON_VOL_DOWN + #endif /* Default refresh rates in 1/10 Hz */ diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index 9ebc1d9cf6..ed84d26f28 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c @@ -486,6 +486,16 @@ PLUGIN_HEADER #define VIEWER_AUTOSCROLL BUTTON_PLAY #define VIEWER_BOOKMARK BUTTON_POWER +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define VIEWER_QUIT (BUTTON_REC | BUTTON_PLAY) +#define VIEWER_PAGE_UP BUTTON_PREV +#define VIEWER_PAGE_DOWN BUTTON_NEXT +#define VIEWER_SCREEN_LEFT BUTTON_VOL_DOWN +#define VIEWER_SCREEN_RIGHT BUTTON_VOL_UP +#define VIEWER_MENU BUTTON_SELECT +#define VIEWER_AUTOSCROLL BUTTON_PLAY +#define VIEWER_BOOKMARK BUTTON_REC + #else #error No keymap defined! #endif diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index f3473c84d7..7cf5a5f00c 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -283,6 +283,17 @@ PLUGIN_HEADER #define LABEL_MENU "MENU" #define LABEL_VOLUME "UP/DOWN" +#elif CONFIG_KEYPAD == MPIO_HD200_PAD +#define VUMETER_QUIT (BUTTON_REC|BUTTON_PLAY) +#define VUMETER_HELP BUTTON_PLAY +#define VUMETER_MENU BUTTON_SELECT +#define VUMETER_UP BUTTON_VOL_UP +#define VUMETER_DOWN BUTTON_VOL_DOWN +#define LABEL_HELP "PLAY" +#define LABEL_QUIT "MENU" +#define LABEL_MENU "SELECT" +#define LABEL_VOLUME "UP/DOWN" + #else #error No keymap defined! #endif diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index 3324d6c507..037f4005a2 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -268,6 +268,16 @@ CONFIG_KEYPAD == MROBE500_PAD #define BTN_QUIT BUTTON_REC #define BTN_STOPRESET BUTTON_CANCEL +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define BTN_DIR_UP BUTTON_REC +#define BTN_DIR_DOWN BUTTON_PLAY +#define BTN_DIR_LEFT BUTTON_PREV +#define BTN_DIR_RIGHT BUTTON_NEXT +#define BTN_STARTPAUSE BUTTON_SELECT +#define BTN_QUIT (BUTTON_REC|BUTTON_PLAY) +#define BTN_STOPRESET (BUTTON_SELECT|BUTTON_REPEAT) + #else #error No keymap defined! #endif diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index 6edc629144..4dd673c370 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -232,6 +232,15 @@ CONFIG_KEYPAD == MROBE500_PAD #define DOWN BUTTON_DOWN #define PAUSE BUTTON_PLAY +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define QUIT (BUTTON_REC|BUTTON_PLAY) +#define LEFT BUTTON_VOL_DOWN +#define RIGHT BUTTON_VOL_UP +#define UP BUTTON_PREV +#define DOWN BUTTON_NEXT +#define PAUSE BUTTON_PLAY + #else #error No keymap defined! #endif diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h index 3ca5451fdb..ee2a8d5f4a 100644 --- a/apps/plugins/zxbox/keymaps.h +++ b/apps/plugins/zxbox/keymaps.h @@ -189,6 +189,15 @@ #define ZX_SELECT BUTTON_OK #define ZX_MENU BUTTON_MENU +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define ZX_MENU (BUTTON_REC|BUTTON_PLAY) +#define ZX_UP BUTTON_PREV +#define ZX_DOWN BUTTON_NEXT +#define ZX_SELECT BUTTON_SELECT +#define ZX_LEFT BUTTON_VOL_DOWN +#define ZX_RIGHT BUTTON_VOL_UP + #else #error Keymap not defined! diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c index b48c5ec4ac..bc7e3aca2c 100644 --- a/apps/plugins/zxbox/zxbox_keyb.c +++ b/apps/plugins/zxbox/zxbox_keyb.c @@ -184,6 +184,15 @@ #define KBD_UP BUTTON_UP #define KBD_DOWN BUTTON_DOWN +#elif CONFIG_KEYPAD == MPIO_HD200_PAD + +#define KBD_SELECT BUTTON_SELECT +#define KBD_ABORT BUTTON_REC +#define KBD_LEFT BUTTON_VOL_DOWN +#define KBD_RIGHT BUTTON_VOL_UP +#define KBD_UP BUTTON_PREV +#define KBD_DOWN BUTTON_NEXT + #endif #ifdef HAVE_TOUCHSCREEN diff --git a/bootloader/SOURCES b/bootloader/SOURCES index 31b051445b..24d0bd29f6 100644 --- a/bootloader/SOURCES +++ b/bootloader/SOURCES @@ -63,4 +63,6 @@ show_logo.c #elif defined(PBELL_VIBE500) main-pp.c show_logo.c +#elif defined(MPIO_HD200) +mpio_hd200.c #endif diff --git a/firmware/SOURCES b/firmware/SOURCES index b13f6a0df8..48360d7b45 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -258,7 +258,8 @@ drivers/mas.c #if !defined(SIMULATOR) && !defined(BOOTLOADER) #if defined(HAVE_UDA1380) drivers/audio/uda1380.c -#elif defined(HAVE_WM8751) +#elif defined(HAVE_WM8751) \ + || defined(HAVE_WM8750) drivers/audio/wm8751.c #elif defined(HAVE_WM8978) drivers/audio/wm8978.c @@ -1609,3 +1610,24 @@ target/arm/usb-fw-pp502x.c #endif /* SIMULATOR */ #endif +#ifdef MPIO_HD200 +#ifndef SIMULATOR +/* TODO: currently including all files */ +target/coldfire/mpio/hd200/adc-hd200.c +target/coldfire/mpio/hd200/button-hd200.c +target/coldfire/mpio/hd200/lcd-hd200.c +target/coldfire/mpio/hd200/lcd-as-hd200.S +target/coldfire/mpio/hd200/power-hd200.c +target/coldfire/mpio/hd200/powermgmt-hd200.c +target/coldfire/mpio/hd200/backlight-hd200.c +target/coldfire/mpio/hd200/system-hd200.c +target/coldfire/mpio/hd200/usb-hd200.c +target/coldfire/mpio/fmradio_i2c-mpio.c +target/coldfire/mpio/ata-mpio.c +target/coldfire/mpio/ata-as-mpio.S +#ifndef BOOTLOADER +target/coldfire/mpio/audio-mpio.c +target/coldfire/wmcodec-coldfire.c +#endif /* BOOTLOADER */ +#endif /* SIMULATOR */ +#endif diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c index b42c4b1041..cdc64fd69b 100644 --- a/firmware/drivers/audio/wm8751.c +++ b/firmware/drivers/audio/wm8751.c @@ -116,17 +116,22 @@ void audiohw_preinit(void) * and Headphone outputs are all OFF (DACMU = 1 Power * Management registers 1 and 2 are all zeros). */ + wmcodec_write(RESET, RESET_RESET); /*Reset*/ /* 2. Enable Vmid and VREF. */ wmcodec_write(PWRMGMT1, PWRMGMT1_VREF | PWRMGMT1_VMIDSEL_5K); +#ifdef CODEC_SLAVE + wmcodec_write(AINTFCE,AINTFCE_WL_16|AINTFCE_FORMAT_I2S); +#else /* BCLKINV=0(Dont invert BCLK) MS=1(Enable Master) LRSWAP=0 LRP=0 */ /* IWL=00(16 bit) FORMAT=10(I2S format) */ wmcodec_write(AINTFCE, AINTFCE_MS | AINTFCE_WL_16 | AINTFCE_FORMAT_I2S); - +#endif /* Set default samplerate */ + audiohw_set_frequency(HW_FREQ_DEFAULT); } @@ -140,7 +145,7 @@ void audiohw_postinit(void) wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR); /* 4. Enable line and / or headphone output buffers as required. */ -#ifdef MROBE_100 +#if defined(MROBE_100) || defined(MPIO_HD200) wmcodec_write(PWRMGMT2, PWRMGMT2_DACL | PWRMGMT2_DACR | PWRMGMT2_LOUT1 | PWRMGMT2_ROUT1); #else @@ -166,6 +171,19 @@ void audiohw_postinit(void) #endif #endif +#ifdef MPIO_HD200 + /* Crude fix for high pitch noise at startup + * I should find out what realy causes this + */ + wmcodec_write(LOUT1, LOUT1_BITS|0x7f); + wmcodec_write(ROUT1, ROUT1_BITS|0x7f); + wmcodec_write(LOUT1, LOUT1_BITS); + wmcodec_write(ROUT1, ROUT1_BITS); +#endif + + /* lower power consumption */ + wmcodec_write(PWRMGMT1, PWRMGMT1_VREF | PWRMGMT1_VMIDSEL_50K); + audiohw_mute(false); #ifdef MROBE_100 @@ -234,6 +252,8 @@ void audiohw_close(void) void audiohw_set_frequency(int fsel) { + (void)fsel; +#ifndef CODEC_SLAVE static const unsigned char srctrl_table[HW_NUM_FREQ] = { HW_HAVE_11_([HW_FREQ_11] = CODEC_SRCTRL_11025HZ,) @@ -246,4 +266,5 @@ void audiohw_set_frequency(int fsel) fsel = HW_FREQ_DEFAULT; wmcodec_write(CLOCKING, srctrl_table[fsel]); +#endif } diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index 781bc12f8e..c00b673a4a 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h @@ -38,7 +38,7 @@ #include "uda1380.h" #elif defined(HAVE_UDA1341) #include "uda1341.h" -#elif defined(HAVE_WM8751) +#elif defined(HAVE_WM8750) || defined(HAVE_WM8751) #include "wm8751.h" #elif defined(HAVE_WM8978) #include "wm8978.h" diff --git a/firmware/export/config.h b/firmware/export/config.h index fb9381e7da..906a3fef1a 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -117,6 +117,7 @@ #define MINI2440_PAD 41 #define PHILIPS_HDD6330_PAD 42 #define PBELL_VIBE500_PAD 43 +#define MPIO_HD200_PAD 44 /* CONFIG_REMOTE_KEYPAD */ #define H100_REMOTE 1 @@ -412,6 +413,8 @@ Lyre prototype 1 */ #include "config/samsungyps3.h" #elif defined(PBELL_VIBE500) #include "config/vibe500.h" +#elif defined(MPIO_HD200) +#include "config/mpiohd200.h" #else /* no known platform */ #endif diff --git a/firmware/export/wm8751.h b/firmware/export/wm8751.h index 15170b76bc..c171642853 100644 --- a/firmware/export/wm8751.h +++ b/firmware/export/wm8751.h @@ -98,6 +98,15 @@ extern void audiohw_set_lineout_vol(int vol_l, int vol_r); #define RESET 0x0f #define RESET_RESET 0x000 +/* WM8750 only */ +#define ENHANCE_3D 0x10 +#define ENHANCE_3D_3DEN (1 << 0) +#define ENHANCE_3D_DEPTH(x) (((x) & 0xf) << 1) +#define ENHANCE_3D_3DLC (1 << 5) +#define ENHANCE_3D_3DUC (1 << 6) +#define ENHANCE_3D_MODE3D_PLAYBACK (1 << 7) +#define ENHANCE_3D_MODE3D_RECORD (0 << 7) + #define ADDITIONAL1 0x17 #define ADDITIONAL1_TOEN (1 << 0) #define ADDITIONAL1_DACINV (1 << 1) diff --git a/firmware/sound.c b/firmware/sound.c index d64dfcfdb9..4f95b6ed50 100644 --- a/firmware/sound.c +++ b/firmware/sound.c @@ -235,11 +235,12 @@ static void set_prescaled_volume(void) dac_volume(tenthdb2reg(l), tenthdb2reg(r), false); #elif defined(HAVE_UDA1380) || defined(HAVE_WM8975) || defined(HAVE_WM8758) \ || defined(HAVE_WM8711) || defined(HAVE_WM8721) || defined(HAVE_WM8731) \ - || defined(HAVE_WM8751) || defined(HAVE_AS3514) || defined(HAVE_TSC2100) \ - || defined(HAVE_AK4537) || defined(HAVE_UDA1341) + || defined(HAVE_WM8750) || defined(HAVE_WM8751) || defined(HAVE_AS3514) \ + || defined(HAVE_TSC2100) || defined(HAVE_AK4537) || defined(HAVE_UDA1341) audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r)); #if defined(HAVE_WM8975) || defined(HAVE_WM8758) \ - || (defined(HAVE_WM8751) && !defined(MROBE_100)) || defined(HAVE_WM8985) + || defined(HAVE_WM8750) || (defined(HAVE_WM8751) && !defined(MROBE_100)) \ + || defined(HAVE_WM8985) audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); #endif @@ -295,7 +296,7 @@ void sound_set_bass(int value) return; #if !defined(AUDIOHW_HAVE_CLIPPING) -#if defined(HAVE_WM8751) +#if defined(HAVE_WM8750) || defined(HAVE_WM8751) current_bass = value; #else current_bass = value * 10; @@ -319,7 +320,7 @@ void sound_set_treble(int value) return; #if !defined(AUDIOHW_HAVE_CLIPPING) -#if defined(HAVE_WM8751) +#if defined(HAVE_WM8750) || defined(HAVE_WM8751) current_treble = value; #else current_treble = value * 10; diff --git a/firmware/target/coldfire/crt0.S b/firmware/target/coldfire/crt0.S index bc8a370823..38365c7d71 100644 --- a/firmware/target/coldfire/crt0.S +++ b/firmware/target/coldfire/crt0.S @@ -63,7 +63,16 @@ start: move.l #0x00000180,%d0 /* CSCR0 - no wait states, 16 bits, no bursts */ move.l %d0,(0x088,%a0) -#ifndef IAUDIO_M3 +#ifdef MPIO_HD200 + /* Chip select 3 - LCD controller */ + /* values taken from original firmware except base address*/ + move.l #0xf0000000,%d0 /* CSAR3 - Base = 0xf0000000 */ + move.l %d0,(0x0a4,%a0) + moveq.l #0x1,%d0 /* CSMR3 - 64K */ + move.l %d0,(0x0a8,%a0) + move.l #0x00000980,%d0 /* CSCR3 - 1 wait state, 16 bits no bursts */ + move.l %d0,(0x0ac,%a0) +#elif !(defined IAUDIO_M3) /* Chip select 1 - LCD controller */ move.l #0xf0000000,%d0 /* CSAR1 - Base = 0xf0000000 */ move.l %d0,(0x08c,%a0) @@ -267,6 +276,14 @@ start: or.l %d0,(0xbc,%a1) #endif +#ifdef MPIO_HD200 + /* Set KEEP_ACT */ + move.l #0x02200000,%d0 + or.l %d0,(0xb4,%a1) + or.l %d0,(0xb8,%a1) + or.l %d0,(0xbc,%a1) +#endif + /* zero out bss */ lea _edata,%a2 lea _end,%a4 diff --git a/firmware/target/coldfire/i2c-coldfire.c b/firmware/target/coldfire/i2c-coldfire.c index ebfe0a006e..ab3018d713 100644 --- a/firmware/target/coldfire/i2c-coldfire.c +++ b/firmware/target/coldfire/i2c-coldfire.c @@ -70,6 +70,10 @@ void i2c_init(void) #elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) MBDR = 0; /* iRiver firmware does this */ MBCR = IEN; /* Enable interface */ +#elif defined(MPIO_HD200) + /* second channel */ + MFDR2 = 0x0d; + MBCR2 = IEN; #endif } diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index 0782b116b4..209d227187 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c @@ -55,6 +55,24 @@ #define FPARM_CLOCKSEL 0 #define FPARM_CLSEL 1 + +/* SCLK = Fs * bit clocks per word + * so SCLK should be Fs * 64 + * + * CLOCKSEL sets SCLK freq based on Audio CLK + * 0x0c SCLK = Audio CLK/2 88200 * 64 = 5644800 Hz + * 0x06 SCLK = Audio CLK/4 44100 * 64 = 2822400 Hz + * 0x04 SCLK = Audio CLK/8 22050 * 64 = 1411200 Hz + * 0x02 SCLK = Audio CLK/16 11025 * 64 = 705600 Hz + * + * CLSEL sets MCLK1/2 DAC freq based on XTAL freq + * 0x01 MCLK1/2 = XTAL freq + * 0x02 MCLK1/2 = XTAL/2 freq + * + * Audio CLK can be XTAL freq or XTAL/2 freq (bit22 in PLLCR) + * we always set bit22 so Audio CLK is always XTAL freq + */ + #if CONFIG_CPU == MCF5249 && defined(HAVE_UDA1380) static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = { @@ -65,6 +83,16 @@ static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = }; #endif +#if CONFIG_CPU == MCF5249 && defined(HAVE_WM8750) +static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = +{ + [HW_FREQ_88] = { 0x0c, 0x01 }, + [HW_FREQ_44] = { 0x06, 0x01 }, + [HW_FREQ_22] = { 0x04, 0x01 }, + [HW_FREQ_11] = { 0x02, 0x01 }, +}; +#endif + #if (CONFIG_CPU == MCF5250 || CONFIG_CPU == MCF5249) && defined(HAVE_TLV320) static const unsigned char pcm_freq_parms[HW_NUM_FREQ][2] = { @@ -324,6 +352,7 @@ const void * pcm_play_dma_get_peak_buffer(int *count) return (void *)((addr + 2) & ~3); } /* pcm_play_dma_get_peak_buffer */ +#ifdef HAVE_RECORDING /**************************************************************************** ** Recording DMA transfer **/ @@ -487,3 +516,4 @@ const void * pcm_rec_dma_get_peak_buffer(int *count) *count = (end >> 2) - addr; return (void *)(addr << 2); } /* pcm_rec_dma_get_peak_buffer */ +#endif diff --git a/firmware/target/coldfire/system-coldfire.c b/firmware/target/coldfire/system-coldfire.c index a387824526..ba67daa3a6 100644 --- a/firmware/target/coldfire/system-coldfire.c +++ b/firmware/target/coldfire/system-coldfire.c @@ -152,6 +152,11 @@ default_interrupt (ADC); /* A/D converter */ #define EXCP_BUTTON_MASK 0x00000202 #define EXCP_BUTTON_VALUE 0x00000200 /* On button and !hold */ #define EXCP_PLLCR 0x10800000 +#elif defined(MPIO_HD200) +#define EXCP_BUTTON_GPIO_READ GPIO1_READ +#define EXCP_BUTTON_MASK 0x01000010 +#define EXCP_BUTTON_VALUE 0x01000000 /* Play button and !hold */ +#define EXCP_PLLCR 0x10800000 #else #define EXCP_BUTTON_GPIO_READ GPIO1_READ #define EXCP_BUTTON_MASK 0x00000022 diff --git a/tools/configure b/tools/configure index 87646148f2..186e0d5ace 100755 --- a/tools/configure +++ b/tools/configure @@ -930,9 +930,12 @@ cat <