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:
parent
77188e41f5
commit
3ba2f6e5c7
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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ć."
|
||||
|
|
|
@ -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*: "Дважды нажмите кнопку Влево для отмены."
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 за прекид."
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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},
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
}
|
|
@ -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 = .;
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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_ */
|
|
@ -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
|
|
@ -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);
|
||||
}
|
|
@ -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_ */
|
|
@ -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);
|
||||
}
|
|
@ -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)
|
||||
{
|
||||
}
|
|
@ -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:
|
|
@ -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;
|
||||
}
|
|
@ -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 */
|
|
@ -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_ */
|
|
@ -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
|
|
@ -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_ */
|
|
@ -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 */
|
|
@ -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 */
|
|
@ -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);
|
||||
}
|
|
@ -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_ */
|
|
@ -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__);
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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 */
|
|
@ -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_ */
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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_ */
|
|
@ -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)
|
||||
{
|
||||
}
|
|
@ -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_ */
|
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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_ */
|
|
@ -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)
|
||||
{
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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 */
|
|
@ -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
|
|
@ -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 */
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue