Nuke all TCC77x targets: iAudio 7, Sansa C100, M200(v1-3), Logik DAX

They were never finished, never saw any release ever, and haven't
compiled for the better part of a decade.  Given their HW capabilities [1],
they are not worth trying to fix.

[1] 1-2MB RAM, ~256MB onboard flash, no expandability

Change-Id: I7b2a5806d687114c22156bb0458d4a10a9734190
This commit is contained in:
Solomon Peachy 2021-04-23 11:09:49 -04:00
parent 77188e41f5
commit 3ba2f6e5c7
103 changed files with 48 additions and 5873 deletions

View File

@ -231,12 +231,6 @@ keymaps/keymap-sa9200.c
keymaps/keymap-hdd1630.c
#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
keymaps/keymap-hdd6330.c
#elif CONFIG_KEYPAD == IAUDIO67_PAD
keymaps/keymap-iaudio67.c
#elif CONFIG_KEYPAD == SANSA_C100_PAD
keymaps/keymap-c100.c
#elif CONFIG_KEYPAD == LOGIK_DAX_PAD
keymaps/keymap-logikdax.c
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
keymaps/keymap-fuze.c
#elif CONFIG_KEYPAD == ONDAVX747_PAD

View File

@ -1,400 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Mark Arigo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/* Button Code Definitions for Sandisk c100 target */
#include "config.h"
#include "action.h"
#include "button.h"
#include "settings.h"
/* {Action Code, Button code, Prereq button code } */
/*
* The format of the list is as follows
* { Action Code, Button code, Prereq button code }
* if there's no need to check the previous button's value, use BUTTON_NONE
* Insert LAST_ITEM_IN_LIST at the end of each mapping
*/
static const struct button_mapping button_context_standard[] = {
{ ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
LAST_ITEM_IN_LIST
}; /* button_context_standard */
static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
{ ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
{ ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL,BUTTON_RIGHT|BUTTON_REPEAT },
{ ACTION_WPS_ABSETB_NEXTDIR,BUTTON_POWER|BUTTON_RIGHT, BUTTON_POWER },
{ ACTION_WPS_ABSETA_PREVDIR,BUTTON_POWER|BUTTON_LEFT, BUTTON_POWER },
{ ACTION_WPS_ABRESET, BUTTON_POWER|BUTTON_UP, BUTTON_POWER },
{ ACTION_WPS_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
{ ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_VOLUP, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_VOLDOWN, BUTTON_SELECT },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_WPS_HOTKEY, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
static const struct button_mapping button_context_settings[] = {
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
{ ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_SETTINGS_INC, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings */
static const struct button_mapping button_context_list[] = {
#ifdef HAVE_VOLUME_IN_LIST
{ ACTION_LIST_VOLUP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_LIST_VOLUP, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_list */
static const struct button_mapping button_context_tree[] = {
{ ACTION_TREE_WPS, BUTTON_UP|BUTTON_REL, BUTTON_UP },
{ ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_TREE_HOTKEY, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_tree */
static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_without_combo */
static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_TREE_ROOT_INIT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_REC|BUTTON_LEFT },
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_with_combo */
static const struct button_mapping button_context_yesno[] = {
{ ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_yesno */
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_quickscreen */
static const struct button_mapping button_context_settings_right_is_inc[] = {
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_right_is_inc */
static const struct button_mapping button_context_pitchscreen[] = {
{ ACTION_PS_INC_SMALL, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_PS_INC_BIG, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_DEC_SMALL, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_PS_DEC_BIG, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_PS_EXIT, BUTTON_POWER, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_pitchscreen */
/** FM Radio Screen **/
#if CONFIG_TUNER
static const struct button_mapping button_context_radio[] = {
{ ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_FM_MENU, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_FM_PRESET, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
{ ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
#endif
static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC },
{ ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_KBD_DONE, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_keyboard */
static const struct button_mapping button_context_bmark[] = {
// { ACTION_BMS_DELETE, BUTTON_REC, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_bmark */
#ifdef USB_ENABLE_HID
static const struct button_mapping button_context_usb_hid[] = {
{ ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
LAST_ITEM_IN_LIST
}; /* button_context_usb_hid */
static const struct button_mapping button_context_usb_hid_mode_multimedia[] = {
{ ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MULTIMEDIA_VOLUME_MUTE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_USB_HID_MULTIMEDIA_PLAYBACK_PLAY_PAUSE, BUTTON_UP|BUTTON_REL, BUTTON_UP },
{ ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
}; /* button_context_usb_hid_mode_multimedia */
static const struct button_mapping button_context_usb_hid_mode_presentation[] = {
{ ACTION_USB_HID_PRESENTATION_SLIDESHOW_START, BUTTON_UP|BUTTON_REL, BUTTON_UP },
{ ACTION_USB_HID_PRESENTATION_SLIDESHOW_LEAVE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
{ ACTION_USB_HID_PRESENTATION_SLIDE_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_USB_HID_PRESENTATION_SLIDE_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_USB_HID_PRESENTATION_SLIDE_FIRST, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_USB_HID_PRESENTATION_SLIDE_LAST, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
{ ACTION_USB_HID_PRESENTATION_SCREEN_BLACK, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
{ ACTION_USB_HID_PRESENTATION_SCREEN_WHITE, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
{ ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_PRESENTATION_MOUSE_CLICK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_USB_HID_PRESENTATION_MOUSE_OVER, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
}; /* button_context_usb_hid_mode_presentation */
static const struct button_mapping button_context_usb_hid_mode_browser[] = {
{ ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_BROWSER_SCROLL_PAGE_UP, BUTTON_UP|BUTTON_REL, BUTTON_UP },
{ ACTION_USB_HID_BROWSER_SCROLL_PAGE_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
{ ACTION_USB_HID_BROWSER_ZOOM_IN, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
{ ACTION_USB_HID_BROWSER_ZOOM_OUT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
{ ACTION_USB_HID_BROWSER_ZOOM_RESET, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_USB_HID_BROWSER_ZOOM_RESET, BUTTON_UP|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_UP|BUTTON_DOWN },
{ ACTION_USB_HID_BROWSER_TAB_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_USB_HID_BROWSER_TAB_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_USB_HID_BROWSER_TAB_CLOSE, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER },
{ ACTION_USB_HID_BROWSER_HISTORY_BACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_USB_HID_BROWSER_HISTORY_FORWARD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
{ ACTION_USB_HID_BROWSER_VIEW_FULL_SCREEN, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
}; /* button_context_usb_hid_mode_browser */
#ifdef HAVE_USB_HID_MOUSE
static const struct button_mapping button_context_usb_hid_mode_mouse[] = {
{ ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_UP, BUTTON_SELECT|BUTTON_UP, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_UP_REP, BUTTON_SELECT|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_DOWN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_DOWN_REP, BUTTON_SELECT|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_LEFT, BUTTON_SELECT|BUTTON_LEFT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_LEFT_REP, BUTTON_SELECT|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_RIGHT, BUTTON_SELECT|BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_LDRAG_RIGHT_REP, BUTTON_SELECT|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_UP, BUTTON_POWER|BUTTON_UP, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_UP_REP, BUTTON_POWER|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_DOWN, BUTTON_POWER|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_DOWN_REP, BUTTON_POWER|BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_LEFT_REP, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_RDRAG_RIGHT_REP, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID)
}; /* button_context_usb_hid_mode_mouse */
#endif
#endif
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
const struct button_mapping* get_context_mapping(int context)
{
switch (context)
{
case CONTEXT_STD:
return button_context_standard;
case CONTEXT_WPS:
return button_context_wps;
case CONTEXT_LIST:
return button_context_list;
case CONTEXT_TREE:
case CONTEXT_MAINMENU:
if (global_settings.hold_lr_for_scroll_in_list)
return button_context_listtree_scroll_without_combo;
else
return button_context_listtree_scroll_with_combo;
case CONTEXT_CUSTOM|CONTEXT_TREE:
return button_context_tree;
case CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_TIME:
return button_context_settings;
case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_COLOURCHOOSER:
case CONTEXT_SETTINGS_EQ:
return button_context_settings_right_is_inc;
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
#if CONFIG_TUNER
case CONTEXT_FM:
return button_context_radio;
#endif
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:
return button_context_quickscreen;
case CONTEXT_PITCHSCREEN:
return button_context_pitchscreen;
#ifdef HAVE_RECORDING
case CONTEXT_RECSCREEN:
return button_context_recscreen;
#endif
case CONTEXT_KEYBOARD:
return button_context_keyboard;
#ifdef USB_ENABLE_HID
case CONTEXT_USB_HID:
return button_context_usb_hid;
case CONTEXT_USB_HID_MODE_MULTIMEDIA:
return button_context_usb_hid_mode_multimedia;
case CONTEXT_USB_HID_MODE_PRESENTATION:
return button_context_usb_hid_mode_presentation;
case CONTEXT_USB_HID_MODE_BROWSER:
return button_context_usb_hid_mode_browser;
#ifdef HAVE_USB_HID_MOUSE
case CONTEXT_USB_HID_MODE_MOUSE:
return button_context_usb_hid_mode_mouse;
#endif
#endif
default:
return button_context_standard;
}
return button_context_standard;
}

View File

@ -1,330 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Mark Arigo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/* Button Code Definitions for Iaudio[67] target */
#include "config.h"
#include "action.h"
#include "button.h"
#include "settings.h"
/* {Action Code, Button code, Prereq button code } */
/*
* The format of the list is as follows
* { Action Code, Button code, Prereq button code }
* if there's no need to check the previous button's value, use BUTTON_NONE
* Insert LAST_ITEM_IN_LIST at the end of each mapping
*/
static const struct button_mapping button_context_standard[] = {
{ ACTION_STD_PREV, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_STOP|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
{ ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
{ ACTION_STD_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
// { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_PLAY, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_standard */
static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLDOWN, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_WPS_VOLDOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_VOLUP, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_WPS_VOLUP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
{ ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
{ ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
{ ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
#ifdef HAVE_HOTKEY
{ ACTION_WPS_HOTKEY, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
#else
{ ACTION_WPS_VIEW_PLAYLIST, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
#endif
{ ACTION_WPS_STOP, BUTTON_STOP, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
static const struct button_mapping button_context_settings[] = {
{ ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
// { ACTION_SETTINGS_RESET, BUTTON_PLAY, BUTTON_NONE },
{ ACTION_SETTINGS_INC, BUTTON_VOLUP|BUTTON_REL, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_PREV, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings */
static const struct button_mapping button_context_list[] = {
#ifdef HAVE_VOLUME_IN_LIST
{ ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REL, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_list */
static const struct button_mapping button_context_tree[] = {
// { ACTION_TREE_WPS, BUTTON_REC|BUTTON_VOLUP, BUTTON_REC },
// { ACTION_TREE_STOP, BUTTON_REC|BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_REC|BUTTON_VOLUP },
#ifdef HAVE_HOTKEY
// { ACTION_TREE_HOTKEY, BUTTON_NONE, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_tree */
static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
#if 0
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_without_combo */
static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_TREE_ROOT_INIT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_REC|BUTTON_LEFT },
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_with_combo */
static const struct button_mapping button_context_yesno[] = {
// { ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_yesno */
static const struct button_mapping button_context_quickscreen[] = {
#if 0
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_VOLUP|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_quickscreen */
static const struct button_mapping button_context_settings_right_is_inc[] = {
#if 0
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_right_is_inc */
static const struct button_mapping button_context_pitchscreen[] = {
#if 0
{ ACTION_PS_INC_SMALL, BUTTON_VOLUP, BUTTON_NONE },
{ ACTION_PS_INC_BIG, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_DEC_SMALL, BUTTON_VOLDOWN, BUTTON_NONE },
{ ACTION_PS_DEC_BIG, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_RESET, BUTTON_PLAY, BUTTON_NONE },
{ ACTION_PS_EXIT, BUTTON_MENU, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_pitchscreen */
/** Recording Screen **/
#ifdef HAVE_RECORDING
static const struct button_mapping button_context_recscreen[] = {
{ ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
{ ACTION_REC_PAUSE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_REC_NEWFILE, BUTTON_REC|BUTTON_REL, BUTTON_REC },
{ ACTION_SETTINGS_INC, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_recscreen */
#endif
/** FM Radio Screen **/
#if CONFIG_TUNER
static const struct button_mapping button_context_radio[] = {
{ ACTION_FM_MENU, BUTTON_MENU | BUTTON_REL, BUTTON_MENU },
{ ACTION_FM_MODE, BUTTON_MENU | BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_FM_PRESET, BUTTON_STOP, BUTTON_NONE },
{ ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_NONE },
{ ACTION_FM_STOP, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
#endif
static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOLUP|BUTTON_REL, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_PLAY, BUTTON_REC },
{ ACTION_KBD_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE },
{ ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
{ ACTION_KBD_ABORT, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_keyboard */
static const struct button_mapping button_context_bmark[] = {
// { ACTION_BMS_DELETE, BUTTON_REC, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_bmark */
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
const struct button_mapping* get_context_mapping(int context)
{
switch (context)
{
case CONTEXT_STD:
return button_context_standard;
case CONTEXT_WPS:
return button_context_wps;
case CONTEXT_LIST:
return button_context_list;
case CONTEXT_TREE:
case CONTEXT_MAINMENU:
if (global_settings.hold_lr_for_scroll_in_list)
return button_context_listtree_scroll_without_combo;
else
return button_context_listtree_scroll_with_combo;
case CONTEXT_CUSTOM|CONTEXT_TREE:
return button_context_tree;
case CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_TIME:
return button_context_settings;
case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_COLOURCHOOSER:
case CONTEXT_SETTINGS_EQ:
return button_context_settings_right_is_inc;
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
#if CONFIG_TUNER
case CONTEXT_FM:
return button_context_radio;
#endif
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:
return button_context_quickscreen;
case CONTEXT_PITCHSCREEN:
return button_context_pitchscreen;
#ifdef HAVE_RECORDING
case CONTEXT_RECSCREEN:
return button_context_recscreen;
#endif
case CONTEXT_KEYBOARD:
return button_context_keyboard;
default:
return button_context_standard;
}
return button_context_standard;
}

View File

@ -1,318 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/* Button Code Definitions for Sandisk c200 target */
#include "config.h"
#include "action.h"
#include "button.h"
#include "settings.h"
/* {Action Code, Button code, Prereq button code } */
/*
* The format of the list is as follows
* { Action Code, Button code, Prereq button code }
* if there's no need to check the previous button's value, use BUTTON_NONE
* Insert LAST_ITEM_IN_LIST at the end of each mapping
*/
static const struct button_mapping button_context_standard[] = {
{ ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
// { ACTION_STD_QUICKSCREEN, BUTTON_REC|BUTTON_SELECT, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_standard */
static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_PLAY, BUTTON_POWERPLAY|BUTTON_REL, BUTTON_POWERPLAY },
{ ACTION_WPS_STOP, BUTTON_POWERPLAY|BUTTON_REPEAT, BUTTON_POWERPLAY },
{ ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
{ ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
{ ACTION_WPS_ABSETB_NEXTDIR,BUTTON_MODE|BUTTON_RIGHT, BUTTON_MODE },
{ ACTION_WPS_ABSETA_PREVDIR,BUTTON_MODE|BUTTON_LEFT, BUTTON_MODE },
{ ACTION_WPS_ABRESET, BUTTON_MODE|BUTTON_UP, BUTTON_MODE },
{ ACTION_WPS_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
#if 0
{ ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT },
{ ACTION_WPS_CONTEXT, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_VOLDOWN },
{ ACTION_WPS_QUICKSCREEN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_VOLDOWN },
#endif
LAST_ITEM_IN_LIST
}; /* button_context_wps */
static const struct button_mapping button_context_settings[] = {
{ ACTION_STD_CANCEL, BUTTON_REC, BUTTON_NONE },
{ ACTION_SETTINGS_RESET, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings */
static const struct button_mapping button_context_list[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_list */
static const struct button_mapping button_context_tree[] = {
// { ACTION_TREE_WPS, BUTTON_REC|BUTTON_VOLUP, BUTTON_REC },
// { ACTION_TREE_STOP, BUTTON_REC|BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_REC|BUTTON_VOLUP },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_tree */
static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
{ ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_without_combo */
static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_TREE_ROOT_INIT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_REC|BUTTON_LEFT },
// { ACTION_TREE_PGLEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_TREE_PGRIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
}; /* button_context_listtree_scroll_with_combo */
static const struct button_mapping button_context_yesno[] = {
{ ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_yesno */
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MODE|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_quickscreen */
static const struct button_mapping button_context_settings_right_is_inc[] = {
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_right_is_inc */
static const struct button_mapping button_context_pitchscreen[] = {
{ ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE },
{ ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
{ ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_PS_EXIT, BUTTON_MODE, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_pitchscreen */
/** Recording Screen **/
#ifdef HAVE_RECORDING
static const struct button_mapping button_context_recscreen[] = {
{ ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_REC_PAUSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_STD_CANCEL, BUTTON_MODE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_REC_NEWFILE, BUTTON_REC|BUTTON_REL, BUTTON_REC },
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_recscreen */
#endif
/** FM Radio Screen **/
#if CONFIG_TUNER
static const struct button_mapping button_context_radio[] = {
{ ACTION_NONE, BUTTON_UP, BUTTON_NONE },
{ ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_FM_STOP, BUTTON_POWERPLAY|BUTTON_REPEAT, BUTTON_POWERPLAY },
{ ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE },
{ ACTION_FM_EXIT, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_FM_PLAY, BUTTON_POWERPLAY|BUTTON_REL, BUTTON_POWERPLAY },
{ ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
{ ACTION_SETTINGS_INCREPEAT,BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
#endif
static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE },
// { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN, BUTTON_NONE },
// { ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_VOLDOWN|BUTTON_REPEAT,BUTTON_NONE },
// { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC },
{ ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
{ ACTION_KBD_DONE, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_KBD_ABORT, BUTTON_MODE, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_keyboard */
static const struct button_mapping button_context_bmark[] = {
// { ACTION_BMS_DELETE, BUTTON_REC, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_bmark */
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
const struct button_mapping* get_context_mapping(int context)
{
switch (context)
{
case CONTEXT_STD:
return button_context_standard;
case CONTEXT_WPS:
return button_context_wps;
case CONTEXT_LIST:
return button_context_list;
case CONTEXT_TREE:
case CONTEXT_MAINMENU:
if (global_settings.hold_lr_for_scroll_in_list)
return button_context_listtree_scroll_without_combo;
else
return button_context_listtree_scroll_with_combo;
case CONTEXT_CUSTOM|CONTEXT_TREE:
return button_context_tree;
case CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_TIME:
return button_context_settings;
case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_COLOURCHOOSER:
case CONTEXT_SETTINGS_EQ:
return button_context_settings_right_is_inc;
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
#if CONFIG_TUNER
case CONTEXT_FM:
return button_context_radio;
#endif
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:
return button_context_quickscreen;
case CONTEXT_PITCHSCREEN:
return button_context_pitchscreen;
#ifdef HAVE_RECORDING
case CONTEXT_RECSCREEN:
return button_context_recscreen;
#endif
case CONTEXT_KEYBOARD:
return button_context_keyboard;
default:
return button_context_standard;
}
return button_context_standard;
}

View File

@ -15080,7 +15080,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15095,7 +15095,7 @@
<dest>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15110,7 +15110,7 @@
<voice>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."

View File

@ -15239,7 +15239,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15254,7 +15254,7 @@
<dest>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15269,7 +15269,7 @@
<voice>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."

View File

@ -15031,7 +15031,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15046,7 +15046,7 @@
<dest>
*: "Premere LEFT per annullare."
android,hifietma*,zenvision: "Premere BACK per annullare."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Premere POWER per annullare."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Premere POWER per annullare."
ihifi760,ihifi960: "Premere due volte RETURN per annullare."
ihifi770,ihifi770c,ihifi800: "Premere HOME per annullare."
iriverh10,samsungyh*: "Premere due volte LEFT per annullare."
@ -15061,7 +15061,7 @@
<voice>
*: "Premere LEFT per annullare."
android,hifietma*,zenvision: "Premere BACK per annullare."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Premere POWER per annullare."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Premere POWER per annullare."
ihifi760,ihifi960: "Premere due volte RETURN per annullare."
ihifi770,ihifi770c,ihifi800: "Premere HOME per annullare."
iriverh10,samsungyh*: "Premere due volte LEFT per annullare."

View File

@ -15104,7 +15104,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15120,7 +15120,7 @@
*: "Druk op LINKS om te annuleren."
android: "Druk op RECHTS om te annuleren."
hifietma*,zenvision: "Druk op BACK om te annuleren."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Druk op POWER om te annuleren."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Druk op POWER om te annuleren."
ihifi760,ihifi960: "Dubbeltik op RETURN om te annuleren."
ihifi770,ihifi770c,ihifi800: "Druk op HOME om te annuleren."
iriverh10,samsungyh*: "Dubbeltik op LINKS om te annuleren."
@ -15136,7 +15136,7 @@
*: "Druk op LINKS om te annuleren."
android: "Druk op RECHTS om te annuleren."
hifietma*,zenvision: "Druk op BACK om te annuleren."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Druk op POWER om te annuleren."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Druk op POWER om te annuleren."
ihifi760,ihifi960: "Dubbeltik op RETURN om te annuleren."
ihifi770,ihifi770c,ihifi800: "Druk op HOME om te annuleren."
iriverh10,samsungyh*: "Dubbeltik op LINKS om te annuleren."

View File

@ -15038,7 +15038,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15053,7 +15053,7 @@
<dest>
*: "Wciśnij LEFT, aby anulować."
android,hifietma*,zenvision: "Wciśnij BACK, aby anulować."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Wciśnij POWER, aby anulować."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Wciśnij POWER, aby anulować."
ihifi760,ihifi960: "Podwójnie stuknij RETURN, aby anulować."
ihifi770,ihifi770c,ihifi800: "Wciśnij HOME, aby anulować."
iriverh10,samsungyh*: "Podwójnie stuknij LEFT, aby anulować."
@ -15068,7 +15068,7 @@
<voice>
*: "Wciśnij left, aby anulować."
android,hifietma*,zenvision: "Wciśnij bak, aby anulować."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Wciśnij pałer, aby anulować."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Wciśnij pałer, aby anulować."
ihifi760,ihifi960: "Podwójnie stuknij ritern, aby anulować."
ihifi770,ihifi770c,ihifi800: "Wciśnij hołm, aby anulować."
iriverh10,samsungyh*: "Podwójnie stuknij left, aby anulować."

View File

@ -15161,7 +15161,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15176,7 +15176,7 @@
<dest>
*: "Нажмите ВЛЕВО для отмены."
android,hifietma*,zenvision: "Нажмите НАЗАД для отмены."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Нажмите ВКЛ. для отмены."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Нажмите ВКЛ. для отмены."
ihifi760,ihifi960: "Дважды нажмите ВОЗВРАТ для отмены."
ihifi770,ihifi770c,ihifi800: "Нажмите ДОМОЙ для отмены."
iriverh10,samsungyh*: "Дважды нажмите ВЛЕВО для отмены."
@ -15191,7 +15191,7 @@
<voice>
*: "Нажмите кнопку Влево для отмены."
android,hifietma*,zenvision: "Нажмите кнопку Назад для отмены."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Нажмите кнопку включения для отмены."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Нажмите кнопку включения для отмены."
ihifi760,ihifi960: "Дважды нажмите кнопку Назад для отмены."
ihifi770,ihifi770c,ihifi800: "Нажмите кнопку Домой для отмены."
iriverh10,samsungyh*: "Дважды нажмите кнопку Влево для отмены."

View File

@ -15056,7 +15056,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15071,7 +15071,7 @@
<dest>
*: "Stlačte LEFT pre zrušenie"
android: "Stlačte späť pre zrušenie"
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Stlačte POWER pre zrušenie"
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Stlačte POWER pre zrušenie"
hifietma*,zenvision: "Stlačte BACK Pre zrušenie"
ihifi760,ihifi960: "Poklepte RETURN pre zrušenie"
ihifi770,ihifi770c,ihifi800: "Stlačte HOME pre zrušenie"
@ -15087,7 +15087,7 @@
<voice>
*: "Stlačte LEFT pre zrušenie"
android: "Stlačte späť pre zrušenie"
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Stlačte POWER pre zrušenie"
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Stlačte POWER pre zrušenie"
hifietma*,zenvision: "Stlačte BACK Pre zrušenie"
ihifi760,ihifi960: "Poklepte RETURN pre zrušenie"
ihifi770,ihifi770c,ihifi800: "Stlačte HOME pre zrušenie"

View File

@ -15318,7 +15318,7 @@
<source>
*: "Press LEFT to cancel."
android,hifietma*,zenvision: "Press BACK to cancel."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Press POWER to cancel."
ihifi760,ihifi960: "Double tap RETURN to cancel."
ihifi770,ihifi770c,ihifi800: "Press HOME to cancel."
iriverh10,samsungyh*: "Double tap LEFT to cancel."
@ -15333,7 +15333,7 @@
<dest>
*: "Притисните LEFT за прекид."
android,hifietma*,zenvision: "Притисните BACK за прекид."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Притисните POWER за прекид."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Притисните POWER за прекид."
ihifi760,ihifi960: "Дупли тап RETURN за прекид."
ihifi770,ihifi770c,ihifi800: "Притисните HOME за прекид."
iriverh10,samsungyh*: "Дупли тап LEFT за прекид."
@ -15348,7 +15348,7 @@
<voice>
*: "Притисните LEFT за прекид."
android,hifietma*,zenvision: "Притисните BACK за прекид."
cowond2,creativezenxfi2,iaudio7,ibassodx50,ibassodx90,mrobe500,ondavx747: "Притисните POWER за прекид."
cowond2,creativezenxfi2,ibassodx50,ibassodx90,mrobe500,ondavx747: "Притисните POWER за прекид."
ihifi760,ihifi960: "Дупли тап RETURN за прекид."
ihifi770,ihifi770c,ihifi800: "Притисните HOME за прекид."
iriverh10,samsungyh*: "Дупли тап LEFT за прекид."

View File

@ -141,13 +141,6 @@
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_OFF_TXT "POWER"
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_ON_TXT "PLAY - start"
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_ON_TXT "PLAY - start"

View File

@ -269,19 +269,6 @@ F3: equal to "="
#define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_CLEAR BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define CALCULATOR_LEFT BUTTON_LEFT
#define CALCULATOR_RIGHT BUTTON_RIGHT
#define CALCULATOR_UP BUTTON_VOLUP
#define CALCULATOR_DOWN BUTTON_VOLDOWN
#define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_INPUT BUTTON_PLAY
#define CALCULATOR_CALC BUTTON_MENU
#define CALCULATOR_CLEAR BUTTON_STOP
#define CALCULATOR_RC_QUIT (BUTTON_MENU|BUTTON_PLAY)
#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD)
#define CALCULATOR_LEFT BUTTON_LEFT

View File

@ -157,17 +157,6 @@
#define CHC_SETTINGS_DEC BUTTON_MINUS
#define CHC_SETTINGS_CANCEL BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET BUTTON_LEFT
#define CHC_MENU BUTTON_MENU
#define CHC_SETTINGS_INC BUTTON_VOLUP
#define CHC_SETTINGS_DEC BUTTON_VOLDOWN
#define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_OK2 BUTTON_LEFT
#define CHC_SETTINGS_CANCEL BUTTON_POWER
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define CHC_QUIT BUTTON_BACK
#define CHC_STARTSTOP BUTTON_PLAY

View File

@ -108,12 +108,6 @@ Still To do:
#define QUIT BUTTON_POWER
#define ACTION2 BUTTON_PLUS
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTION2 BUTTON_STOP
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define QUIT BUTTON_BACK
#define ACTION BUTTON_UP

View File

@ -100,14 +100,6 @@
#define CLIX_BUTTON_UP BUTTON_SCROLL_UP
#define CLIX_BUTTON_DOWN BUTTON_SCROLL_DOWN
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_LEFT BUTTON_LEFT
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
#define CLIX_BUTTON_CLICK BUTTON_PLAY
#define CLIX_BUTTON_UP BUTTON_STOP
#define CLIX_BUTTON_DOWN BUTTON_PLAY
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_LEFT BUTTON_LEFT

View File

@ -171,16 +171,6 @@
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define CUBE_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
#define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_RIGHT
#define CUBE_PREV BUTTON_LEFT
#define CUBE_INC BUTTON_VOLUP
#define CUBE_DEC BUTTON_VOLDOWN
#define CUBE_MODE BUTTON_MENU
#define CUBE_PAUSE BUTTON_PLAY
#define CUBE_HIGHSPEED BUTTON_STOP
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define CUBE_QUIT BUTTON_BACK
#define CUBE_NEXT BUTTON_RIGHT

View File

@ -316,16 +316,6 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ENTER BUTTON_MENU
#define DOOMBUTTON_WEAPON BUTTON_DISPLAY
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define DOOMBUTTON_ESC BUTTON_POWER
#define DOOMBUTTON_UP BUTTON_STOP
#define DOOMBUTTON_DOWN BUTTON_PLAY
#define DOOMBUTTON_LEFT BUTTON_LEFT
#define DOOMBUTTON_RIGHT BUTTON_RIGHT
#define DOOMBUTTON_SHOOT BUTTON_VOLUP
#define DOOMBUTTON_OPEN BUTTON_VOLDOWN
#define DOOMBUTTON_ENTER BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define DOOMBUTTON_UP BUTTON_UP
#define DOOMBUTTON_DOWN BUTTON_DOWN

View File

@ -207,17 +207,6 @@
#elif CONFIG_KEYPAD == COWON_D2_PAD
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define IMGVIEW_ZOOM_IN BUTTON_VOLUP
#define IMGVIEW_ZOOM_OUT BUTTON_VOLDOWN
#define IMGVIEW_UP BUTTON_STOP
#define IMGVIEW_DOWN BUTTON_PLAY
#define IMGVIEW_LEFT BUTTON_LEFT
#define IMGVIEW_RIGHT BUTTON_RIGHT
#define IMGVIEW_NEXT (BUTTON_PLAY|BUTTON_VOLUP)
#define IMGVIEW_PREVIOUS (BUTTON_PLAY|BUTTON_VOLDOWN)
#define IMGVIEW_MENU BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define IMGVIEW_ZOOM_IN BUTTON_PLAY

View File

@ -163,13 +163,6 @@
#define RIGHT BUTTON_PLUS
#define FIRE BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_PLAY
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define QUIT BUTTON_BACK

View File

@ -201,16 +201,6 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define JEWELS_CANCEL BUTTON_POWER
#define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define JEWELS_UP BUTTON_STOP
#define JEWELS_DOWN BUTTON_PLAY
#define JEWELS_LEFT BUTTON_LEFT
#define JEWELS_RIGHT BUTTON_RIGHT
#define JEWELS_SELECT BUTTON_MENU
#define JEWELS_CANCEL BUTTON_POWER
#define HK_SELECT "MENU"
#define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define JEWELS_UP BUTTON_UP
#define JEWELS_DOWN BUTTON_DOWN

View File

@ -161,15 +161,6 @@ const struct button_mapping pla_main_ctx[] =
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
{ PLA_UP, BUTTON_STOP, BUTTON_NONE },
{ PLA_DOWN, BUTTON_PLAY, BUTTON_NONE },
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
{ PLA_UP, BUTTON_UP, BUTTON_NONE},
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
@ -394,12 +385,6 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
{PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
{PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT BUTTON_NONE},
#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD)
{PLA_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
{PLA_EXIT, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE},

View File

@ -140,14 +140,6 @@
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define MIDI_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_RIGHT
#define MIDI_REWIND BUTTON_LEFT
#define MIDI_VOL_UP BUTTON_STOP
#define MIDI_VOL_DOWN BUTTON_PLAY
#define MIDI_PLAYPAUSE BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define MIDI_QUIT BUTTON_BACK
#define MIDI_FFWD BUTTON_RIGHT

View File

@ -2443,12 +2443,6 @@ static void get_mp3_filename(const char *wav_name)
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define MP3ENC_DONE BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define MP3ENC_PREV BUTTON_LEFT
#define MP3ENC_NEXT BUTTON_RIGHT
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define MP3ENC_PREV BUTTON_UP
#define MP3ENC_NEXT BUTTON_DOWN

View File

@ -142,14 +142,6 @@ struct mpeg_settings settings;
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define MPEG_START_TIME_SELECT BUTTON_MENU
#define MPEG_START_TIME_LEFT BUTTON_LEFT
#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
#define MPEG_START_TIME_UP BUTTON_STOP
#define MPEG_START_TIME_DOWN BUTTON_PLAY
#define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define MPEG_START_TIME_SELECT BUTTON_SELECT
#define MPEG_START_TIME_LEFT BUTTON_LEFT

View File

@ -254,15 +254,6 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_VOLDOWN BUTTON_MINUS
#define MPEG_VOLUP BUTTON_PLUS
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define MPEG_MENU BUTTON_MENU
#define MPEG_STOP BUTTON_STOP
#define MPEG_PAUSE BUTTON_PLAY
#define MPEG_VOLDOWN BUTTON_VOLDOWN
#define MPEG_VOLUP BUTTON_VOLUP
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define MPEG_MENU BUTTON_MENU
#define MPEG_STOP BUTTON_BACK

View File

@ -169,18 +169,6 @@
#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define PACMAN_UP BUTTON_STOP
#define PACMAN_DOWN BUTTON_PLAY
#define PACMAN_LEFT BUTTON_LEFT
#define PACMAN_RIGHT BUTTON_RIGHT
#define PACMAN_1UP BUTTON_VOLDOWN
#define PACMAN_2UP BUTTON_VOLUP
#define PACMAN_COIN_PRE BUTTON_MENU
#define PACMAN_COIN (BUTTON_MENU | BUTTON_PLAY)
#define PACMAN_MENU BUTTON_POWER
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define PACMAN_UP BUTTON_UP

View File

@ -103,10 +103,8 @@ const struct button_mapping pf_context_buttons[] =
{PF_SELECT, BUTTON_CENTER, BUTTON_NONE},
{PF_BACK, BUTTON_BOTTOMRIGHT, BUTTON_NONE},
#endif
#if CONFIG_KEYPAD == SANSA_C100_PAD
{PF_QUIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
#elif CONFIG_KEYPAD == CREATIVEZV_PAD || CONFIG_KEYPAD == CREATIVEZVM_PAD || \
CONFIG_KEYPAD == PHILIPS_HDD1630_PAD || CONFIG_KEYPAD == IAUDIO67_PAD || \
#if CONFIG_KEYPAD == CREATIVEZV_PAD || CONFIG_KEYPAD == CREATIVEZVM_PAD || \
CONFIG_KEYPAD == PHILIPS_HDD1630_PAD || \
CONFIG_KEYPAD == GIGABEAT_PAD || CONFIG_KEYPAD == GIGABEAT_S_PAD || \
CONFIG_KEYPAD == MROBE100_PAD || CONFIG_KEYPAD == MROBE500_PAD || \
CONFIG_KEYPAD == PHILIPS_SA9200_PAD || CONFIG_KEYPAD == SANSA_CLIP_PAD || \
@ -137,8 +135,6 @@ const struct button_mapping pf_context_buttons[] =
|| (CONFIG_KEYPAD == IPOD_4G_PAD) \
|| (CONFIG_KEYPAD == MPIO_HD300_PAD)
{PF_QUIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU},
#elif CONFIG_KEYPAD == LOGIK_DAX_PAD
{PF_QUIT, BUTTON_POWERPLAY|BUTTON_REPEAT, BUTTON_POWERPLAY},
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
{PF_QUIT, BUTTON_RC_REC, BUTTON_NONE},
#elif CONFIG_KEYPAD == MEIZU_M6SL_PAD

View File

@ -54,7 +54,7 @@ OUTPUT_FORMAT(elf32-littlemips)
#elif CONFIG_CPU==S3C2440
#include "cpu.h"
/* must be 16Kb (0x4000) aligned */
#define TTB_SIZE (0x4000)
#define TTB_SIZE (0x4000)
#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGIN_BUFFER_SIZE - CODEC_SIZE - LCD_BUFFER_SIZE - TTB_SIZE
#elif CONFIG_CPU==TCC7801
@ -127,7 +127,7 @@ OUTPUT_FORMAT(elf32-littlemips)
/* The bit of IRAM that is available is used in the core */
#define IRAMSIZE 0
#elif defined(CPU_TCC780X) || defined(CPU_TCC77X)
#elif defined(CPU_TCC780X)
#define DRAMORIG 0x20000000
#if CONFIG_CPU==TCC7801
#define IRAMORIG 0x1000c000
@ -272,7 +272,7 @@ SECTIONS
*(.idata)
#endif
} > PLUGIN_RAM
#if NOCACHE_BASE != 0
.ncdata . + NOCACHE_BASE :
{
@ -281,7 +281,7 @@ SECTIONS
. = ALIGN(CACHEALIGN_SIZE);
/* EABI currently needs these defined here, otherwise .iram and .bss can
sometimes have an incorrect load address, breaking codecs and plugins. */
bssaddr = . - NOCACHE_BASE;
bssaddr = . - NOCACHE_BASE;
#if defined(IRAMSIZE) && IRAMSIZE != 0
iramcopy = . - NOCACHE_BASE;
#endif
@ -314,7 +314,7 @@ SECTIONS
*(COMMON)
. = ALIGN(0x4);
} > PLUGIN_RAM
#if NOCACHE_BASE != 0
.ncbss . + NOCACHE_BASE (NOLOAD) :
{
@ -354,7 +354,7 @@ SECTIONS
. = ALIGN(0x4);
iend = .;
} > PLUGIN_IRAM
loadendaddr = MAX(plugin_end_addr, LOADADDR(.iram) + SIZEOF(.iram));
#else
loadendaddr = plugin_end_addr;

View File

@ -139,14 +139,6 @@
#elif (CONFIG_KEYPAD == COWON_D2_PAD)
#define PONG_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_MENU
#define PONG_LEFT_UP BUTTON_VOLUP
#define PONG_LEFT_DOWN BUTTON_VOLDOWN
#define PONG_RIGHT_UP BUTTON_RIGHT
#define PONG_RIGHT_DOWN BUTTON_LEFT
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define PONG_QUIT BUTTON_BACK
#define PONG_LEFT_UP BUTTON_UP

View File

@ -136,15 +136,6 @@
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_MENU BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_STOP
#define REVERSI_BUTTON_DOWN BUTTON_PLAY
#define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_VOLUP
#define REVERSI_BUTTON_MENU BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define REVERSI_BUTTON_QUIT BUTTON_BACK
#define REVERSI_BUTTON_UP BUTTON_UP

View File

@ -205,17 +205,6 @@
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_RESTART BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_VOLDOWN
#define ROCKBLOX_ROTATE_CW BUTTON_VOLUP
#define ROCKBLOX_DOWN BUTTON_STOP
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#define ROCKBLOX_DROP BUTTON_PLAY
#define ROCKBLOX_RESTART BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define ROCKBLOX_OFF BUTTON_BACK
#define ROCKBLOX_ROTATE_CCW BUTTON_UP

View File

@ -312,20 +312,6 @@
#define SOKOBAN_LEVEL_UP BUTTON_PLUS
#define SOKOBAN_MENU_NAME "[MENU]"
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define SOKOBAN_LEFT BUTTON_LEFT
#define SOKOBAN_RIGHT BUTTON_RIGHT
#define SOKOBAN_UP BUTTON_STOP
#define SOKOBAN_DOWN BUTTON_PLAY
#define SOKOBAN_MENU BUTTON_MENU
#define SOKOBAN_UNDO BUTTON_VOLDOWN
#define SOKOBAN_REDO BUTTON_VOLUP
#define SOKOBAN_PAUSE (BUTTON_MENU|BUTTON_LEFT)
#define BUTTON_SAVE (BUTTON_MENU|BUTTON_PLAY)
#define BUTTON_SAVE_NAME "MENU+PLAY"
#define SOKOBAN_RC_MENU (BUTTON_MENU|BUTTON_STOP)
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define SOKOBAN_LEFT BUTTON_LEFT
#define SOKOBAN_RIGHT BUTTON_RIGHT

View File

@ -133,15 +133,6 @@
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define STOPWATCH_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define STOPWATCH_QUIT BUTTON_MENU
#define STOPWATCH_START_STOP BUTTON_PLAY
#define STOPWATCH_RESET_TIMER BUTTON_STOP
#define STOPWATCH_LAP_TIMER BUTTON_LEFT
#define STOPWATCH_SCROLL_UP BUTTON_VOLUP
#define STOPWATCH_SCROLL_DOWN BUTTON_VOLDOWN
#define STOPWATCH_RC_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define STOPWATCH_QUIT BUTTON_BACK
#define STOPWATCH_START_STOP BUTTON_PLAY

View File

@ -181,16 +181,6 @@
#define SUDOKU_BUTTON_QUIT BUTTON_POWER
#define SUDOKU_BUTTON_MENU BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_POWER
#define SUDOKU_BUTTON_UP BUTTON_STOP
#define SUDOKU_BUTTON_DOWN BUTTON_PLAY
#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
#define SUDOKU_BUTTON_TOGGLE BUTTON_VOLUP
#define SUDOKU_BUTTON_MENU BUTTON_MENU
#define SUDOKU_BUTTON_POSSIBLE BUTTON_VOLDOWN
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_BACK
#define SUDOKU_BUTTON_UP BUTTON_UP

View File

@ -247,18 +247,6 @@
#define TV_SCROLL_DOWN BUTTON_PLUS
#define TV_BOOKMARK (BUTTON_MENU|BUTTON_PLUS)
/* Cowon iAudio 7 keys */
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOLUP
#define TV_SCROLL_DOWN BUTTON_VOLDOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_RC_QUIT BUTTON_STOP
#define TV_BOOKMARK (BUTTON_LEFT|BUTTON_PLAY)
/* Creative Zen Vision:M keys */
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define TV_QUIT BUTTON_BACK

View File

@ -146,15 +146,6 @@
#define QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define UP BUTTON_STOP
#define DOWN BUTTON_PLAY
#define PAUSE BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define QUIT BUTTON_BACK

View File

@ -110,14 +110,6 @@
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define ZX_MENU (BUTTON_MENU|BUTTON_REL)
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define ZX_UP BUTTON_STOP
#define ZX_DOWN BUTTON_PLAY
#define ZX_LEFT BUTTON_LEFT
#define ZX_RIGHT BUTTON_RIGHT
#define ZX_SELECT BUTTON_VOLUP
#define ZX_MENU BUTTON_MENU
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define ZX_UP BUTTON_UP
#define ZX_DOWN BUTTON_DOWN

View File

@ -113,15 +113,6 @@
#define KBD_ABORT BUTTON_POWER
#elif CONFIG_KEYPAD == IAUDIO67_PAD
#define KBD_SELECT BUTTON_MENU
#define KBD_ABORT BUTTON_POWER
#define KBD_LEFT BUTTON_LEFT
#define KBD_RIGHT BUTTON_RIGHT
#define KBD_UP BUTTON_STOP
#define KBD_DOWN BUTTON_PLAY
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define KBD_SELECT BUTTON_SELECT

View File

@ -41,7 +41,7 @@ iriver_h1x0.c
iriver_h300.c
#elif defined(MROBE_500)
mrobe500.c
#elif defined(CPU_TCC77X) || defined(CPU_TCC780X)
#elif defined(CPU_TCC780X)
telechips.c
show_logo.c
#elif defined(MEIZU_M6SL)

View File

@ -392,8 +392,6 @@ drivers/rtc/rtc_rx5x348ab.c
drivers/rtc/rtc_mr100.c
#elif (CONFIG_RTC == RTC_MC13783)
drivers/rtc/rtc_mc13783.c
#elif (CONFIG_RTC == RTC_TCC77X)
drivers/rtc/rtc_tcc77x.c
#elif (CONFIG_RTC == RTC_JZ4740)
drivers/rtc/rtc_jz4740.c
#elif (CONFIG_RTC == RTC_JZ4760)
@ -603,7 +601,7 @@ target/arm/ipod/powermgmt-ipod-pcf.c
target/arm/pp/i2c-pp.c
#elif CONFIG_I2C == I2C_PNX0101
target/arm/pnx0101/i2c-pnx0101.c
#elif CONFIG_I2C == I2C_TCC780X || CONFIG_I2C == I2C_TCC77X
#elif CONFIG_I2C == I2C_TCC780X
target/arm/i2c-telechips.c
#elif CONFIG_I2C == I2C_S3C2440
target/arm/s3c2440/i2c-s3c2440.c
@ -749,8 +747,6 @@ target/arm/pnx0101/crt0-pnx0101.S
target/arm/tms320dm320/crt0.S
#elif CONFIG_CPU==S3C2440
target/arm/s3c2440/crt0.S
#elif defined(CPU_TCC77X)
target/arm/tcc77x/crt0.S
#elif defined(CPU_TCC780X)
target/arm/tcc780x/crt0.S
#elif CONFIG_CPU==IMX31L
@ -897,28 +893,8 @@ target/arm/s5l8700/ipodnano2g/adc-nano2g.c
target/arm/s5l8700/adc-s5l8700.c
# endif
#elif CONFIG_I2C == I2C_TCC77X
target/arm/tcc77x/adc-tcc77x.c
#endif /* CONFIG_I2C */
#ifdef CPU_TCC77X
target/arm/usb-tcc.c
target/arm/tcc77x/kernel-tcc77x.c
target/arm/tcc77x/system-tcc77x.c
target/arm/tcc77x/timer-tcc77x.c
# ifndef IAUDIO7
target/arm/tcc77x/powermgmt-tcc77x.c
# endif /* !IAUDIO7 */
# ifndef BOOTLOADER
# ifndef SANSA_C100
target/arm/wmcodec-telechips.c
# endif /* !C100 */
target/arm/pcm-telechips.c
target/arm/tcc77x/debug-tcc77x.c
# endif /* !BOOTLOADER */
#endif /* CPU_TCC77X */
#if CONFIG_CPU == S5L8700 || CONFIG_CPU == S5L8701
target/arm/s5l8700/kernel-s5l8700.c
target/arm/s5l8700/system-s5l8700.c
@ -1386,34 +1362,6 @@ target/arm/pnx0101/pcm-pnx0101.c
#endif /* BOOTLOADER */
#endif /* IRIVER_IFP7XX */
#ifdef LOGIK_DAX
drivers/nand_id.c
target/arm/tcc77x/logikdax/button-logikdax.c
target/arm/tcc77x/logikdax/power-logikdax.c
#ifndef BOOTLOADER
target/arm/tcc77x/logikdax/audio-logikdax.c
#endif /* BOOTLOADER */
#endif /* LOGIK_DAX */
#ifdef SANSA_M200
drivers/nand_id.c
target/arm/tcc77x/m200/button-m200.c
target/arm/tcc77x/m200/power-m200.c
#ifndef BOOTLOADER
target/arm/tcc77x/m200/audio-m200.c
#endif /* BOOTLOADER */
#endif /* SANSA_M200 */
#ifdef SANSA_C100
drivers/nand_id.c
target/arm/tcc77x/c100/lcd-S6B33B2.c
target/arm/tcc77x/c100/button-c100.c
target/arm/tcc77x/c100/power-c100.c
#ifndef BOOTLOADER
target/arm/tcc77x/c100/audio-c100.c
#endif /* BOOTLOADER */
#endif /* SANSA_C100 */
#ifdef SANSA_CLIPPLUS
target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
target/arm/as3525/sansa-clipplus/button-clip.c
@ -1525,19 +1473,6 @@ target/arm/as3525/sansa-clipzip/powermgmt-clipzip.c
#endif /* !BOOTLOADER */
#endif /* SANSA_CLIPZIP */
#ifdef IAUDIO_7
drivers/nand_id.c
drivers/pcf50606.c
target/arm/tcc77x/iaudio7/lcd-iaudio7.c
target/arm/tcc77x/iaudio7/power-iaudio7.c
target/arm/tcc77x/iaudio7/powermgmt-iaudio7.c
target/arm/tcc77x/iaudio7/button-iaudio7.c
target/arm/tcc77x/iaudio7/ata2501.c
#ifndef BOOTLOADER
target/arm/tcc77x/iaudio7/audio-iaudio7.c
#endif /* BOOTLOADER */
#endif /* IAUDIO_7 */
#ifdef COWON_D2
drivers/lcd-memframe.c
drivers/nand_id.c

View File

@ -1,81 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "rtc.h"
#include "system.h"
#include <stdbool.h>
void rtc_init(void)
{
}
int rtc_read_datetime(struct tm *tm)
{
(void)tm;
return 0;
}
int rtc_write_datetime(const struct tm *tm)
{
(void)tm;
return 1;
}
#ifdef HAVE_RTC_ALARM
/**
* Checks to see if an alarm interrupt has triggered since last we checked.
*/
bool rtc_check_alarm_flag(void)
{
}
/**
* Enables or disables the alarm.
*/
void rtc_enable_alarm(bool enable)
{
}
/**
* Check if alarm caused unit to start.
*/
bool rtc_check_alarm_started(bool release_alarm)
{
}
void rtc_set_alarm(int h, int m)
{
/* Convert to BCD */
// pcf50605_write(0x12, ((m/10) << 4) | m%10);
// pcf50605_write(0x13, ((h/10) << 4) | h%10);
}
void rtc_get_alarm(int *h, int *m)
{
char buf[2];
/* Convert from BCD */
// *m = ((buf[0] >> 4) & 0x7)*10 + (buf[0] & 0x0f);
// *h = ((buf[1] >> 4) & 0x3)*10 + (buf[1] & 0x0f);
}
#endif /* HAVE_RTC_ALARM */

View File

@ -80,16 +80,6 @@ static int fd_log = -1;
#define FM_CLOCK_PIN 4
#define FM_DATA_PIN 5
#elif defined(IAUDIO_7)
#define TUNER_GPIO_INPUT_VAL GPIOA
#define TUNER_GPIO_OUTPUT_EN_SET(mask) (GPIOA_DIR |= (mask))
#define TUNER_GPIO_OUTPUT_EN_CLEAR(mask) (GPIOA_DIR &= ~(mask))
#define TUNER_GPIO_OUTPUT_VAL_SET(mask) (GPIOA |= (mask))
#define TUNER_GPIO_OUTPUT_VAL_CLEAR(mask) (GPIOA &= ~(mask))
#define FM_CLOCK_PIN 5
#define FM_DATA_PIN 6
#define FM_NRW_PIN 7
#elif defined(COWON_D2)
#define TUNER_GPIO_INPUT_VAL GPIOC
#define TUNER_GPIO_OUTPUT_EN_SET(mask) (GPIOC_DIR |= (mask))

View File

@ -68,9 +68,6 @@
#define DSC25 25
#define DM320 320
#define IMX31L 31
#define TCC770 770
#define TCC771L 771
#define TCC773L 773
#define TCC7801 7801
#define S5L8700 8700
#define S5L8701 8701
@ -113,15 +110,12 @@
#define MROBE100_PAD 17
#define MROBE500_PAD 18
#define GIGABEAT_S_PAD 19
#define LOGIK_DAX_PAD 20
#define IAUDIO67_PAD 21
#define COWON_D2_PAD 22
#define IAUDIO_M3_PAD 23
#define CREATIVEZVM_PAD 24
#define SANSA_M200_PAD 25
#define CREATIVEZV_PAD 26
#define PHILIPS_SA9200_PAD 27
#define SANSA_C100_PAD 28
#define PHILIPS_HDD1630_PAD 29
#define MEIZU_M6SL_PAD 30
#define ONDAVX747_PAD 31
@ -236,13 +230,11 @@
#define LCD_C200 17 /* as used by Sandisk Sansa c200 */
#define LCD_MROBE500 18 /* as used by Olympus M:Robe 500i */
#define LCD_MROBE100 19 /* as used by Olympus M:Robe 100 */
#define LCD_LOGIKDAX 20 /* as used by Logik DAX - SSD1815 */
#define LCD_IAUDIO67 21 /* as used by iAudio 6/7 - unknown */
#define LCD_CREATIVEZVM 22 /* as used by Creative Zen Vision:M */
#define LCD_TL0350A 23 /* as used by the iAudio M3 remote, treated as main LCD */
#define LCD_COWOND2 24 /* as used by Cowon D2 - LTV250QV, TCC7801 driver */
#define LCD_SA9200 25 /* as used by the Philips SA9200 */
#define LCD_S6B33B2 26 /* as used by the Sansa c100 */
#define LCD_S6B33B2 26 /* as used by the Samsumg YH820 */
#define LCD_HDD1630 27 /* as used by the Philips HDD1630 */
#define LCD_MEIZUM6 28 /* as used by the Meizu M6SP and M6SL (various models) */
#define LCD_ONDAVX747 29 /* as used by the Onda VX747 */
@ -314,7 +306,6 @@ Lyre prototype 1 */
#define I2C_S3C2440 7
#define I2C_PP5024 8 /* PP5024 style */
#define I2C_IMX31L 9
#define I2C_TCC77X 10
#define I2C_TCC780X 11
#define I2C_DM320 12 /* DM320 style */
#define I2C_S5L8700 13
@ -347,7 +338,6 @@ Lyre prototype 1 */
#define RTC_DS1339_DS3231 7 /* h1x0 RTC mod */
#define RTC_IMX31L 8
#define RTC_RX5X348AB 9
#define RTC_TCC77X 10
#define RTC_TCC780X 11
#define RTC_MR100 12
#define RTC_MC13783 13 /* Freescale MC13783 PMIC */
@ -438,18 +428,12 @@ Lyre prototype 1 */
#include "config/sansae200.h"
#elif defined(SANSA_C200)
#include "config/sansac200.h"
#elif defined(SANSA_M200)
#include "config/sansam200.h"
#elif defined(TATUNG_TPJ1022)
#include "config/tatungtpj1022.h"
#elif defined(MROBE_100)
#include "config/mrobe100.h"
#elif defined(MROBE_500)
#include "config/mrobe500.h"
#elif defined(LOGIK_DAX)
#include "config/logikdax.h"
#elif defined(IAUDIO_7)
#include "config/iaudio7.h"
#elif defined(COWON_D2)
#include "config/cowond2.h"
#elif defined(CREATIVE_ZVM)
@ -468,8 +452,6 @@ Lyre prototype 1 */
#include "config/gogearhdd1630.h"
#elif defined(PHILIPS_HDD6330)
#include "config/gogearhdd6330.h"
#elif defined(SANSA_C100)
#include "config/sansac100.h"
#elif defined(MEIZU_M6SL)
#include "config/meizum6sl.h"
#elif defined(MEIZU_M6SP)
@ -666,11 +648,6 @@ Lyre prototype 1 */
#define CPU_S5L870X
#endif
/* define for all cpus from TCC77X family */
#if (CONFIG_CPU == TCC771L) || (CONFIG_CPU == TCC773L) || (CONFIG_CPU == TCC770)
#define CPU_TCC77X
#endif
/* define for all cpus from TCC780 family */
#if (CONFIG_CPU == TCC7801)
#define CPU_TCC780X
@ -1202,7 +1179,7 @@ Lyre prototype 1 */
(CONFIG_USBOTG == USBOTG_RK27XX)
#define USB_HAS_BULK
#define USB_HAS_INTERRUPT
#elif defined(CPU_TCC780X) || defined(CPU_TCC77X)
#elif defined(CPU_TCC780X)
#define USB_HAS_BULK
#elif CONFIG_USBOTG == USBOTG_S3C6400X
#define USB_HAS_BULK
@ -1219,7 +1196,7 @@ Lyre prototype 1 */
/* enable usb storage for targets that do bootloader usb */
#if defined(HAVE_BOOTLOADER_USB_MODE) || \
defined(CREATIVE_ZVx) || defined(CPU_TCC77X) || defined(CPU_TCC780X) || \
defined(CREATIVE_ZVx) || defined(CPU_TCC780X) || \
CONFIG_USBOTG == USBOTG_JZ4740 || CONFIG_USBOTG == USBOTG_AS3525 || \
CONFIG_USBOTG == USBOTG_S3C6400X || CONFIG_USBOTG == USBOTG_DESIGNWARE || \
CONFIG_USBOTG == USBOTG_JZ4760

View File

@ -1,164 +0,0 @@
/*
* This config file is for the Iaudio7 series
*/
/* For Rolo and boot loader */
#define MODEL_NUMBER 32
#define MODEL_NAME "Cowon iAudio7"
/* define this if you have recording possibility */
#define HAVE_RECORDING
/* Define bitmask of input sources - recordable bitmask can be defined
explicitly if different */
#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_FMRADIO)
/* FM Tuner */
#define CONFIG_TUNER LV24020LP
#define HAVE_TUNER_PWR_CTRL
/* Define this for FM radio input available */
#define HAVE_FMRADIO_IN
/* define hardware samples rate caps mask */
#define HW_SAMPR_CAPS (/*SAMPR_CAP_88 | */SAMPR_CAP_44/* | SAMPR_CAP_22 | SAMPR_CAP_11*/)
/* define the bitmask of recording sample rates */
#define REC_SAMPR_CAPS (SAMPR_CAP_44/* | SAMPR_CAP_22 | SAMPR_CAP_11*/)
/* define this if you have a colour LCD */
#define HAVE_LCD_COLOR
/* define this if you can flip your LCD */
//#define HAVE_LCD_FLIP
/* define this if you can invert the colours on your LCD */
//#define HAVE_LCD_INVERT
/* define this if you want album art for this target */
#define HAVE_ALBUMART
/* define this to enable bitmap scaling */
#define HAVE_BMP_SCALING
/* define this to enable JPEG decoding */
#define HAVE_JPEG
/* define this if you have access to the quickscreen */
#define HAVE_QUICKSCREEN
/* define this if you have LCD enable function */
#define HAVE_LCD_ENABLE
/* define this if you would like tagcache to build on this target */
#define HAVE_TAGCACHE
#define HAVE_FAT16SUPPORT
#if 0 && !defined(SIMULATOR) /* Enable for USB driver test */
#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x0e21
#define USB_PRODUCT_ID 0x0750
#endif
/* define this if you have a flash memory storage */
#define HAVE_FLASH_STORAGE
#define CONFIG_STORAGE STORAGE_NAND
#define CONFIG_NAND NAND_TCC
/* LCD dimensions */
#define LCD_WIDTH 160
#define LCD_HEIGHT 128
/* sqrt(160^2 + 128^2) / 1.3 = 157.6 */
#define LCD_DPI 158
/* 16bits for now... */
#define LCD_DEPTH 16 /* 262144 colours */
#define LCD_PIXELFORMAT RGB565 /*rgb565*/
/*#define LCD_PIXELFORMAT VERTICAL_PACKING*/
/* define this to indicate your device's keypad */
#define CONFIG_KEYPAD IAUDIO67_PAD
/* #define HAVE_BUTTON_DATA */
/* define this if you have a real-time clock */
#define CONFIG_RTC RTC_PCF50606
/* define this if you have RTC RAM available for settings */
//#define HAVE_RTC_RAM
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
/* Reduce Tremor's ICODE usage */
#define ICODE_ATTR_TREMOR_NOT_MDCT
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0x100000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
#define AB_REPEAT_ENABLE
/* The iaudio7 uses built-in WM8731 codec */
#define HAVE_WM8731
/* Codec is slave on serial bus */
#define CODEC_SLAVE
/* WM8731 has no tone controls, so we use the software ones */
#define HAVE_SW_TONE_CONTROLS
/* Define this for LCD backlight available */
#define HAVE_BACKLIGHT
#define CONFIG_I2C I2C_TCC77X
#define BATTERY_CAPACITY_DEFAULT 540 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 540 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 540 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 50 /* capacity increment */
#define BATTERY_TYPES_COUNT 1 /* only one type */
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
#define CONFIG_CHARGING CHARGING_SIMPLE
/* Define this if you have a TCC770 */
#define CONFIG_CPU TCC770
/* Define this if you have ATA power-off control */
#define HAVE_ATA_POWER_OFF
/* Define this to the CPU frequency */
#define CPU_FREQ 120000000
/* Offset ( in the firmware file's header ) to the file CRC */
#define FIRMWARE_OFFSET_FILE_CRC 0
/* Offset ( in the firmware file's header ) to the real data */
#define FIRMWARE_OFFSET_FILE_DATA 8
#define CONFIG_LCD LCD_IAUDIO67
#define BOOTFILE_EXT "iaudio"
#define BOOTFILE "rockbox." BOOTFILE_EXT
#define BOOTDIR "/.rockbox"
#ifdef BOOTLOADER
#define TCCBOOT
#endif
#define IRAM_LCDFRAMEBUFFER IBSS_ATTR /* put the lcd frame buffer in IRAM */
/* Define this if a programmable hotkey is mapped */
//#define HAVE_HOTKEY

View File

@ -1,152 +0,0 @@
/*
* This config file is for the Logik DAX MP3/DAB
*/
/* For Rolo and boot loader */
#define MODEL_NUMBER 33
#define MODEL_NAME "Logik DAX MP3/DAB"
/* define this if you have recording possibility */
//#define HAVE_RECORDING
/* Define bitmask of input sources - recordable bitmask can be defined
explicitly if different */
//#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_SPDIF)
#if 0 /* Enable for USB driver test */
#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x13d1
#define USB_PRODUCT_ID 0x1002
#endif
/* define this if you can flip your LCD */
#define HAVE_LCD_FLIP
/* define this if you can invert the colours on your LCD */
#define HAVE_LCD_INVERT
/* define this if you have access to the quickscreen */
#define HAVE_QUICKSCREEN
/* define this if you would like tagcache to build on this target */
#define HAVE_TAGCACHE
#define HAVE_FAT16SUPPORT
/* define this if you have a flash memory storage */
#define HAVE_FLASH_STORAGE
#define CONFIG_STORAGE STORAGE_NAND
#define CONFIG_NAND NAND_TCC
/* LCD dimensions */
#define LCD_WIDTH 128
#define LCD_HEIGHT 64
/* sqrt(128^2 + 64^2) / 1.0 = 143.1 */
#define LCD_DPI 143
#define LCD_DEPTH 1
#define LCD_PIXELFORMAT VERTICAL_PACKING
/* Display colours, for screenshots and sim (0xRRGGBB) */
#define LCD_DARKCOLOR 0x000000
#define LCD_BRIGHTCOLOR 0x5a915a
#define LCD_BL_DARKCOLOR 0x000000
#define LCD_BL_BRIGHTCOLOR 0x82b4fa
/* define this to indicate your device's keypad */
#define CONFIG_KEYPAD LOGIK_DAX_PAD
/* define this if you have a real-time clock */
#define CONFIG_RTC RTC_TCC77X
/* define this if you have RTC RAM available for settings */
//#define HAVE_RTC_RAM
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0x38000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x10000
#define AB_REPEAT_ENABLE
/* The DAX uses built-in WM8731 codec */
#define HAVE_WM8731
/* Codec is slave on serial bus */
#define CODEC_SLAVE
/* WM8731 has no tone controls, so we use the software ones */
#define HAVE_SW_TONE_CONTROLS
/* Define this for LCD backlight available */
#define HAVE_BACKLIGHT
#define CONFIG_I2C I2C_TCC77X
#define BATTERY_CAPACITY_DEFAULT 1500 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 50 /* capacity increment */
#define BATTERY_TYPES_COUNT 1 /* only one type */
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
/* define this if the unit should not shut down on low battery. */
#define NO_LOW_BATTERY_SHUTDOWN
/* Define this if you have a TCC773L */
#define CONFIG_CPU TCC773L
/* Define this if you have ATA power-off control */
#define HAVE_ATA_POWER_OFF
#define HAVE_FAT16SUPPORT
/* Define this to the CPU frequency */
#define CPU_FREQ 120000000
/* Offset ( in the firmware file's header ) to the file length */
#define FIRMWARE_OFFSET_FILE_LENGTH 0
/* Offset ( in the firmware file's header ) to the file CRC */
#define FIRMWARE_OFFSET_FILE_CRC 4
/* Offset ( in the firmware file's header ) to the real data */
#define FIRMWARE_OFFSET_FILE_DATA 6
/* The start address index for ROM builds */
/* #define ROM_START 0x11010 for behind original Archos */
#define ROM_START 0x7010 /* for behind BootBox */
#define CONFIG_LCD LCD_SSD1815
#define BOOTFILE_EXT "logik"
#define BOOTFILE "rockbox." BOOTFILE_EXT
#define BOOTDIR "/"
#define IBSS_ATTR_VOICE_STACK
#define ICODE_ATTR_TREMOR_NOT_MDCT
#define ICODE_ATTR_TREMOR_MDCT
#define ICODE_ATTR_FLAC
#define IBSS_ATTR_FLAC_DECODED0
#define ICONST_ATTR_MPA_HUFFMAN
#define IBSS_ATTR_MPC_SAMPLE_BUF
#define ICODE_ATTR_ALAC
#define IBSS_ATTR_SHORTEN_DECODED0
#define IRAM_LCDFRAMEBUFFER IBSS_ATTR /* put the lcd frame buffer in IRAM */
/* Define this if a programmable hotkey is mapped */
//#define HAVE_HOTKEY

View File

@ -1,130 +0,0 @@
/*
* This config file is for the Sansa C100 series
*/
#define MODEL_NAME "Sandisk Sansa c100 series"
/* For Rolo and bootloader */
#define MODEL_NUMBER 30
/* define hardware samples rate caps mask */
#define HW_SAMPR_CAPS (/*SAMPR_CAP_88 | */SAMPR_CAP_44/* | SAMPR_CAP_22 | SAMPR_CAP_11*/)
/* define this if you have a colour LCD */
#define HAVE_LCD_COLOR
/* define this if you can flip your LCD */
/*#define HAVE_LCD_FLIP*/
/* define this if you can invert the colours on your LCD */
/*#define HAVE_LCD_INVERT*/
/* define this if you have access to the quickscreen */
#define HAVE_QUICKSCREEN
/* define this if you would like tagcache to build on this target */
#define HAVE_TAGCACHE
/* define this if you have a flash memory storage */
#define HAVE_FLASH_STORAGE
/* Only v1 */
#define CONFIG_STORAGE STORAGE_NAND
#define CONFIG_NAND NAND_TCC
/* c100's with direct-to-NAND access are FAT16 */
#define HAVE_FAT16SUPPORT
/* LCD dimensions */
#define LCD_WIDTH 128
#define LCD_HEIGHT 64
/* sqrt(128^2 + 64^2) / 1.7 = 84.2 */
#define LCD_DPI 84
#define LCD_DEPTH 16 /* 65536 colours */
#define LCD_PIXELFORMAT RGB565 /*rgb565*/
/*#define LCD_PIXELFORMAT VERTICAL_PACKING*/
/* define this to indicate your device's keypad */
#define CONFIG_KEYPAD SANSA_C100_PAD
/* define this if you have a real-time clock */
#define CONFIG_RTC RTC_TCC77X
/* define this if you have RTC RAM available for settings */
//#define HAVE_RTC_RAM
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0x50000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x50000
#define AB_REPEAT_ENABLE
/* Define this if you have the TLV320 audio codec */
#define HAVE_TLV320
/*#define CONFIG_TUNER TEA5767*/
/* TLV320 has no tone controls, so we use the software ones */
#define HAVE_SW_TONE_CONTROLS
/* Define this for LCD backlight available */
#define HAVE_BACKLIGHT
#define CONFIG_I2C I2C_TCC77X
#define BATTERY_CAPACITY_DEFAULT 540 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 540 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 540 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 50 /* capacity increment */
#define BATTERY_TYPES_COUNT 1 /* only one type */
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
/* define this if the unit should not shut down on low battery. */
#define NO_LOW_BATTERY_SHUTDOWN
/* Define this if you have a TCC770 */
#define CONFIG_CPU TCC770
/* Define this if you have ATA power-off control */
#define HAVE_ATA_POWER_OFF
/* Define this to the CPU frequency */
#define CPU_FREQ 120000000
/* Offset ( in the firmware file's header ) to the file CRC */
#define FIRMWARE_OFFSET_FILE_CRC 0
/* Offset ( in the firmware file's header ) to the real data */
#define FIRMWARE_OFFSET_FILE_DATA 8
/* The start address index for ROM builds */
/* #define ROM_START 0x11010 for behind original Archos */
#define ROM_START 0x7010 /* for behind BootBox */
#define CONFIG_LCD LCD_S6B33B2
#define BOOTFILE_EXT "c100"
#define BOOTFILE "rockbox." BOOTFILE_EXT
#define BOOTDIR "/.rockbox"
#ifdef BOOTLOADER
#define TCCBOOT
#endif
#define IRAM_LCDFRAMEBUFFER IBSS_ATTR /* put the lcd frame buffer in IRAM */
/* Define this if a programmable hotkey is mapped */
#define HAVE_HOTKEY

View File

@ -1,139 +0,0 @@
/*
* This config file is for the Sansa M200 series
*/
/* For Rolo and boot loader */
#define MODEL_NUMBER 29
#define MODEL_NAME "Sandisk Sansa m200 series"
/* Enable FAT16 support */
#define HAVE_FAT16SUPPORT
/* define this if you have recording possibility */
//#define HAVE_RECORDING
/* Define bitmask of input sources - recordable bitmask can be defined
explicitly if different */
//#define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_LINEIN | SRC_CAP_SPDIF)
/* define this if you can flip your LCD */
#define HAVE_LCD_FLIP
/* define this if you can invert the colours on your LCD */
#define HAVE_LCD_INVERT
/* define this if you have access to the quickscreen */
#define HAVE_QUICKSCREEN
/* define this if you would like tagcache to build on this target */
#define HAVE_TAGCACHE
/* define this if you have a flash memory storage */
#define HAVE_FLASH_STORAGE
#define CONFIG_STORAGE STORAGE_NAND
#define CONFIG_NAND NAND_TCC
/* LCD dimensions */
#define LCD_WIDTH 128
#define LCD_HEIGHT 64
/* sqrt(128^2 + 64^2) / 1.8 = 79.5 */
#define LCD_DPI 80
#define LCD_DEPTH 1
#define LCD_PIXELFORMAT VERTICAL_PACKING
/* Display colours, for screenshots and sim (0xRRGGBB) */
#define LCD_BARKCOLOR 0x000000
#define LCD_BRIGHTCOLOR 0x5e6854
#define LCD_BL_DARKCOLOR 0x000000
#define LCD_BL_BRIGHTCOLOR 0x3ca0e6
/* define this to indicate your device's keypad */
#define CONFIG_KEYPAD SANSA_M200_PAD
/* Define this to enable morse code input */
#define HAVE_MORSE_INPUT
/* define this if you have a real-time clock */
#define CONFIG_RTC RTC_TCC77X
/* define this if you have RTC RAM available for settings */
//#define HAVE_RTC_RAM
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0x38000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x10000
#define AB_REPEAT_ENABLE
/* Define this if you have the TLV320 audio codec */
#define HAVE_TLV320
/* TLV320 has no tone controls, so we use the software ones */
#define HAVE_SW_TONE_CONTROLS
/* Define this for LCD backlight available */
#define HAVE_BACKLIGHT
#define CONFIG_I2C I2C_TCC77X
#define BATTERY_CAPACITY_DEFAULT 1500 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 1500 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 3200 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 50 /* capacity increment */
#define BATTERY_TYPES_COUNT 1 /* only one type */
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
/* define this if the unit should not shut down on low battery. */
#define NO_LOW_BATTERY_SHUTDOWN
/* Define this if you have a TCC770 */
#define CONFIG_CPU TCC770
/* Define this if you have ATA power-off control */
#define HAVE_ATA_POWER_OFF
/* Define this to the CPU frequency */
#define CPU_FREQ 120000000
/* Offset ( in the firmware file's header ) to the file CRC */
#define FIRMWARE_OFFSET_FILE_CRC 0
/* Offset ( in the firmware file's header ) to the real data */
#define FIRMWARE_OFFSET_FILE_DATA 8
#define CONFIG_LCD LCD_SSD1815
#define BOOTFILE_EXT "m200"
#define BOOTFILE "rockbox." BOOTFILE_EXT
#define BOOTDIR "/"
#define IBSS_ATTR_VOICE_STACK
#define ICODE_ATTR_TREMOR_NOT_MDCT
#define ICODE_ATTR_TREMOR_MDCT
#define ICODE_ATTR_FLAC
#define IBSS_ATTR_FLAC_DECODED0
#define ICONST_ATTR_MPA_HUFFMAN
#define IBSS_ATTR_MPC_SAMPLE_BUF
#define ICODE_ATTR_ALAC
#define IBSS_ATTR_SHORTEN_DECODED0
#define IRAM_LCDFRAMEBUFFER IBSS_ATTR /* put the lcd frame buffer in IRAM */
/* Define this if a programmable hotkey is mapped */
#define HAVE_HOTKEY

View File

@ -50,9 +50,6 @@
#if CONFIG_CPU == IMX31L
#include "imx31l.h"
#endif
#ifdef CPU_TCC77X
#include "tcc77x.h"
#endif
#ifdef CPU_TCC780X
#include "tcc780x.h"
#endif

View File

@ -1,262 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef __TCC77X_H__
#define __TCC77X_H__
#define CACHEALIGN_BITS (5)
/* General-purpose IO */
#define GPIOA (*(volatile unsigned long *)0x80000300)
#define GPIOB (*(volatile unsigned long *)0x80000310)
#define GPIOC (*(volatile unsigned long *)0x80000320)
#define GPIOD (*(volatile unsigned long *)0x80000330)
#define GPIOE (*(volatile unsigned long *)0x80000340)
#define GPIOA_DIR (*(volatile unsigned long *)0x80000304)
#define GPIOB_DIR (*(volatile unsigned long *)0x80000314)
#define GPIOC_DIR (*(volatile unsigned long *)0x80000324)
#define GPIOD_DIR (*(volatile unsigned long *)0x80000334)
#define GPIOE_DIR (*(volatile unsigned long *)0x80000344)
#define GPIOA_FUNC (*(volatile unsigned long *)0x80000308)
#define GPIOB_FUNC (*(volatile unsigned long *)0x80000318)
#define GPIOC_FUNC (*(volatile unsigned long *)0x80000328)
#define GPIOD_FUNC (*(volatile unsigned long *)0x80000338)
#define GPIOE_FUNC (*(volatile unsigned long *)0x80000348)
#define BMI (*(volatile unsigned long *)0x80000364)
/* Clock Generator */
#define CLKCTRL (*(volatile unsigned long *)0x80000400)
#define PLL0CFG (*(volatile unsigned long *)0x80000404)
#define CLKDIVC (*(volatile unsigned long *)0x8000040c)
#define MODECTR (*(volatile unsigned long *)0x80000410)
#define BCLKCTR (*(volatile unsigned long *)0x80000414)
#define SWRESET (*(volatile unsigned long *)0x80000418)
#define PCLKCFG0 (*(volatile unsigned long *)0x8000041c)
#define PCLKCFG1 (*(volatile unsigned long *)0x80000420)
#define PCLKCFG2 (*(volatile unsigned long *)0x80000424)
#define PCLKCFG3 (*(volatile unsigned long *)0x80000428)
#define PCLKCFG4 (*(volatile unsigned long *)0x8000042c)
#define PCLKCFG5 (*(volatile unsigned long *)0x80000430)
#define PCLKCFG6 (*(volatile unsigned long *)0x80000434)
#define PCLK_DAI PCLKCFG6
/* Device bits for SWRESET & BCLKCTR */
#define DEV_DAI (1<<0)
#define DEV_USBD (1<<4)
#define DEV_ECC (1<<9)
#define DEV_NAND (1<<16)
/* ADC */
#define ADCCON (*(volatile unsigned long *)0x80000a00)
#define ADCDATA (*(volatile unsigned long *)0x80000a04)
#define ADCCONA (*(volatile unsigned long *)0x80000a80)
#define ADCSTATUS (*(volatile unsigned long *)0x80000a84)
#define ADCCFG (*(volatile unsigned long *)0x80000a88)
/* Memory Controller */
#define SDCFG (*(volatile unsigned long *)0xf0000000)
#define SDFSM (*(volatile unsigned long *)0xf0000004)
#define MCFG (*(volatile unsigned long *)0xf0000008)
#define TST (*(volatile unsigned long *)0xf000000c)
#define CSCFG0 (*(volatile unsigned long *)0xf0000010)
#define CSCFG1 (*(volatile unsigned long *)0xf0000014)
#define CSCFG2 (*(volatile unsigned long *)0xf0000018)
#define CSCFG3 (*(volatile unsigned long *)0xf000001c)
#define CLKCFG (*(volatile unsigned long *)0xf0000020)
#define SDCMD (*(volatile unsigned long *)0xf0000024)
/* IRQ Controller */
#define EXT0_IRQ_MASK (1<<0)
#define EXT1_IRQ_MASK (1<<1)
#define EXT2_IRQ_MASK (1<<2)
#define EXT3_IRQ_MASK (1<<3)
#define I2SR_IRQ_MASK (1<<4)
#define I2ST_IRQ_MASK (1<<5)
#define TIMER0_IRQ_MASK (1<<6)
#define USBD_IRQ_MASK (1<<8) /* USB 2.0 device */
#define USBH_IRQ_MASK (1<<10) /* USB 1.1 host */
#define ADC_IRQ_MASK (1<<16)
#define USB_DMA_IRQ_MASK (1<<26) /* USB DMA */
#define ECC_IRQ_MASK (1<<27)
#define DAI_RX_IRQ_MASK I2SR_IRQ_MASK
#define DAI_TX_IRQ_MASK I2ST_IRQ_MASK
#define USB_DMA_IRQ_MASK (1<<26) /* USB DMA */
#define IEN (*(volatile unsigned long *)0x80000100)
#define CREQ (*(volatile unsigned long *)0x80000104)
#define IREQ (*(volatile unsigned long *)0x80000108)
#define IRQSEL (*(volatile unsigned long *)0x8000010c)
#define ICFG (*(volatile unsigned long *)0x80000110)
#define MREQ (*(volatile unsigned long *)0x80000114)
#define TSTREQ (*(volatile unsigned long *)0x80000118)
#define IRQ (*(volatile unsigned long *)0x80000120)
#define FIQ (*(volatile unsigned long *)0x80000124)
#define MIRQ (*(volatile unsigned long *)0x80000128)
#define MFIQ (*(volatile unsigned long *)0x8000012c)
#define TMODE (*(volatile unsigned long *)0x80000130)
#define SYNC (*(volatile unsigned long *)0x80000134)
#define WKUP (*(volatile unsigned long *)0x80000138)
/* Timer Controller */
#define TCFG0 (*(volatile unsigned long *)0x80000200)
#define TCNT0 (*(volatile unsigned long *)0x80000204)
#define TREF0 (*(volatile unsigned long *)0x80000208)
#define TMREF0 (*(volatile unsigned long *)0x8000020c)
#define TCFG1 (*(volatile unsigned long *)0x80000210)
#define TCNT1 (*(volatile unsigned long *)0x80000214)
#define TREF1 (*(volatile unsigned long *)0x80000218)
#define TMREF1 (*(volatile unsigned long *)0x8000021c)
#define TCFG2 (*(volatile unsigned long *)0x80000220)
#define TCNT2 (*(volatile unsigned long *)0x80000224)
#define TREF2 (*(volatile unsigned long *)0x80000228)
#define TMREF2 (*(volatile unsigned long *)0x8000022c)
#define TCFG3 (*(volatile unsigned long *)0x80000230)
#define TCNT3 (*(volatile unsigned long *)0x80000234)
#define TREF3 (*(volatile unsigned long *)0x80000238)
#define TMREF3 (*(volatile unsigned long *)0x8000023c)
#define TCFG4 (*(volatile unsigned long *)0x80000240)
#define TCNT4 (*(volatile unsigned long *)0x80000244)
#define TREF4 (*(volatile unsigned long *)0x80000248)
#define TCFG5 (*(volatile unsigned long *)0x80000250)
#define TCNT5 (*(volatile unsigned long *)0x80000254)
#define TREF5 (*(volatile unsigned long *)0x80000258)
#define TIREQ (*(volatile unsigned long *)0x80000260)
#define TWDCFG (*(volatile unsigned long *)0x80000270)
#define TWDCLR (*(volatile unsigned long *)0x80000274)
#define TC32EN (*(volatile unsigned long *)0x80000280)
#define TC32LDV (*(volatile unsigned long *)0x80000284)
#define TC32CMP0 (*(volatile unsigned long *)0x80000288)
#define TC32CMP1 (*(volatile unsigned long *)0x8000028c)
#define TC32PCNT (*(volatile unsigned long *)0x80000290)
#define TC32MCNT (*(volatile unsigned long *)0x80000294)
#define TC32IRQ (*(volatile unsigned long *)0x80000298)
/* TIREQ flags */
#define TF0 (1<<8) /* Timer 0 reference value reached */
#define TF1 (1<<9) /* Timer 1 reference value reached */
#define TI0 (1<<0) /* Timer 0 IRQ flag */
#define TI1 (1<<1) /* Timer 1 IRQ flag */
/* NAND Flash Controller */
#define NFC_CMD (*(volatile unsigned long *)0x90000000)
#define NFC_SADDR (*(volatile unsigned long *)0x9000000C)
#define NFC_SDATA (*(volatile unsigned long *)0x90000040)
#define NFC_WDATA (*(volatile unsigned long *)0x90000010)
#define NFC_CTRL (*(volatile unsigned long *)0x90000050)
#define NFC_16BIT (1<<26)
#define NFC_CS0 (1<<23)
#define NFC_CS1 (1<<22)
#define NFC_READY (1<<20)
#define NFC_IREQ (*(volatile unsigned long *)0x90000060)
#define NFC_RST (*(volatile unsigned long *)0x90000064)
/* ECC controller */
#define ECC_CTRL (*(volatile unsigned long *)0x80000900)
#define ECC_DMA_REQ (1<<28)
#define ECC_ENC (1<<27) /* MLC ECC3/4 */
#define ECC_READY (1<<26)
#define ECC_IEN (1<<25)
#define ECC_MANUAL (1<<22)
#define ECC_WCNT (1<<12) /* [21:12] */
#define ECC_HOLD (1<<7)
#define ECC_M4EN (1<<6)
#define ECC_ZERO (1<<5)
#define ECC_M3EN (1<<4)
#define ECC_CNT_MASK (7<<1)
#define ECC_CNT (1<<1)
#define ECC_SLC (1<<0)
#define ECC_BASE (*(volatile unsigned long *)0x80000904)
#define ECC_MASK (*(volatile unsigned long *)0x80000908)
#define ECC_CLR (*(volatile unsigned long *)0x8000090c)
#define SLC_ECC0 (*(volatile unsigned long *)0x80000910)
#define SLC_ECC1 (*(volatile unsigned long *)0x80000914)
#define SLC_ECC2 (*(volatile unsigned long *)0x80000918)
#define SLC_ECC3 (*(volatile unsigned long *)0x8000091c)
#define SLC_ECC4 (*(volatile unsigned long *)0x80000920)
#define SLC_ECC5 (*(volatile unsigned long *)0x80000924)
#define SLC_ECC6 (*(volatile unsigned long *)0x80000928)
#define SLC_ECC7 (*(volatile unsigned long *)0x8000092c)
#define MLC_ECC0W (*(volatile unsigned long *)0x80000930)
#define MLC_ECC1W (*(volatile unsigned long *)0x80000934)
#define MLC_ECC2W (*(volatile unsigned long *)0x80000938)
#define MLC_ECC0R (*(volatile unsigned long *)0x80000940)
#define MLC_ECC1R (*(volatile unsigned long *)0x80000944)
#define MLC_ECC2R (*(volatile unsigned long *)0x80000948)
#define ECC_CORR_START (*(volatile unsigned long *)0x8000094c)
#define ECC_ERRADDR(x) (*(volatile unsigned long *)(0x80000950+4*(x)))
#define ECC_ERRDATA(x) (*(volatile unsigned long *)(0x80000960+4*(x)))
#define ECC_ERR_NUM (*(volatile unsigned long *)0x80000970)
/* Digital Audio Interface */
#define DADI_L0 (*(volatile unsigned long *)0x80000000)
#define DADI_R0 (*(volatile unsigned long *)0x80000004)
#define DADI_L1 (*(volatile unsigned long *)0x80000008)
#define DADI_R1 (*(volatile unsigned long *)0x8000000C)
#define DADI_L2 (*(volatile unsigned long *)0x80000010)
#define DADI_R2 (*(volatile unsigned long *)0x80000014)
#define DADI_L3 (*(volatile unsigned long *)0x80000018)
#define DADI_R3 (*(volatile unsigned long *)0x8000001c)
#define DADO_L0 (*(volatile unsigned long *)0x80000020)
#define DADO_R0 (*(volatile unsigned long *)0x80000024)
#define DADO_L1 (*(volatile unsigned long *)0x80000028)
#define DADO_R1 (*(volatile unsigned long *)0x8000002C)
#define DADO_L2 (*(volatile unsigned long *)0x80000030)
#define DADO_R2 (*(volatile unsigned long *)0x80000034)
#define DADO_L3 (*(volatile unsigned long *)0x80000038)
#define DADO_R3 (*(volatile unsigned long *)0x8000003c)
#define DAMR (*(volatile unsigned long *)0x80000040)
#define DAVC (*(volatile unsigned long *)0x80000044)
#define DADI_L(x) (*(volatile unsigned long *)(0x80000000 + (x) * 8))
#define DADI_R(x) (*(volatile unsigned long *)(0x80000004 + (x) * 8))
#define DADO_L(x) (*(volatile unsigned long *)(0x80000020 + (x) * 8))
#define DADO_R(x) (*(volatile unsigned long *)(0x80000024 + (x) * 8))
/* USB 2.0 device system MMR base address */
#define USB_BASE 0x90000b00
#define USB_NUM_ENDPOINTS 3
#define USB_DEVBSS_ATTR IBSS_ATTR
/* Timer frequency */
/* timers are based on XIN (12Mhz) */
#define TIMER_FREQ (12000000)
#endif

View File

@ -48,7 +48,7 @@ static long next_yield = 0;
static struct mutex ata_mtx SHAREDBSS_ATTR;
#if defined(COWON_D2) || defined(IAUDIO_7)
#if defined(COWON_D2)
#define FTL_V2
#define MAX_WRITE_CACHES 8
#else
@ -906,13 +906,6 @@ int nand_init(void)
mutex_init(&ata_mtx);
#ifdef CPU_TCC77X
CSCFG2 = 0x018a8010 | tcc77x_cscfg_bw(TCC77X_CSCFG_BW8);
GPIOC_FUNC &= ~(CS_GPIO_BIT | WE_GPIO_BIT);
GPIOC_FUNC |= 0x1;
#endif
/* Set GPIO direction for chip select & write protect */
NAND_GPIO_OUT_EN(CS_GPIO_BIT | WE_GPIO_BIT);

View File

@ -144,81 +144,6 @@ void lcd_init_device(void)
lcd_write_command(LCD_SET_NORMAL_DISPLAY);
}
#elif defined(CPU_TCC77X)
/* TCC77x specific defines */
#define LCD_BASE 0x50000000
#define LCD_CMD *(volatile unsigned char*)(LCD_BASE)
#define LCD_DATA *(volatile unsigned char*)(LCD_BASE+1)
void lcd_write_command(int byte)
{
LCD_CMD = byte;
asm volatile (
"nop \n\t"
"nop \n\t"
"nop \n\t"
);
}
void lcd_write_data(const fb_data* p_bytes, int count)
{
while (count--)
{
LCD_DATA = *(p_bytes++);
asm volatile (
"nop \n\t"
"nop \n\t"
"nop \n\t"
);
}
}
/* LCD init */
void lcd_init_device(void)
{
uint32_t bus_width;
/* Telechips init the same as the original firmware */
CSCFG1 &= 0xc3ffc000;
CSCFG1 |= 0x3400101a;
CSCFG1 |= (1 << 21);
CSCFG1 &= ~(1 << 21);
bus_width = ((MCFG >> 11) & 0x3) ^ 3;
CSCFG1 = (bus_width << 28) |
(3 << 26) | /* MTYPE = 3 */
((LCD_BASE >> 28) << 22) | /* CSBASE = 0x5 */
(1 << 20) | /* Unknown */
(3 << 11) | /* Setup time = 3 cycles */
(3 << 3) | /* Pulse width = 3+1 cycles */
(1 << 0); /* Hold time = 1 cycle */
/* SSD1815 inits like the original firmware */
lcd_write_command(LCD_SET_DISPLAY_OFF);
lcd_set_flip(false);
lcd_write_command(LCD_SET_INTERNAL_REGULATOR_RESISTOR_RATIO | 5);
lcd_set_contrast(lcd_default_contrast());
lcd_write_command(LCD_SET_POWER_CONTROL_REGISTER | 7);
/* power control register: op-amp=1, regulator=1, booster=1 */
lcd_write_command(LCD_SET_BIAS_TC_OSC);
/* 0xc2 = 110 000 10: Osc. Freq 110 - ???
TC value 000 - "-0.01%/C (TC0, POR)"
Bias ratio 10 - "1/9, 1/7 (POR)"
*/
lcd_write_command(0xc2);
lcd_write_command(LCD_SET_DISPLAY_ON);
lcd_clear_display();
lcd_update();
}
/* End of TCC77x specific defines */
#endif

View File

@ -82,19 +82,6 @@ void pcm_play_dma_init(void)
/* Enable DAI block in Master mode, 256fs->32fs, 16bit LSB */
DAMR = 0x3c8e80;
#elif defined(IAUDIO_7)
BCLKCTR &= ~DEV_DAI;
PCLK_DAI = (0x800a << 16) | (PCLK_DAI & 0xffff);
BCLKCTR |= DEV_DAI;
/* Master mode, 256->64fs, 16bit LSB*/
DAMR = 0x3cce20;
#elif defined(LOGIK_DAX)
/* TODO */
#elif defined(SANSA_M200)
/* TODO */
#elif defined(SANSA_C100)
/* TODO */
#else
#error "Target isn't supported"
#endif
@ -228,7 +215,7 @@ const void * pcm_rec_dma_get_peak_buffer(void)
}
#endif
#if defined(CPU_TCC77X) || defined(CPU_TCC780X)
#if defined(CPU_TCC780X)
void fiq_handler(void) ICODE_ATTR __attribute__((naked));
void fiq_handler(void)
{
@ -245,9 +232,6 @@ void fiq_handler(void)
#if defined(CPU_TCC780X)
"mov r8, #0xc000 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */
"ldr r9, =0xf3001004 \n" /* CREQ */
#elif defined(CPU_TCC77X)
"mov r8, #0x0030 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */
"ldr r9, =0x80000104 \n" /* CREQ */
#endif
"str r8, [r9] \n" /* clear DAI IRQs */
"ldmia r11, { r8-r9 } \n" /* r8 = p, r9 = size */

View File

@ -382,7 +382,7 @@ static inline uint32_t swaw32_hw(uint32_t value)
}
#if defined(CPU_TCC780X) || defined(CPU_TCC77X) /* Single core only for now */ \
#if defined(CPU_TCC780X) /* Single core only for now */ \
|| CONFIG_CPU == IMX31L || CONFIG_CPU == DM320 || CONFIG_CPU == AS3525 \
|| CONFIG_CPU == S3C2440 || CONFIG_CPU == S5L8701 || CONFIG_CPU == AS3525v2 \
|| CONFIG_CPU == S5L8702

View File

@ -1,121 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "system.h"
#include "kernel.h"
#include "thread.h"
#include "string.h"
#include "adc.h"
/**************************************************************************
** The A/D conversion is done every tick, in three steps:
**
** 1) On the tick interrupt, the conversion of channels 0-3 is started, and
** the A/D interrupt is enabled.
**
** 2) After the conversion is done, an interrupt
** is generated at level 1, which is the same level as the tick interrupt
** itself. This interrupt will be pending until the tick interrupt is
** finished.
** When the A/D interrupt is finally served, it will read the results
** from the first conversion and start the conversion of channels 4-7.
**
** 3) When the conversion of channels 4-7 is finished, the interrupt is
** triggered again, and the results are read. This time, no new
** conversion is started, it will be done in the next tick interrupt.
**
** Thus, each channel will be updated HZ times per second.
**
*************************************************************************/
static int channel_group;
static unsigned short adcdata[8];
/* Tick task */
static void adc_tick(void)
{
/* Start a conversion of channels 0-3. This will trigger an interrupt,
and the interrupt handler will take care of channels 4-7. */
int i;
PCLKCFG6 |= (1<<15); /* Enable ADC clock */
channel_group = 0;
/* Start converting the first 4 channels */
for (i = 0; i < 4; i++)
ADCCON = i;
}
/* IRQ handler */
void ADC(void)
{
int num;
int i;
uint32_t adc_status;
do
{
adc_status = ADCSTATUS;
num = (adc_status>>24) & 7;
if (num) adcdata[(adc_status >> 16) & 0x7] = adc_status & 0x3ff;
} while (num);
if (channel_group == 0)
{
/* Start conversion of channels 4-7 */
for (i = 4; i < 8; i++)
ADCCON = i;
channel_group = 1;
}
else
{
PCLKCFG6 &= ~(1<<15); /* Disable ADC clock */
}
}
unsigned short adc_read(int channel)
{
return adcdata[channel];
}
void adc_init(void)
{
/* Initialize ADC clocks */
PCLKCFG6 = (PCLKCFG6 & 0xffff0000) | 4004;
ADCCON = (1<<4); /* Leave standby mode */
/* IRQ enable, auto power-down, single-mode */
ADCCFG |= (1<<3) | (1<<1) | (1<<0);
/* Unmask ADC IRQ */
IEN |= ADC_IRQ_MASK;
tick_add_task(adc_tick);
sleep(2); /* Ensure adc_data[] contains data before returning */
}

View File

@ -1,99 +0,0 @@
#include "config.h"
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
STARTUP(target/arm/tcc77x/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - CODECSIZE
#define DRAMORIG 0x20000000
#define IRAMORIG 0x00000000
#define IRAMSIZE 64K
/* End of the audio buffer, where the codec buffer starts */
#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
/* Where the codec buffer ends, and the plugin buffer starts */
#define ENDADDR (ENDAUDIOADDR + CODECSIZE)
MEMORY
{
#ifdef TCCBOOT
DRAM : ORIGIN = DRAMORIG + DRAMSIZE - 0x100000, LENGTH = 0x100000
#else
DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
#endif
IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
}
SECTIONS
{
.text : {
loadaddress = .;
_loadaddress = .;
. = ALIGN(0x200);
*(.init.text)
*(.text)
*(.text*)
*(.glue_7)
*(.glue_7t)
} > DRAM
.data : {
*(.icode)
*(.irodata)
*(.idata)
*(.data*)
*(.rodata.*)
*(.rodata)
. = ALIGN(0x4);
_dataend = . ;
} > DRAM
.stack :
{
*(.stack)
_stackbegin = .;
stackbegin = .;
. += 0x2000;
_stackend = .;
stackend = .;
} > DRAM
.bss : {
_edata = .;
*(.bss*);
*(.ibss);
*(COMMON)
_end = .;
} > DRAM
.audiobuf ALIGN(4) :
{
_audiobuffer = .;
audiobuffer = .;
} > DRAM
.audiobufend ENDAUDIOADDR:
{
audiobufend = .;
_audiobufend = .;
} > DRAM
.codec ENDAUDIOADDR:
{
codecbuf = .;
_codecbuf = .;
}
.plugin ENDADDR:
{
_pluginbuf = .;
pluginbuf = .;
}
}

View File

@ -1,33 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef ATA_TARGET_H
#define ATA_TARGET_H
/* GPIOs */
#define NAND_GPIO_SET(n) GPIOC |= n
#define NAND_GPIO_CLEAR(n) GPIOC &= (~n)
#define NAND_GPIO_OUT_EN(n) GPIOC_DIR |= n
#define CS_GPIO_BIT (1<<24) /* Chip Select */
#define WE_GPIO_BIT (1<<25) /* Write Enable */
#endif

View File

@ -1,63 +0,0 @@
#include "config.h"
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
STARTUP(target/arm/tcc77x/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
#define DRAMORIG 0x20000000
#define IRAMORIG 0x00000000
#define IRAMSIZE 64K
MEMORY
{
#ifdef TCCBOOT
DRAM : ORIGIN = DRAMORIG + DRAMSIZE - 0x100000, LENGTH = 0x100000
#else
DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
#endif
IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
}
SECTIONS
{
.text : {
*(.init.text)
*(.text)
*(.text*)
*(.glue_7)
*(.glue_7t)
} > DRAM
.data : {
*(.icode)
*(.irodata)
*(.idata)
*(.data*)
*(.rodata.*)
*(.rodata)
. = ALIGN(0x4);
_dataend = . ;
} > DRAM
.stack (NOLOAD) :
{
*(.stack)
_stackbegin = .;
stackbegin = .;
. += 0x2000;
_stackend = .;
stackend = .;
} > DRAM
.bss (NOLOAD) : {
_edata = .;
*(.bss*);
*(.ibss);
*(COMMON)
_end = .;
} > DRAM
}

View File

@ -1,26 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _ADC_TARGET_H_
#define _ADC_TARGET_H_
#define NUM_ADC_CHANNELS 8
#endif /* _ADC_TARGET_H_ */

View File

@ -1,40 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H
#include "tcc77x.h"
#define backlight_hw_init() true
static inline void backlight_hw_on(void)
{
/* Enable backlight */
GPIOE |= 0x2;
}
static inline void backlight_hw_off(void)
{
/* Disable backlight */
GPIOE &= ~0x2;
}
#endif

View File

@ -1,64 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "button.h"
void button_init_device(void)
{
GPIOA_DIR |= 0xC;
}
int button_read_device(void)
{
int btn = BUTTON_NONE;
if (!button_hold())
{
GPIOA |= 0x4;
GPIOA &= ~0x8;
int i=20; while (i--);
if (GPIOA & 0x10) btn |= BUTTON_UP;
if (GPIOA & 0x20) btn |= BUTTON_RIGHT;
if (GPIOA & 0x40) btn |= BUTTON_LEFT;
GPIOA |= 0x8;
GPIOA &= ~0x4;
i=20; while (i--);
if (GPIOA & 0x10) btn |= BUTTON_VOLUP;
if (GPIOA & 0x20) btn |= BUTTON_VOLDOWN;
if (GPIOA & 0x40) btn |= BUTTON_DOWN;
if (GPIOA & 0x80) btn |= BUTTON_SELECT;
if (GPIOA & 0x100) btn |= BUTTON_POWER;
}
return btn;
}
bool button_hold(void)
{
return (GPIOA & 0x2);
}

View File

@ -1,45 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _BUTTON_TARGET_H_
#define _BUTTON_TARGET_H_
#define HAS_BUTTON_HOLD
/* Main unit's buttons */
#define BUTTON_POWER 0x00000001
#define BUTTON_VOLUP 0x00000002
#define BUTTON_VOLDOWN 0x00000004
#define BUTTON_UP 0x00000008
#define BUTTON_DOWN 0x00000010
#define BUTTON_LEFT 0x00000020
#define BUTTON_RIGHT 0x00000040
#define BUTTON_SELECT 0x00000080
#define BUTTON_MAIN (BUTTON_POWER|BUTTON_VOLUP|BUTTON_VOLDOWN\
|BUTTON_UP|BUTTON_DOWN|BUTTON_LEFT\
|BUTTON_RIGHT|BUTTON_SELECT)
/* Software power-off */
#define POWEROFF_BUTTON BUTTON_POWER
#define POWEROFF_COUNT 40
#endif /* _BUTTON_TARGET_H_ */

View File

@ -1,286 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Mark Arigo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "lcd.h"
#include "kernel.h"
#include "system.h"
/* Display status */
static unsigned lcd_yuv_options SHAREDBSS_ATTR = 0;
/* LCD command set for Samsung S6B33B2 */
#define R_NOP 0x00
#define R_OSCILLATION_MODE 0x02
#define R_DRIVER_OUTPUT_MODE 0x10
#define R_DCDC_SET 0x20
#define R_BIAS_SET 0x22
#define R_DCDC_CLOCK_DIV 0x24
#define R_DCDC_AMP_ONOFF 0x26
#define R_TEMP_COMPENSATION 0x28
#define R_CONTRAST_CONTROL1 0x2a
#define R_CONTRAST_CONTROL2 0x2b
#define R_STANDBY_OFF 0x2c
#define R_STANDBY_ON 0x2d
#define R_DDRAM_BURST_OFF 0x2e
#define R_DDRAM_BURST_ON 0x2f
#define R_ADDRESSING_MODE 0x30
#define R_ROW_VECTOR_MODE 0x32
#define R_N_LINE_INVERSION 0x34
#define R_FRAME_FREQ_CONTROL 0x36
#define R_RED_PALETTE 0x38
#define R_GREEN_PALETTE 0x3a
#define R_BLUE_PALETTE 0x3c
#define R_ENTRY_MODE 0x40
#define R_X_ADDR_AREA 0x42
#define R_Y_ADDR_AREA 0x43
#define R_RAM_SKIP_AREA 0x45
#define R_DISPLAY_OFF 0x50
#define R_DISPLAY_ON 0x51
#define R_SPEC_DISPLAY_PATTERN 0x53
#define R_PARTIAL_DISPLAY_MODE 0x55
#define R_PARTIAL_START_LINE 0x56
#define R_PARTIAL_END_LINE 0x57
#define R_AREA_SCROLL_MODE 0x59
#define R_SCROLL_START_LINE 0x5a
#define R_DATA_FORMAT_SELECT 0x60
/* TCC77x specific defines */
#define LCD_BASE 0x50000000
#define LCD_CMD *(volatile unsigned char*)(LCD_BASE)
#define LCD_DATA *(volatile unsigned char*)(LCD_BASE+1)
static void lcd_send_command(unsigned cmd)
{
LCD_CMD = cmd;
asm volatile (
"nop \n\t"
"nop \n\t"
"nop \n\t"
);
}
static void lcd_send_data(unsigned data)
{
LCD_DATA = (data & 0xff00) >> 8;
LCD_DATA = (data & 0x00ff);
}
/* End of TCC77x specific defines */
/* LCD init */
void lcd_init_device(void)
{
uint32_t bus_width;
/* Telechips init the same as the original firmware */
bus_width = ((MCFG >> 11) & 0x3) ^ 3;
CSCFG1 = (bus_width << 28) |
(3 << 26) | /* MTYPE = 3 */
((LCD_BASE >> 28) << 22) | /* CSBASE = 0x5 */
(1 << 20) | /* Unknown */
(2 << 11) | /* Setup time = 2 cycles */
(2 << 3) | /* Pulse width = 2+1 cycles */
(2 << 0); /* Hold time = 2 cycle */
GPIOE &= ~0x8;
sleep(HZ/100); /* 10ms */
GPIOE |= 0x08;
sleep(HZ/100); /* 10ms */
lcd_send_command(R_STANDBY_OFF);
sleep(HZ/20); /* 50ms */
lcd_send_command(R_OSCILLATION_MODE);
lcd_send_command(0x01);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DCDC_AMP_ONOFF);
lcd_send_command(0x01);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DCDC_AMP_ONOFF);
lcd_send_command(0x09);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DCDC_AMP_ONOFF);
lcd_send_command(0x0b);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DCDC_AMP_ONOFF);
lcd_send_command(0x0f);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DCDC_SET);
lcd_send_command(0x01);
sleep(HZ/100); /* 10ms */
sleep(HZ/10); /* 100ms */
lcd_send_command(R_TEMP_COMPENSATION);
lcd_send_command(0x01);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_DRIVER_OUTPUT_MODE);
lcd_send_command(0x03);
lcd_send_command(R_ENTRY_MODE);
lcd_send_command(0x81);
lcd_send_command(R_N_LINE_INVERSION);
lcd_send_command(0x04);
lcd_send_command(0xfa);
lcd_send_command(0x5f);
lcd_set_contrast(0x28);
lcd_send_command(R_SPEC_DISPLAY_PATTERN);
lcd_send_command(0x0);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_ADDRESSING_MODE);
lcd_send_command(0x0);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_PARTIAL_DISPLAY_MODE);
lcd_send_command(0x0);
sleep(HZ/100); /* 10ms */
lcd_send_command(R_X_ADDR_AREA);
lcd_send_command(0);
lcd_send_command(0x80);
lcd_send_command(R_Y_ADDR_AREA);
lcd_send_command(0x0);
lcd_send_command(0x80);
lcd_send_command(R_DISPLAY_ON);
lcd_send_command(R_SPEC_DISPLAY_PATTERN);
lcd_send_command(0x0);
/* Rockbox init */
lcd_clear_display();
lcd_update();
}
/*** hardware configuration ***/
int lcd_default_contrast(void)
{
return 0x28;
}
void lcd_set_contrast(int val)
{
//val &= 0xFF;
lcd_send_command(R_CONTRAST_CONTROL1);
lcd_send_command(val);
}
void lcd_set_invert_display(bool yesno)
{
/* TODO: Implement lcd_set_invert_display() */
(void)yesno;
}
/* turn the display upside down (call lcd_update() afterwards) */
void lcd_set_flip(bool yesno)
{
lcd_send_command(R_DRIVER_OUTPUT_MODE);
lcd_send_command(yesno ? 0x02 : 0x07);
}
/*** update functions ***/
void lcd_yuv_set_options(unsigned options)
{
lcd_yuv_options = options;
}
/* TODO: implement me */
void lcd_blit_yuv(unsigned char *const src[3],
int src_x, int src_y, int stride,
int x, int y, int width, int height)
{
(void) src;
(void) src_x;
(void) src_y;
(void) stride;
(void) x;
(void) y;
return;
}
/* Update the display.
This must be called after all other LCD functions that change the display. */
void lcd_update(void)
{
lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT);
}
/* Update a fraction of the display. */
void lcd_update_rect(int x, int y, int width, int height)
{
const fb_data *addr;
if (x + width >= LCD_WIDTH)
width = LCD_WIDTH - x;
if (y + height >= LCD_HEIGHT)
height = LCD_HEIGHT - y;
if ((width <= 0) || (height <= 0))
return; /* Nothing left to do. */
addr = FBADDR(x,y);
if (width <= 1) {
lcd_send_command(R_ENTRY_MODE); /* The X end address must be larger */
lcd_send_command(0x80); /* that the X start address, so we */
lcd_send_command(R_X_ADDR_AREA); /* switch to vertical mode for */
lcd_send_command(x); /* single column updates and set */
lcd_send_command(x + 1); /* the window width to 2 */
} else {
lcd_send_command(R_ENTRY_MODE);
lcd_send_command(0x82);
lcd_send_command(R_X_ADDR_AREA);
lcd_send_command(x);
lcd_send_command(x + width - 1);
}
lcd_send_command(R_Y_ADDR_AREA);
lcd_send_command(y);
lcd_send_command(y + height - 1);
/* NOP needed because on some c200s, the previous lcd_send_command is
interpreted as a separate command instead of part of R_Y_ADDR_AREA. */
lcd_send_command(R_NOP);
do {
int w = width;
do {
lcd_send_data(*addr++);
} while (--w > 0);
addr += LCD_WIDTH - width;
} while (--height > 0);
}

View File

@ -1,43 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include <stdbool.h>
#include "kernel.h"
#include "system.h"
#include "power.h"
void power_init(void)
{
}
void ide_power_enable(bool on)
{
}
bool ide_powered(void)
{
return true;
}
void power_off(void)
{
}

View File

@ -1,230 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2002 by Linus Nielsen Feltzing
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/* Arm bootloader and startup code based on startup.s from the iPodLinux loader
*
* Copyright (c) 2003, Daniel Palffy (dpalffy (at) rainstorm.org)
* Copyright (c) 2005, Bernard Leach <leachbj@bouncycastle.org>
*
*/
#include "config.h"
#include "cpu.h"
.section .init.text,"ax",%progbits
.extern irq
.extern fiq
.extern UIE
.extern main
.global start
/* Telechips firmware files start with a 32-byte header, as part of the code. */
start:
#ifdef TCCBOOT
/* Add -DTCCBOOT to EXTRA_DEFINES in the bootloader Makefile to
enable building the bootloader to be appended to the end of the
original firmware, dual-booting based on a key-press.
The following two values are filled in by mktccboot.
*/
of_entrypoint: .word 0 /* Saved entrypoint of original firmware*/
bl_entrypoint: .word 0 /* Location in RAM of the start of our bootloader */
#else
// ldr pc, =start_loc /* jump to the main entry point */
b start_loc
.word 0xffff0601 /* Unknown magic */
.word 0x3a726556 /* "Ver:" */
.word 0x31373030 /* "0071" */
.word 0 /* First CRC32 */
.word 0 /* Unknown - always 0 */
.word 0 /* Second CRC32 */
.word 0 /* length of firmware file */
#if defined(LOGIK_DAX) || defined(SANSA_C100)
/* Some original firmwares have 0x40 bytes of zeroes here - we
don't know why, but err on the side of caution and include it
here. */
.space 0x40
#endif
#endif
start_loc:
#ifdef BOOTLOADER
/*
If we are appended to the OF (i.e. dual-booting), do a simple GPIO
button check, and branch to the OF's entry point (saved by mktccboot)
if not active
*/
#ifdef TCCBOOT
mov r0, #0x80000000
#if defined(LOGIK_DAX) || defined(SANSA_C100)
ldr r0, [r0, #0x300] /* Hold button is GPIO A, pin 0x2 */
tst r0, #0x2
#elif defined(SANSA_M200)
ldr r0, [r0, #0x310] /* Hold button is GPIO B, pin 0x200 */
tst r0, #0x200
#elif defined(IAUDIO_7)
ldr r0, [r0, #0x300] /* Hold button is !GPIO A, pin 0x2 */
tst r0, #0x2
#else
#error No bootup key detection implemented for this target
#endif
ldrne pc, of_entrypoint /* Jump to OF if HOLD button not pressed */
#endif /* TCCBOOT */
/* We are now definitely executing the bootloader, so we relocate to the
linked address (see boot.lds) - 1MB from the end of DRAM.
*/
#ifdef TCCBOOT
ldr r0, bl_entrypoint
#else
mov r0, #0x20000000 /* Otherwise, load address is the start of DRAM */
#endif
mov r1, #0x20000000 /* Destination: 1MB from end of DRAM */
add r1, r1, #((MEMORYSIZE - 1) * 0x100000)
ldr r2, =_dataend
1:
cmp r2, r1
ldrhi r3, [r0], #4
strhi r3, [r1], #4
bhi 1b
ldr pc, =copied_start /* jump to the relocated start_loc: */
copied_start:
#endif /* BOOTLOADER */
/* Set up stack for IRQ mode */
mov r0,#0xd2
msr cpsr, r0
ldr sp, =irq_stack
/* Set up stack for FIQ mode */
mov r0,#0xd1
msr cpsr, r0
ldr sp, =fiq_stack
#ifndef BOOTLOADER
/* Load the banked FIQ mode registers with useful values here.
These values will be used in the FIQ handler in pcm-telechips.c */
.equ DADO_BASE, 0x80000020
ldr r10, =DADO_BASE
ldr r11, =dma_play_data
#endif
/* Let svc, abort and undefined modes use irq stack */
msr cpsr, #0xd3
ldr sp, =irq_stack
msr cpsr, #0xd7
ldr sp, =irq_stack
msr cpsr, #0xdb
ldr sp, =irq_stack
/* Switch to sys mode */
mov r0,#0xdf
msr cpsr, r0
ldr sp, =stackend
/* Copy exception handler code to address 0 */
mov r2, #0x0
ldr r3, =vectors_start
ldr r4, =vectors_end
1:
cmp r4, r3
ldrhi r5, [r3], #4
strhi r5, [r2], #4
bhi 1b
/* Initialise bss section to zero */
ldr r2, =_edata
ldr r3, =_end
mov r4, #0
1:
cmp r3, r2
strhi r4, [r2], #4
bhi 1b
/* Set up some stack and munge it with 0xdeadbeef */
ldr sp, =stackend
mov r3, sp
ldr r2, =stackbegin
ldr r4, =0xdeadbeef
1:
cmp r3, r2
strhi r4, [r2], #4
bhi 1b
bl main
/* main() should never return */
/* Exception handlers. Will be copied to address 0 after memory remapping */
vectors_start:
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
ldr pc, [pc, #24]
/* Exception vectors */
.global vectors
vectors:
.word start
.word undef_instr_handler
.word software_int_handler
.word prefetch_abort_handler
.word data_abort_handler
.word reserved_handler
.word irq_handler
.word fiq_handler
vectors_end:
.text
irq_handler:
stmfd sp!, {r0-r3, r12, lr}
bl irq
ldmfd sp!, {r0-r3, r12, lr}
subs pc, lr, #4
/* Align stacks to cache line boundary */
.balign 16
/* 256 words of IRQ stack */
.space 256*4
irq_stack:
/* 256 words of FIQ stack */
.space 256*4
fiq_stack:

View File

@ -1,77 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Rob Purchase
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "system.h"
#include "string.h"
#include <stdio.h>
#include <stdbool.h>
#include "button.h"
#include "lcd.h"
#include "font.h"
#include "adc.h"
bool dbg_ports(void)
{
return false;
}
bool dbg_hw_info(void)
{
int line = 0, i, button, oldline;
bool done=false;
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
/* Put all the static text before the while loop */
lcd_puts(0, line++, "[Hardware info]");
line++;
oldline=line;
while(!done)
{
line = oldline;
button = button_get(false);
button &= ~BUTTON_REPEAT;
#ifdef BUTTON_SELECT
if (button == BUTTON_SELECT)
#else
if (button == BUTTON_STOP)
#endif
done=true;
lcd_putsf(0, line++, "current tick: %08lx Seconds running: %08ld",
current_tick, current_tick/HZ);
lcd_putsf(0, line++, "GPIOA: 0x%08lx GPIOB: 0x%08lx", GPIOA, GPIOB);
lcd_putsf(0, line++, "GPIOC: 0x%08lx GPIOD: 0x%08lx", GPIOC, GPIOD);
lcd_putsf(0, line++, "GPIOE: 0x%08lx", GPIOE);
for (i = 0; i<4; i++)
lcd_putsf(0, line++, "ADC%d: 0x%04x", i, adc_read(i));
lcd_update();
}
return false;
}

View File

@ -1,39 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 by Rob Purchase
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef I2C_TARGET_H
#define I2C_TARGET_H
/* Definitions for the TCC77X I2C bus */
#define SDA_BIT (1<<10)
#define SCL_BIT (1<<11)
#define SCL (GPIOB & SCL_BIT)
#define SCL_HI GPIOB |= SCL_BIT
#define SCL_LO GPIOB &= ~SCL_BIT
#define SDA (GPIOB & SDA_BIT)
#define SDA_HI GPIOB |= SDA_BIT
#define SDA_LO GPIOB &= ~SDA_BIT
#define SDA_INPUT GPIOB_DIR &= ~SDA_BIT
#define SDA_OUTPUT GPIOB_DIR |= SDA_BIT
#endif /* I2C_TARGET_H */

View File

@ -1,28 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _ADC_TARGET_H_
#define _ADC_TARGET_H_
#define NUM_ADC_CHANNELS 8
#define ADC_BUTTONS 0
#endif /* _ADC_TARGET_H_ */

View File

@ -1,110 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "system.h"
#include "cpu.h"
#include "button.h"
#include "ata2501.h"
#define STB (1<<5)
#define SDATA (1<<4)
#define RESET (1<<6)
#define SIFMD (1<<7)
#define STB_DELAY 200
static inline void ndelay(unsigned long nsecs)
{
nsecs /= 8;
while (nsecs)
nsecs--;
}
/*
TODO: sensitivity
*/
void ata2501_init(void)
{
GPIOD_DIR |= (RESET | STB | SIFMD | (1 << 8) | (1 << 9));
GPIOD_DIR &= ~SDATA;
GPIOD &= ~STB;
GPIOD |= (1 << 8) | SIFMD | (1 << 9);
GPIOD &= ~RESET;
ndelay(1000);
GPIOD |= RESET;
}
unsigned short ata2501_read(void)
{
unsigned short ret = 0;
int i;
for (i = 0; i < 12; i++) {
GPIOD |= STB;
ndelay(100);
ret <<= 1;
if (GPIOD & SDATA)
ret |= 1;
GPIOD &= ~STB;
ndelay(100);
}
return ret;
}
//#define ATA2501_TEST
#ifdef ATA2501_TEST
#include "lcd.h"
static
void bits(char *str, unsigned short val)
{
int i;
for (i = 0; i < 12; i++)
str[i] = (val & (1 << i)) ? '1' : '0';
str[i] = 0;
}
void ata2501_test(void)
{
char buf[100];
ata2501_init();
while (1) {
unsigned short data;
int line = 0;
data = ata2501_read();
lcd_clear_display();
lcd_puts(0, line++, "ATA2501 test");
bits(buf, data);
lcd_puts(0, line++, buf);
lcd_update();
sleep(HZ/10);
}
}
#endif

View File

@ -1,27 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _ATA2501_H_
#define _ATA2501_H_
void ata2501_init(void);
unsigned short ata2501_read(void);
#endif /* _ATA2501_H_ */

View File

@ -1,94 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Michael Sevakis
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "system.h"
#include "cpu.h"
#include "audio.h"
#include "sound.h"
int audio_channels = 2;
int audio_output_source = AUDIO_SRC_PLAYBACK;
void audio_set_output_source(int source)
{
int oldmode = set_fiq_status(FIQ_DISABLED);
if ((unsigned)source >= AUDIO_NUM_SOURCES)
source = AUDIO_SRC_PLAYBACK;
audio_output_source = source;
set_fiq_status(oldmode);
}
void audio_input_mux(int source, unsigned flags)
{
static int last_source = AUDIO_SRC_PLAYBACK;
static bool last_recording = false;
bool recording = flags & SRCF_RECORDING;
switch (source)
{
default: /* playback - no recording */
source = AUDIO_SRC_PLAYBACK;
case AUDIO_SRC_PLAYBACK:
audio_channels = 2;
if (source != last_source)
{
audiohw_set_monitor(false);
/* audiohw_disable_recording();*/
}
break;
case AUDIO_SRC_MIC: /* recording only */
GPIOD |= 0x1;
audio_channels = 1;
if (source != last_source)
{
/*audiohw_set_monitor(false);
audiohw_enable_recording(true); /. source mic */
}
break;
case AUDIO_SRC_FMRADIO: /* recording and playback */
GPIOD &= ~0x1;
audio_channels = 2;
if (source == last_source && recording == last_recording)
break;
last_recording = recording;
if (recording)
{
/*audiohw_set_monitor(false);
audiohw_enable_recording(false);*/
}
else
{
/*audiohw_disable_recording(); */
audiohw_set_monitor(true); /* line 1 analog audio path */
}
break;
} /* end switch */
last_source = source;
} /* audio_input_mux */

View File

@ -1,48 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H
#include <stdbool.h>
#include "tcc77x.h"
void power_touch_panel(bool on);
static inline bool backlight_hw_init(void)
{
GPIOD_DIR |= 0x2;
/* set backlight on by default, since the screen is unreadable without it */
GPIOD |= 0x2;
return true;
}
static inline void backlight_hw_on(void)
{
GPIOD |= 0x2;
power_touch_panel(true);
}
static inline void backlight_hw_off(void)
{
GPIOD &= ~0x2;
power_touch_panel(false);
}
#endif /* BACKLIGHT_TARGET_H */

View File

@ -1,93 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "button.h"
#include "backlight.h"
#include "adc.h"
#include "button-target.h"
#include "ata2501.h"
void button_init_device(void)
{
ata2501_init();
}
/*
touchpad:
0: stop
1-8: between next & prev
9: play
10: next
11: prev
*/
int button_read_device(void)
{
static bool hold_button = false;
bool hold_button_old;
int btn = BUTTON_NONE;
int adc;
int sensor;
hold_button_old = hold_button;
hold_button = button_hold();
#ifndef BOOTLOADER
if (hold_button != hold_button_old)
backlight_hold_changed(hold_button);
#endif
if (button_hold())
return BUTTON_NONE;
adc = adc_read(0);
sensor = ata2501_read();
if (0 == (GPIOA & 4))
btn |= BUTTON_POWER;
/* seems they can't be hold together */
if (adc < 0x120)
btn |= BUTTON_VOLUP;
else if (adc < 0x270)
btn |= BUTTON_VOLDOWN;
else if (adc < 0x300)
btn |= BUTTON_MENU;
if (sensor & (1 << 0))
btn |= BUTTON_STOP;
if (sensor & (1 << 9))
btn |= BUTTON_PLAY;
if (sensor & ((1 << 10) | 0x1c0))
btn |= BUTTON_RIGHT;
if (sensor & ((1 << 11) | 0xe))
btn |= BUTTON_LEFT;
return btn;
}
bool button_hold(void)
{
return !(GPIOA & 0x2);
}

View File

@ -1,47 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _IAUDIO7_BUTTON_TARGET_H_
#define _IAUDIO7_BUTTON_TARGET_H_
#define HAS_BUTTON_HOLD
/* Main unit's buttons */
#define BUTTON_POWER 0x00000001
#define BUTTON_VOLUP 0x00000002
#define BUTTON_VOLDOWN 0x00000004
#define BUTTON_MENU 0x00000008
#define BUTTON_LEFT 0x00000010
#define BUTTON_RIGHT 0x00000020
#define BUTTON_PLAY 0x00000040
#define BUTTON_STOP 0x00000080
#define BUTTON_ON BUTTON_POWER
#define BUTTON_MAIN (BUTTON_POWER|BUTTON_VOLUP|BUTTON_VOLDOWN| \
BUTTON_MENU|BUTTON_LEFT|BUTTON_RIGHT| \
BUTTON_PLAY|BUTTON_STOP)
/* Software power-off */
#define POWEROFF_BUTTON BUTTON_POWER
#define POWEROFF_COUNT 10
#endif /* _IAUDIO7_BUTTON_TARGET_H_ */

View File

@ -1,260 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2004 by Linus Nielsen Feltzing
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/*
Thanks Hein-Pieter van Braam for initial work.
Mostly based on lcd-h300.c, adapted for the iaudio 7 by Vitja Makarov
*/
#include <config.h>
#include <kernel.h>
#include <cpu.h>
#include <lcd.h>
#include <system-target.h>
#include <panic.h>
#include "hd66789r.h"
static bool display_on = false; /* is the display turned on? */
static inline void lcd_write_reg(int reg, int data)
{
GPIOA &= ~0x400;
outw(0, 0x50010000);
outw(reg << 1, 0x50010000);
GPIOA |= 0x400;
outw((data & 0xff00) >> 7, 0x50010008);
outw((data << 24) >> 23, 0x50010008);
}
static void lcd_write_cmd(int reg)
{
GPIOA &= ~0x400;
outw(0, 0x50010000);
outw(reg << 1, 0x50010000);
GPIOA |= 0x400;
}
/* Do what OF do */
static void lcd_delay(int x)
{
int i;
x *= 0xc35;
for (i = 0; i < x * 8; i++) {
}
}
static void _display_on(void)
{
GPIOA_DIR |= 0x8000 | 0x400;
GPIOA |= 0x8000;
/* power setup */
lcd_write_reg(R_START_OSC, 0x0001);
lcd_delay(0xf);
lcd_write_reg(R_DISP_CONTROL1, 0x000);
lcd_delay(0xa);
lcd_write_reg(R_POWER_CONTROL2, 0x0002);
lcd_write_reg(R_POWER_CONTROL3, 0x000a);
lcd_write_reg(R_POWER_CONTROL4, 0xc5a);
lcd_write_reg(R_POWER_CONTROL1, 0x0004);
lcd_write_reg(R_POWER_CONTROL1, 0x0134);
lcd_write_reg(R_POWER_CONTROL2, 0x0111);
lcd_write_reg(R_POWER_CONTROL3, 0x001c);
lcd_delay(0x28);
lcd_write_reg(R_POWER_CONTROL4, 0x2c40);
lcd_write_reg(R_POWER_CONTROL1, 0x0510);
lcd_delay(0x3c);
/* lcd init 2 */
lcd_write_reg(R_DRV_OUTPUT_CONTROL, 0x0113);
lcd_write_reg(R_DRV_WAVEFORM_CONTROL, 0x0700);
lcd_write_reg(R_ENTRY_MODE, 0x1038);
lcd_write_reg(R_DISP_CONTROL2, 0x0508); // 0x3c8, TMM
lcd_write_reg(R_DISP_CONTROL3, 0x0000);
lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0003);
lcd_write_reg(R_RAM_ADDR_SET, 0x0000);
lcd_write_reg(R_GAMMA_FINE_ADJ_POS1, 0x0406);
lcd_write_reg(R_GAMMA_FINE_ADJ_POS2, 0x0303);
lcd_write_reg(R_GAMMA_FINE_ADJ_POS3, 0x0000);
lcd_write_reg(R_GAMMA_GRAD_ADJ_POS, 0x0305);
lcd_write_reg(R_GAMMA_FINE_ADJ_NEG1, 0x0404);
lcd_write_reg(R_GAMMA_FINE_ADJ_NEG2, 0x0000);
lcd_write_reg(R_GAMMA_FINE_ADJ_NEG3, 0x0000);
lcd_write_reg(R_GAMMA_GRAD_ADJ_NEG, 0x0503);
lcd_write_reg(R_GAMMA_AMP_ADJ_RES_POS, 0x1d05);
lcd_write_reg(R_GAMMA_AMP_AVG_ADJ_RES_NEG, 0x1d05);
lcd_write_reg(R_VERT_SCROLL_CONTROL, 0x0000);
lcd_write_reg(R_1ST_SCR_DRV_POS, 0x9f00);
lcd_write_reg(R_2ND_SCR_DRV_POS, 0x9f00);
lcd_write_reg(R_HORIZ_RAM_ADDR_POS, 0x7f00);
lcd_write_reg(R_VERT_RAM_ADDR_POS, 0x9f00);
/* lcd init 3 */
lcd_write_reg(R_POWER_CONTROL1, 0x4510);
lcd_write_reg(R_DISP_CONTROL1, 0x0005);
lcd_delay(0x28);
lcd_write_reg(R_DISP_CONTROL1, 0x0025);
lcd_write_reg(R_DISP_CONTROL1, 0x0027);
lcd_delay(0x28);
lcd_write_reg(R_DISP_CONTROL1, 0x0037);
display_on = true;
}
void lcd_init_device(void)
{
/* Configure external memory banks */
CSCFG1 = 0x0d500023 | tcc77x_cscfg_bw(TCC77X_CSCFG_BW16);
/* may be reset */
GPIOA |= 0x8000;
_display_on();
}
void lcd_enable(bool on)
{
if (display_on == on)
return;
if (on) {
_display_on();
send_event(LCD_EVENT_ACTIVATION, NULL);
} else {
/** Off sequence according to datasheet, p. 130 **/
lcd_write_reg(R_FRAME_CYCLE_CONTROL, 0x0002); /* EQ=0, 18 clks/line */
lcd_write_reg(R_DISP_CONTROL1, 0x0036); /* GON=1, DTE=1, REV=1, D1-0=10 */
sleep(2);
lcd_write_reg(R_DISP_CONTROL1, 0x0026); /* GON=1, DTE=0, REV=1, D1-0=10 */
sleep(2);
lcd_write_reg(R_DISP_CONTROL1, 0x0000); /* GON=0, DTE=0, D1-0=00 */
lcd_write_reg(R_POWER_CONTROL1, 0x0000); /* SAP2-0=000, AP2-0=000 */
lcd_write_reg(R_POWER_CONTROL3, 0x0000); /* PON=0 */
lcd_write_reg(R_POWER_CONTROL4, 0x0000); /* VCOMG=0 */
/* datasheet p. 131 */
lcd_write_reg(R_POWER_CONTROL1, 0x0001); /* STB=1: standby mode */
display_on = false;
}
}
bool lcd_active(void)
{
return display_on;
}
#define RGB(r,g,b) ((((r)&0x3f) << 12)|(((g)&0x3f) << 6)|(((b)&0x3f)))
void lcd_update(void)
{
lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT);
}
/* todo: need tests */
void lcd_update_rect(int sx, int sy, int width, int height)
{
int x, y;
if (!display_on)
return;
if (width <= 0 || height <= 0) /* nothing to do */
return;
width += sx;
height += sy;
if (width > LCD_WIDTH)
width = LCD_WIDTH;
if (height > LCD_HEIGHT)
height = LCD_HEIGHT;
lcd_write_reg(R_ENTRY_MODE, 0x1028);
/* set update window */
lcd_write_reg(R_HORIZ_RAM_ADDR_POS, (LCD_HEIGHT - 1) << 8);
lcd_write_reg(R_VERT_RAM_ADDR_POS, ((width - 1) << 8) | sx);
lcd_write_reg(R_RAM_ADDR_SET, (sx << 8) | (LCD_HEIGHT - sy - 1));
lcd_write_cmd(R_WRITE_DATA_2_GRAM);
for (y = sy; y < height; y++) {
for (x = sx; x < width; x++) {
fb_data c;
unsigned long color;
c = *FBADDR(x,y);
color =
((c & 0x1f) << 1) | ((c & 0x7e0) << 1) | ((c & 0xf800) <<
2);
/* TODO: our color is 18-bit */
outw((color >> 9) & 0x1ff, 0x50010008);
outw((color) & 0x1ff, 0x50010008);
}
}
}
void lcd_set_contrast(int val)
{
(void) val;
}
void lcd_set_invert_display(bool yesno)
{
(void) yesno;
}
void lcd_set_flip(bool yesno)
{
(void) yesno;
}
/* TODO: implement me */
void lcd_blit_yuv(unsigned char *const src[3],
int src_x, int src_y, int stride,
int x, int y, int width, int height)
{
(void) src;
(void) src_x;
(void) src_y;
(void) stride;
(void) x;
(void) y;
if (!display_on)
return;
width &= ~1; /* stay on the safe side */
height &= ~1;
panicf("%s", __func__);
}

View File

@ -1,149 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 Vitja Makarov
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include <stdbool.h>
#include "config.h"
#include "cpu.h"
#include "kernel.h"
#include "system.h"
#include "power.h"
#include "backlight-target.h"
#include "pcf50606.h"
void power_init(void)
{
pcf50606_write(PCF5060X_DCDC1, 0x90);
pcf50606_write(PCF5060X_DCDC2, 0x48);
pcf50606_write(PCF5060X_DCDC3, 0xfc);
pcf50606_write(PCF5060X_DCDC4, 0xb1);
pcf50606_write(PCF5060X_IOREGC, 0xe9);
/* 3.3V, touch-panel */
pcf50606_write(PCF5060X_D1REGC1, 0xf8);
pcf50606_write(PCF5060X_D2REGC1, 0xf2);
pcf50606_write(PCF5060X_D3REGC1, 0xf5);
pcf50606_write(PCF5060X_LPREGC1, 0x00);
pcf50606_write(PCF5060X_LPREGC2, 0x02);
pcf50606_write(PCF5060X_DCUDC1, 0xe6);
pcf50606_write(PCF5060X_DCUDC2, 0x30);
pcf50606_write(PCF5060X_DCDEC1, 0xe7);
pcf50606_write(PCF5060X_DCDEC2, 0x02);
pcf50606_write(PCF5060X_INT1M, 0x5b);
pcf50606_write(PCF5060X_INT1M, 0xaf);
pcf50606_write(PCF5060X_INT1M, 0x8f);
pcf50606_write(PCF5060X_OOCC1, 0x40);
pcf50606_write(PCF5060X_OOCC2, 0x05);
pcf50606_write(PCF5060X_MBCC3, 0x3a);
pcf50606_write(PCF5060X_GPOC1, 0x00);
pcf50606_write(PCF5060X_BBCC, 0xf8);
}
/* Control leds on ata2501 board */
void power_touch_panel(bool on)
{
if (on)
pcf50606_write(PCF5060X_D1REGC1, 0xf8);
else
pcf50606_write(PCF5060X_D1REGC1, 0x00);
}
void ide_power_enable(bool on)
{
(void) on;
}
bool ide_powered(void)
{
return true;
}
void power_off(void)
{
/* Forcibly cut power to SoC & peripherals by putting the PCF to sleep */
pcf50606_write(PCF5060X_OOCC1, GOSTDBY | CHGWAK | EXTONWAK);
}
#if CONFIG_TUNER
#include "tuner.h"
/** Tuner **/
static bool powered = false;
#define TUNNER_CLK (1 << 5)
#define TUNNER_DATA (1 << 6)
#define TUNNER_NR_W (1 << 7)
bool tuner_power(bool status)
{
bool old_status;
lv24020lp_lock();
old_status = powered;
if (status != old_status)
{
if (status)
{
/* When power up, host should initialize the 3-wire bus
in host read mode: */
/* 1. Set direction of the DATA-line to input-mode. */
GPIOA_DIR &= ~TUNNER_DATA;
/* 2. Drive NR_W low */
GPIOA &= ~TUNNER_NR_W;
GPIOA_DIR |= TUNNER_NR_W;
/* 3. Drive CLOCK high */
GPIOA |= TUNNER_CLK;
GPIOA_DIR |= TUNNER_CLK;
lv24020lp_power(true);
}
else
{
lv24020lp_power(false);
/* set all as inputs */
GPIOC_DIR &= ~(TUNNER_CLK | TUNNER_DATA | TUNNER_NR_W);
}
powered = status;
}
lv24020lp_unlock();
return old_status;
}
#endif /* CONFIG_TUNER */
unsigned int power_input_status(void)
{
return (GPIOA & 0x1) ?
POWER_INPUT_MAIN_CHARGER : POWER_INPUT_NONE;
}

View File

@ -1,84 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: powermgmt-cowond2.c 17847 2008-06-28 18:10:04Z bagder $
*
* Copyright (C) 2007 by Karl Kurbjun
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "adc.h"
#include "powermgmt.h"
#include "kernel.h"
#include "pcf50606.h"
unsigned short current_voltage = 5150;
const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
{
/* FIXME: calibrate value */
4400
};
const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] =
{
/* FIXME: calibrate value */
4600
};
/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] =
{
/* FIXME: calibrate values. Table is "inherited" from iPod-PCF / H100 */
{ 4500, 4810, 4910, 4970, 5030, 5070, 5120, 5140, 5170, 5250, 5400 }
};
#if CONFIG_CHARGING
/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */
const unsigned short percent_to_volt_charge[11] =
{
/* FIXME: calibrate values. Table is "inherited" from iPod-PCF / H100 */
4760, 5440, 5510, 5560, 5610, 5640, 5660, 5760, 5820, 5840, 5850 /* NiMH */
};
#endif /* CONFIG_CHARGING */
#define BATTERY_SCALE_FACTOR 6000
/* full-scale ADC readout (2^10) in millivolt */
/* Returns battery voltage from ADC [millivolts] */
int _battery_voltage(void)
{
static unsigned last_tick = 0;
if (0 == last_tick || TIME_BEFORE(last_tick+HZ, current_tick))
{
int adc_val, irq_status;
unsigned char buf[2];
irq_status = disable_irq_save();
pcf50606_write(PCF5060X_ADCC2, 0x1);
pcf50606_read_multiple(PCF5060X_ADCS1, buf, 2);
restore_interrupt(irq_status);
adc_val = (buf[0]<<2) | (buf[1] & 3); //ADCDAT1H+ADCDAT1L
current_voltage = (adc_val * BATTERY_SCALE_FACTOR) >> 10;
last_tick = current_tick;
}
return current_voltage;
}

View File

@ -1,47 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 by Rob Purchase
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "system.h"
#include "kernel.h"
#include "timer.h"
#include "thread.h"
void tick_start(unsigned int interval_in_ms)
{
/* configure Timer T-Clock to 2Mhz (clock source 4 (Xin) divided by 6) */
PCLKCFG4 = (1 << 31) | (4 << 28) | (5 << 16);
/* disable Timer0 */
TCFG0 &= ~1;
/* set counter reference value based on 1Mhz tick */
TREF0 = interval_in_ms * 1000;
/* Timer0 = reset to 0, divide=2, IRQ enable, enable (continuous) */
TCFG0 = (1<<8) | (0<<4) | (1<<3) | 1;
/* Unmask timer IRQ */
IEN |= TIMER0_IRQ_MASK;
}
/* NB: Since we are using a single timer IRQ, tick tasks are dispatched as
part of the central timer IRQ processing in timer-tcc77x.c */

View File

@ -1,28 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _ADC_TARGET_H_
#define _ADC_TARGET_H_
#define NUM_ADC_CHANNELS 8
#define ADC_BUTTONS 0
#endif /* _ADC_TARGET_H_ */

View File

@ -1,40 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Michael Sevakis
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "system.h"
#include "cpu.h"
#include "audio.h"
#include "sound.h"
int audio_channels = 2;
int audio_output_source = AUDIO_SRC_PLAYBACK;
#if INPUT_SRC_CAPS != 0
void audio_set_output_source(int source)
{
(void)source;
}
void audio_input_mux(int source, unsigned flags)
{
(void)source;
(void)flags;
}
#endif

View File

@ -1,40 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H
#include "tcc77x.h"
#define backlight_hw_init() true
static inline void backlight_hw_on(void)
{
/* Enable backlight */
GPIOD |= 0x10;
}
static inline void backlight_hw_off(void)
{
/* Disable backlight */
GPIOD &= ~0x10;
}
#endif

View File

@ -1,100 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "button.h"
#include "adc.h"
/*
Results of button testing:
HOLD: GPIOA & 0x0002 (0=pressed, 0x0002 = released)
POWER: GPIOA & 0x8000 (0=pressed, 0x8000 = released)
ADC[0]: (approx values)
RIGHT - 0x37
LEFT - 0x7f
JOYSTICK PRESS - 0xc7
UP - 0x11e
DOWN - 0x184
MODE - 0x1f0/0x1ff
PRESET - 0x268/0x269
REC - 0x2dd
Values of ADC[0] tested in OF disassembly: 0x50, 0x96, 0xdc, 0x208, 0x384
*/
void button_init_device(void)
{
/* Nothing to do */
}
int button_read_device(void)
{
int btn = BUTTON_NONE;
int adc;
adc = adc_read(ADC_BUTTONS);
if (adc < 0x384) {
if (adc < 0x140) {
if (adc < 0x96) {
if (adc < 0x50) {
btn |= BUTTON_RIGHT; /* 0x00..0x4f */
} else {
btn |= BUTTON_LEFT; /* 0x50..0x95 */
}
} else {
if (adc < 0xe0) {
btn |= BUTTON_SELECT; /* 0x96..0xdf */
} else {
btn |= BUTTON_UP; /* 0xe0..0x13f */
}
}
} else {
if (adc < 0x208) {
if (adc < 0x1b0) {
btn |= BUTTON_DOWN; /* 0x140..0x1af */
} else {
btn |= BUTTON_MODE; /* 0x1b0..0x207 */
}
} else {
if (adc < 0x290) {
btn |= BUTTON_PRESET; /* 0x208..0x28f */
} else {
btn |= BUTTON_REC; /* 0x290..0x383 */
}
}
}
}
if (!(GPIOA & 0x2))
btn |= BUTTON_HOLD;
if (!(GPIOA & 0x8000))
btn |= BUTTON_POWERPLAY;
return btn;
}

View File

@ -1,45 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _BUTTON_TARGET_H_
#define _BUTTON_TARGET_H_
/* Main unit's buttons */
#define BUTTON_POWERPLAY 0x00000001
#define BUTTON_MODE 0x00000002
#define BUTTON_HOLD 0x00000004
#define BUTTON_REC 0x00000008
#define BUTTON_PRESET 0x00000010
#define BUTTON_LEFT 0x00000020
#define BUTTON_RIGHT 0x00000040
#define BUTTON_UP 0x00000080
#define BUTTON_DOWN 0x00000100
#define BUTTON_SELECT 0x00000200
#define BUTTON_MAIN (BUTTON_POWERPLAY|BUTTON_MODE|BUTTON_HOLD\
|BUTTON_REC|BUTTON_PRESET|BUTTON_LEFT\
|BUTTON_RIGHT|BUTTON_UP|BUTTON_DOWN|BUTTON_SELECT)
/* Software power-off */
#define POWEROFF_BUTTON BUTTON_POWERPLAY
#define POWEROFF_COUNT 40
#endif /* _BUTTON_TARGET_H_ */

View File

@ -1,44 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include <stdbool.h>
#include "kernel.h"
#include "system.h"
#include "power.h"
void power_init(void)
{
}
void ide_power_enable(bool on)
{
(void)on;
}
bool ide_powered(void)
{
return true;
}
void power_off(void)
{
}

View File

@ -1,28 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _ADC_TARGET_H_
#define _ADC_TARGET_H_
#define NUM_ADC_CHANNELS 8
#define ADC_BUTTONS 1
#endif /* _ADC_TARGET_H_ */

View File

@ -1,38 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Michael Sevakis
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "system.h"
#include "cpu.h"
#include "audio.h"
#include "sound.h"
int audio_channels = 2;
int audio_output_source = AUDIO_SRC_PLAYBACK;
void audio_set_output_source(int source)
{
(void)source;
}
void audio_input_mux(int source, unsigned flags)
{
(void)source;
(void)flags;
}

View File

@ -1,44 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef BACKLIGHT_TARGET_H
#define BACKLIGHT_TARGET_H
#include "tcc77x.h"
static inline bool backlight_hw_init(void)
{
GPIOA_DIR |= 0x40;
return true;
}
static inline void backlight_hw_on(void)
{
/* Enable backlight */
GPIOA |= 0x40;
}
static inline void backlight_hw_off(void)
{
/* Disable backlight */
GPIOA &= ~0x40;
}
#endif

View File

@ -1,99 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "button.h"
#include "adc.h"
/*
Results of button testing (viewing ADC values whilst pressing buttons):
HOLD: GPIOB & 0x0200 (0=hold active, 0x0200 = hold inactive)
ADC[1]: (approx values)
Idle - 0x3ff
MENU - unknown
REPEAT/AB - 0x03?
LEFT - 0x07?-0x08?
SELECT - 0x0c?
RIGHT - 0x11?
PLAY/PAUSE - 0x17?-0x018?
VOL UP - 0x1e?-0x01f?
VOL DOWN - 0x26?
*/
void button_init_device(void)
{
/* Nothing to do */
}
int button_read_device(void)
{
int btn = BUTTON_NONE;
int adc;
/* TODO - determine how to detect BUTTON_MENU - it doesn't appear to
be connected to a GPIO or to an ADC
*/
adc = adc_read(ADC_BUTTONS);
if (adc < 0x384) {
if (adc < 0x140) {
if (adc < 0x96) {
if (adc < 0x50) {
btn |= BUTTON_REPEATAB; /* 0x00..0x4f */
} else {
btn |= BUTTON_LEFT; /* 0x50..0x95 */
}
} else {
if (adc < 0xe0) {
btn |= BUTTON_SELECT; /* 0x96..0xdf */
} else {
btn |= BUTTON_RIGHT; /* 0xe0..0x13f */
}
}
} else {
if (adc < 0x208) {
if (adc < 0x1b0) {
btn |= BUTTON_PLAYPAUSE; /* 0x140..0x1af */
} else {
btn |= BUTTON_VOLUP; /* 0x1b0..0x207 */
}
} else {
btn |= BUTTON_VOLDOWN; /* 0x209..0x383 */
}
}
}
return btn;
}
bool button_hold(void)
{
return (GPIOB & 0x200)?false:true;
}

View File

@ -1,45 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef _BUTTON_TARGET_H_
#define _BUTTON_TARGET_H_
#define HAS_BUTTON_HOLD
/* Main unit's buttons */
#define BUTTON_MENU 0x00000001
#define BUTTON_VOLUP 0x00000002
#define BUTTON_VOLDOWN 0x00000004
#define BUTTON_PLAYPAUSE 0x00000008
#define BUTTON_REPEATAB 0x00000010
#define BUTTON_LEFT 0x00000020
#define BUTTON_RIGHT 0x00000040
#define BUTTON_SELECT 0x00000080
#define BUTTON_MAIN (BUTTON_MENU|BUTTON_VOLUP|BUTTON_VOLDOWN\
|BUTTON_PLAYPAUSE|BUTTON_REPEATAB|BUTTON_LEFT\
|BUTTON_RIGHT|BUTTON_SELECT)
/* Software power-off */
#define POWEROFF_BUTTON BUTTON_MENU
#define POWEROFF_COUNT 40
#endif /* _BUTTON_TARGET_H_ */

View File

@ -1,43 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include <stdbool.h>
#include "kernel.h"
#include "system.h"
#include "power.h"
void power_init(void)
{
}
void ide_power_enable(bool on)
{
}
bool ide_powered(void)
{
return true;
}
void power_off(void)
{
}

View File

@ -1,66 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Karl Kurbjun
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "adc.h"
#include "powermgmt.h"
#include "kernel.h"
#include "pcf50606.h"
unsigned short current_voltage = 3910;
const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
{
/* FIXME: calibrate value */
3380
};
const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] =
{
/* FIXME: calibrate value */
3300
};
/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] =
{
/* FIXME: calibrate values. Table is "inherited" from iPod-PCF / H100 */
{ 3370, 3650, 3700, 3740, 3780, 3820, 3870, 3930, 4000, 4080, 4160 }
};
#if CONFIG_CHARGING
/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */
const unsigned short percent_to_volt_charge[11] =
{
/* FIXME: calibrate values. Table is "inherited" from iPod-PCF / H100 */
3370, 3650, 3700, 3740, 3780, 3820, 3870, 3930, 4000, 4080, 4160
};
#endif /* CONFIG_CHARGING */
#define BATTERY_SCALE_FACTOR 6000
/* full-scale ADC readout (2^10) in millivolt */
/* Returns battery voltage from ADC [millivolts] */
int _battery_voltage(void)
{
return current_voltage;
}

View File

@ -1,59 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef SYSTEM_TARGET_H
#define SYSTEM_TARGET_H
#include "system-arm.h"
#define CPUFREQ_DEFAULT 98784000
#define CPUFREQ_NORMAL 98784000
#define CPUFREQ_MAX 120000000
#define inl(a) (*(volatile unsigned long *) (a))
#define outl(a,b) (*(volatile unsigned long *) (b) = (a))
#define inb(a) (*(volatile unsigned char *) (a))
#define outb(a,b) (*(volatile unsigned char *) (b) = (a))
#define inw(a) (*(volatile unsigned short *) (a))
#define outw(a,b) (*(volatile unsigned short *) (b) = (a))
/* TC32 is configured to 1MHz in clock_init() */
#define USEC_TIMER TC32MCNT
static inline void udelay(unsigned usecs)
{
unsigned stop = USEC_TIMER + usecs;
while (TIME_BEFORE(USEC_TIMER, stop));
}
#define TCC77X_CSCFG_BW8 0
#define TCC77X_CSCFG_BW16 1
/* Due to hardware bug or "feature" this hack is needed to set bus width bits */
static inline
unsigned long tcc77x_cscfg_bw(int bw) {
if (bw == TCC77X_CSCFG_BW8)
return (((MCFG >> 11) & 3) ^ 3) << 28;
else
return (((MCFG >> 11) & 3) ^ 2) << 28;
}
#endif /* SYSTEM_TARGET_H */

View File

@ -1,326 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2007 by Dave Chapman
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "kernel.h"
#include "system.h"
#include "panic.h"
/* Externally defined interrupt handlers */
extern void TIMER(void);
extern void ADC(void);
extern void USB_DEVICE(void);
void irq(void)
{
int irq = IREQ & 0x7fffffff;
CREQ = irq; /* Clears the corresponding IRQ status */
if (irq & TIMER0_IRQ_MASK)
TIMER();
else if (irq & ADC_IRQ_MASK)
ADC();
#ifdef HAVE_USBSTACK
else if (irq & USBD_IRQ_MASK)
USB_DEVICE();
#endif
else
panicf("Unhandled IRQ 0x%08X", irq);
}
void fiq_handler(void) __attribute__((interrupt ("FIQ"), naked));
#ifdef BOOTLOADER
void fiq_handler(void)
{
/* TODO */
}
#endif
void system_reboot(void)
{
}
void system_exception_wait(void)
{
while (1);
}
/* TODO - these should live in the target-specific directories and
once we understand what all the GPIO pins do, move the init to the
specific driver for that hardware. For now, we just perform the
same GPIO init as the original firmware - this makes it easier to
investigate what the GPIO pins do.
*/
#ifdef LOGIK_DAX
static void gpio_init(void)
{
/* Do what the original firmware does */
GPIOD_FUNC = 0;
GPIOD_DIR = 0x3f0;
GPIOD = 0xe0;
GPIOE_FUNC = 0;
GPIOE_DIR = 0xe0;
GPIOE = 0;
GPIOA_FUNC = 0;
GPIOA_DIR = 0xffff1000; /* 0 - 0xf000 */
GPIOA = 0x1080;
GPIOB_FUNC = 0x16a3;
GPIOB_DIR = 0x6ffff;
GPIOB = 0;
GPIOC_FUNC = 1;
GPIOC_DIR = 0x03ffffff; /* mvn r2, 0xfc000000 */
GPIOC = 0;
}
#elif defined(IAUDIO_7)
static void gpio_init(void)
{
/* Do what the original firmware does */
GPIOA_FUNC = 0;
GPIOB_FUNC = 0x1623;
GPIOC_FUNC = 1;
GPIOD_FUNC = 0;
GPIOE_FUNC = 0;
GPIOA = 0x30;
GPIOB = 0x00c00;
GPIOC = 0;
GPIOD = 0x180;
GPIOE = 0x80;
GPIOA_DIR = 0x84b0;
GPIOB_DIR = 0x80c00;
GPIOC_DIR = 0x2000000;
GPIOD_DIR = 0x3e3;
GPIOE_DIR = 0x88;
}
#elif defined(SANSA_M200)
static void gpio_init(void)
{
/* TODO - Implement for M200 */
}
#elif defined(SANSA_C100)
static void gpio_init(void)
{
/* Do what the original firmware does */
GPIOA_FUNC = 0;
GPIOB_FUNC = 0x16A3;
GPIOC_FUNC = 1;
GPIOD_FUNC |= 2;
GPIOE_FUNC = 0;
GPIOA_DIR = 0xFFFF0E00;
GPIOB_DIR = 0x6FFFF;
GPIOC_DIR = 0x03FFFFFF;
GPIOD_DIR = 0x3F7;
GPIOE_DIR = 0x9B;
GPIOA = 0x80;
GPIOB = 0;
GPIOC = 0;
GPIOD |= 0xC0;
GPIOE = 0x9B;
}
#endif
/* Second function called in the original firmware's startup code - we just
set up the clocks in the same way as the original firmware for now. */
static void clock_init(void)
{
unsigned int i;
/* STP = 0x1, PW = 0x04 , HLD = 0x0 */
CSCFG3 = (CSCFG3 &~ 0x3fff) | 0x820;
/* XIN=External main, Fcpu=Fsys, BCKDIV=1 (Fbus = Fsys / 2) */
CLKCTRL = (CLKCTRL & ~0xff) | 0x14;
if (BMI & 0x20)
PCLKCFG0 = 0xc82d7000; /* EN1 = 1, XIN=Ext. main, DIV1 = 0x2d, P1 = 1 */
else
PCLKCFG0 = 0xc8ba7000; /* EN1 = 1, XIN=Ext. main, DIV1 = 0xba, P1 = 1 */
MCFG |= 0x2000;
#ifdef LOGIK_DAX
/* Only seen in the Logik DAX original firmware */
SDCFG = (SDCFG & ~0x7000) | 0x2000;
#endif
/* Disable PLL */
PLL0CFG |= 0x80000000;
/* Enable PLL, M=0xcf, P=0x13. m=M+8, p=P+2, S = 0
Fout = (215/21)*12MHz = 122857142Hz */
PLL0CFG = 0x0000cf13;
i = 8000;
while (--i) {};
/* Enable PLL0 */
CLKDIVC = 0x81000000;
/* Fsys = PLL0, Fcpu = Fsys, Fbus=Fsys / 2 */
CLKCTRL = 0x80000010;
asm volatile (
"nop \n\t"
"nop \n\t"
);
/* Enable Z-Clock */
PCLKCFG5 |= (1<<31) | (4<<28); /* Timer Z-Clock enable, XIN direct*/
/* Set TC32 timer to be our USEC_TIMER (Xin divided by 12 = 1MHz) */
TC32MCNT = 0;
TC32LDV = 0;
TC32EN = (1<<24) | 11;
}
static void cpu_init(void)
{
/* Memory protection - see page 48 of ARM946 TRM
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0201d/DDI0201D_arm946es_r1p1_trm.pdf
*/
asm volatile (
/* Region 0 - addr=0, size=4GB, enabled */
"mov r0, #0x3f \n\t"
"mcr p15, 0, r0, c6, c0, 0 \n\t"
"mcr p15, 0, r0, c6, c0, 1 \n\t"
#if defined(LOGIK_DAX) || defined(SANSA_C100)
/* Address region 1 - addr 0x2fff0000, size=64KB, enabled*/
"ldr r0, =0x2fff001f \n\t"
#elif defined(IAUDIO_7)
/* Address region 1 - addr 0x20000000, size=8KB, enabled*/
"mov r0, #0x19 \n\t"
"add r0, r0, #0x20000000 \n\t"
#elif defined(SANSA_M200)
/* Address region 1 - addr 0x20000000, size=256MB, enabled*/
"mov r0, #0x37 \n\t"
"add r0, r0, #0x20000000 \n\t"
#endif
"mcr p15, 0, r0, c6, c1, 0 \n\t"
"mcr p15, 0, r0, c6, c1, 1 \n\t"
/* Address region 2 - addr 0x30000000, size=256MB, enabled*/
"mov r0, #0x37 \n\t"
"add r0, r0, #0x30000000 \n\t"
"mcr p15, 0, r0, c6, c2, 0 \n\t"
"mcr p15, 0, r0, c6, c2, 1 \n\t"
/* Address region 2 - addr 0x40000000, size=512MB, enabled*/
"mov r0, #0x39 \n\t"
"add r0, r0, #0x40000000 \n\t"
"mcr p15, 0, r0, c6, c3, 0 \n\t"
"mcr p15, 0, r0, c6, c3, 1 \n\t"
/* Address region 4 - addr 0x60000000, size=256MB, enabled*/
"mov r0, #0x37 \n\t"
"add r0, r0, #0x60000000 \n\t"
"mcr p15, 0, r0, c6, c4, 0 \n\t"
"mcr p15, 0, r0, c6, c4, 1 \n\t"
/* Address region 5 - addr 0x10000000, size=256MB, enabled*/
"mov r0, #0x37 \n\t"
"add r0, r0, #0x10000000 \n\t"
"mcr p15, 0, r0, c6, c5, 0 \n\t"
"mcr p15, 0, r0, c6, c5, 1 \n\t"
/* Address region 6 - addr 0x80000000, size=2GB, enabled*/
"mov r0, #0x37 \n\t"
"add r0, r0, #0x80000006 \n\t"
"mcr p15, 0, r0, c6, c6, 0 \n\t"
"mcr p15, 0, r0, c6, c6, 1 \n\t"
/* Address region 7 - addr 0x3000f000, size=4KB, enabled*/
"ldr r0, =0x3000f017 \n\t"
"mcr p15, 0, r0, c6, c7, 0 \n\t"
"mcr p15, 0, r0, c6, c7, 1 \n\t"
/* Register 5 - Access Permission Registers */
"ldr r0, =0xffff \n\t"
"mcr p15, 0, r0, c5, c0, 0 \n\t" /* write data access permission bits */
"mcr p15, 0, r0, c5, c0, 1 \n\t" /* write instruction access permission bits */
"mov r0, #0xa7 \n\t"
"mcr p15, 0, r0, c3, c0, 0 \n\t" /* set write buffer control register */
#if defined(LOGIK_DAX) || defined(SANSA_C100)
"mov r0, #0xa5 \n\t"
#elif defined(IAUDIO_7) || defined(SANSA_M200)
"mov r0, #0xa7 \n\t"
#else
#error NOT DEFINED FOR THIS TARGET!
#endif
"mcr p15, 0, r0, c2, c0, 0 \n\t"
"mcr p15, 0, r0, c2, c0, 1 \n\t"
"mov r0, #0xa0000006 \n\t"
"mcr p15, 0, r0, c9, c1, 0 \n\t"
"ldr r1, =0x1107d \n\t"
"mov r0, #0x0 \n\t"
"mcr p15, 0, r0, c7, c5, 0 \n\t" /* Flush instruction cache */
"mcr p15, 0, r0, c7, c6, 0 \n\t" /* Flush data cache */
"mcr p15, 0, r1, c1, c0, 0 \n\t" /* CPU control bits */
: : : "r0", "r1"
);
}
void system_init(void)
{
/* mask all interrupts */
IEN = 0;
/* Set all interrupts as IRQ for now - some may need to be FIQ in future */
IRQSEL = 0xffffffff;
/* Set master enable bit */
IEN = 0x80000000;
cpu_init();
clock_init();
gpio_init();
enable_irq();
}
int system_memory_guard(int newmode)
{
(void)newmode;
return 0;
}
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
void set_cpu_frequency(long frequency)
{
}
#endif

View File

@ -1,69 +0,0 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2008 by Rob Purchase
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "cpu.h"
#include "system.h"
#include "timer.h"
#include "logf.h"
/* Use the TC32 counter [sourced by Xin:12Mhz] for this timer, as it's the
only one that allows a 32-bit counter (Timer0-5 are 16/20 bit only). */
bool timer_set(long cycles, bool start)
{
#warning function not implemented
(void)cycles;
(void)start;
return false;
}
bool timer_start(void)
{
#warning function not implemented
return false;
}
void timer_stop(void)
{
#warning function not implemented
}
/* Timer interrupt processing - all timers (inc. tick) have a single IRQ */
void TIMER(void)
{
if (TIREQ & TF0) /* Timer0 reached ref value */
{
/* Run through the list of tick tasks */
call_tick_tasks();
/* reset Timer 0 IRQ & ref flags */
TIREQ |= TI0 | TF0;
}
if (TC32IRQ & (1<<3)) /* end of TC32 prescale */
{
/* dispatch timer */
}
}

View File

@ -34,8 +34,6 @@
#if defined(COWON_D2)
/* The D2's audio codec uses an I2C address of 0x34 */
#define I2C_AUDIO_ADDRESS 0x34
#elif defined (IAUDIO_7) || defined(LOGIK_DAX) || defined(SANSA_M200)
#define I2C_AUDIO_ADDRESS 0x34
#else
#error wmcodec not implemented for this target!
#endif

View File

@ -226,13 +226,6 @@
#define UI_LCD_POSX 58 /* x position of lcd */
#define UI_LCD_POSY 67 /* y position of lcd */
#elif defined(IAUDIO_7)
#define UI_TITLE "iAudio7"
#define UI_WIDTH 494 /* width of GUI window */
#define UI_HEIGHT 214 /* height of GUI window */
#define UI_LCD_POSX 131 /* x position of lcd */
#define UI_LCD_POSY 38 /* y position of lcd */
#elif defined(CREATIVE_ZVM) || defined(CREATIVE_ZVM60GB)
#ifdef CREATIVE_ZVM
#define UI_TITLE "Creative Zen Vision:M 30GB"

View File

@ -57,7 +57,7 @@
(defined(HAVE_USBSTACK) && defined(IPOD_NANO2G)) || \
(defined(HAVE_USBSTACK) && (defined(CREATIVE_ZVx))) || \
(defined(HAVE_USBSTACK) && (defined(OLYMPUS_MROBE_500))) || \
defined(CPU_TCC77X) || defined(CPU_TCC780X) || \
defined(CPU_TCC780X) || \
(CONFIG_USBOTG == USBOTG_JZ4740) || \
(CONFIG_USBOTG == USBOTG_JZ4760)
/* TODO: condition should be reset to be only the original

View File

@ -47,7 +47,7 @@
#endif
#ifndef USBSTOR_WRITE_SECTORS_FILTER
#define USBSTOR_WRITE_SECTORS_FILTER() ({ 0; })
#define USBSTOR_WRITE_SECTORS_FILTER() ({ 0; })
#endif
/* the ARC driver currently supports up to 64k USB transfers. This is
@ -433,7 +433,7 @@ void usb_storage_init_connection(void)
/* prime rx endpoint. We only need room for commands */
state = WAITING_FOR_COMMAND;
#if (CONFIG_CPU == IMX31L || defined(CPU_TCC77X) || defined(CPU_TCC780X) || \
#if (CONFIG_CPU == IMX31L || defined(CPU_TCC780X) || \
CONFIG_CPU == S5L8702 || CONFIG_CPU == S5L8701 || CONFIG_CPU == AS3525v2 || \
defined(BOOTLOADER) || CONFIG_CPU == DM320) && !defined(CPU_PP502x)
static unsigned char _cbw_buffer[MAX_CBW_SIZE]

View File

@ -103,10 +103,6 @@ $releasenotes="/wiki/ReleaseNotes315";
name => 'HiFiMAN HM-801',
status => 2,
},
'iaudio7' => {
name => 'iAudio 7',
status => 1,
},
'iaudiom3' => {
name => 'iAudio M3',
status => 3,
@ -195,10 +191,6 @@ $releasenotes="/wiki/ReleaseNotes315";
name => 'iriver iFP-7xx',
status => 1,
},
'logikdax' => {
name => 'Logik DAX',
status => 1,
},
'lyreproto1' => {
name => 'Lyre Prototype 1',
status => 1,
@ -271,10 +263,6 @@ $releasenotes="/wiki/ReleaseNotes315";
name => 'Samsung YP-S3',
status => 1,
},
'sansac100' => {
name => 'SanDisk Sansa c100',
status => 1,
},
'sansac200' => {
name => 'SanDisk Sansa c200',
status => 3,
@ -324,10 +312,6 @@ $releasenotes="/wiki/ReleaseNotes315";
status => 3,
icon => 'sansafuzeplus',
},
'sansam200' => {
name => 'SanDisk Sansa m200',
status => 1,
},
'sansam200v4' => {
name => 'SanDisk Sansa m200 v4',
status => 1,

Some files were not shown because too many files have changed in this diff Show More