diff options
20 files changed, 2 insertions, 1721 deletions
diff --git a/apps/SOURCES b/apps/SOURCES index 6fdaea3ca8..1628524805 100644 --- a/apps/SOURCES +++ b/apps/SOURCES | |||
@@ -272,8 +272,6 @@ keymaps/keymap-ma.c | |||
272 | keymaps/keymap-nwz.c | 272 | keymaps/keymap-nwz.c |
273 | #elif CONFIG_KEYPAD == SONY_NWZA860_PAD | 273 | #elif CONFIG_KEYPAD == SONY_NWZA860_PAD |
274 | keymaps/keymap-nwza860.c | 274 | keymaps/keymap-nwza860.c |
275 | #elif CONFIG_KEYPAD == SAMSUNG_YPZ5_PAD | ||
276 | keymaps/keymap-ypz5.c | ||
277 | #elif CONFIG_KEYPAD == IHIFI_PAD | 275 | #elif CONFIG_KEYPAD == IHIFI_PAD |
278 | keymaps/keymap-ihifi.c | 276 | keymaps/keymap-ihifi.c |
279 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 277 | #elif CONFIG_KEYPAD == IHIFI_770_PAD |
diff --git a/apps/keymaps/keymap-ypz5.c b/apps/keymaps/keymap-ypz5.c deleted file mode 100644 index edeebbac3f..0000000000 --- a/apps/keymaps/keymap-ypz5.c +++ /dev/null | |||
@@ -1,406 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 Lorenzo Miori | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | /* Button Code Definitions for the Creative Zen Vision target */ | ||
23 | /* Copied from ZVM target for now... */ | ||
24 | #include <stdio.h> | ||
25 | #include <string.h> | ||
26 | #include <stdlib.h> | ||
27 | |||
28 | #include "config.h" | ||
29 | #include "action.h" | ||
30 | #include "button.h" | ||
31 | #include "settings.h" | ||
32 | |||
33 | /* | ||
34 | * The format of the list is as follows | ||
35 | * { Action Code, Button code, Prereq button code } | ||
36 | * if there's no need to check the previous button's value, use BUTTON_NONE | ||
37 | * Insert LAST_ITEM_IN_LIST at the end of each mapping | ||
38 | */ | ||
39 | |||
40 | /* CONTEXT_CUSTOM's used in this file... | ||
41 | |||
42 | CONTEXT_CUSTOM|CONTEXT_TREE = the standard list/tree defines (without directions) | ||
43 | CONTEXT_CUSTOM|CONTEXT_SETTINGS = the direction keys for the eq/col picker screens | ||
44 | i.e where up/down is inc/dec | ||
45 | CONTEXT_SETTINGS = up/down is prev/next, l/r is inc/dec | ||
46 | |||
47 | */ | ||
48 | |||
49 | static const struct button_mapping button_context_standard[] = { | ||
50 | { ACTION_STD_PREV, BUTTON_UP|BUTTON_REL, BUTTON_NONE }, | ||
51 | { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
52 | { ACTION_STD_NEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, | ||
53 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
54 | |||
55 | { ACTION_STD_PREV, BUTTON_FF|BUTTON_REL, BUTTON_NONE }, | ||
56 | { ACTION_STD_PREVREPEAT, BUTTON_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
57 | { ACTION_STD_NEXT, BUTTON_REW|BUTTON_REL, BUTTON_NONE }, | ||
58 | { ACTION_STD_NEXTREPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
59 | |||
60 | { ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_NONE }, | ||
61 | |||
62 | { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
63 | |||
64 | //{ ACTION_STD_QUICKSCREEN, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
65 | { ACTION_STD_MENU, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE }, | ||
66 | |||
67 | { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
68 | // { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, | ||
69 | |||
70 | LAST_ITEM_IN_LIST | ||
71 | }; /* button_context_standard */ | ||
72 | |||
73 | |||
74 | static const struct button_mapping button_context_wps[] = { | ||
75 | { ACTION_WPS_PLAY, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
76 | //{ ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE }, | ||
77 | |||
78 | { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
79 | { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
80 | |||
81 | { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
82 | { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
83 | { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT }, | ||
84 | { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT }, | ||
85 | |||
86 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
87 | { ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
88 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
89 | { ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
90 | |||
91 | //{ ACTION_WPS_PITCHSCREEN, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
92 | |||
93 | { ACTION_WPS_QUICKSCREEN, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
94 | { ACTION_WPS_MENU, BUTTON_BACK|BUTTON_REL, BUTTON_BACK }, | ||
95 | { ACTION_WPS_VIEW_PLAYLIST, BUTTON_POWER, BUTTON_NONE }, | ||
96 | { ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
97 | |||
98 | { ACTION_WPS_HOTKEY, BUTTON_BACK|BUTTON_REL, BUTTON_NONE }, | ||
99 | { ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_BACK }, | ||
100 | LAST_ITEM_IN_LIST | ||
101 | }; /* button_context_wps */ | ||
102 | |||
103 | static const struct button_mapping button_context_list[] = { | ||
104 | #ifdef HAVE_VOLUME_IN_LIST | ||
105 | { ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
106 | { ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
107 | { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
108 | { ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
109 | #endif | ||
110 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
111 | }; /* button_context_list */ | ||
112 | |||
113 | static const struct button_mapping button_context_tree[] = { | ||
114 | //{ ACTION_TREE_WPS, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
115 | //{ ACTION_TREE_STOP, BUTTON_POWER, BUTTON_NONE }, | ||
116 | //{ ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
117 | //{ ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE }, | ||
118 | //{ ACTION_TREE_HOTKEY, BUTTON_BACK|BUTTON_REL, BUTTON_NONE }, | ||
119 | |||
120 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST) | ||
121 | }; /* button_context_tree */ | ||
122 | |||
123 | static const struct button_mapping button_context_listtree_scroll_without_combo[] = { | ||
124 | { ACTION_NONE, BUTTON_LEFT, BUTTON_NONE }, | ||
125 | { ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK }, | ||
126 | { ACTION_TREE_ROOT_INIT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, | ||
127 | { ACTION_TREE_PGLEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
128 | { ACTION_NONE, BUTTON_RIGHT, BUTTON_NONE }, | ||
129 | { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
130 | { ACTION_TREE_PGRIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
131 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE), | ||
132 | }; | ||
133 | |||
134 | static const struct button_mapping button_context_settings[] = { | ||
135 | { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE }, | ||
136 | { ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
137 | { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE }, | ||
138 | { ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
139 | { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE }, | ||
140 | { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, | ||
141 | { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, | ||
142 | { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
143 | { ACTION_SETTINGS_RESET, BUTTON_POWER, BUTTON_NONE }, | ||
144 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
145 | }; /* button_context_settings */ | ||
146 | |||
147 | static const struct button_mapping button_context_settings_right_is_inc[] = { | ||
148 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, | ||
149 | { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
150 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, | ||
151 | { ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
152 | { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE }, | ||
153 | { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
154 | { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, | ||
155 | { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
156 | { ACTION_SETTINGS_RESET, BUTTON_BACK, BUTTON_NONE }, | ||
157 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
158 | }; /* button_context_settingsgraphical */ | ||
159 | |||
160 | static const struct button_mapping button_context_yesno[] = { | ||
161 | { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE }, | ||
162 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
163 | }; /* button_context_settings_yesno */ | ||
164 | |||
165 | static const struct button_mapping button_context_colorchooser[] = { | ||
166 | { ACTION_STD_OK, BUTTON_BACK|BUTTON_REL, BUTTON_NONE }, | ||
167 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), | ||
168 | }; /* button_context_colorchooser */ | ||
169 | |||
170 | static const struct button_mapping button_context_eq[] = { | ||
171 | { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
172 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS), | ||
173 | }; /* button_context_eq */ | ||
174 | |||
175 | /** Bookmark Screen **/ | ||
176 | static const struct button_mapping button_context_bmark[] = { | ||
177 | { ACTION_BMS_DELETE, BUTTON_BACK, BUTTON_NONE }, | ||
178 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST), | ||
179 | }; /* button_context_bmark */ | ||
180 | |||
181 | static const struct button_mapping button_context_time[] = { | ||
182 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS), | ||
183 | }; /* button_context_time */ | ||
184 | |||
185 | static const struct button_mapping button_context_quickscreen[] = { | ||
186 | { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE }, | ||
187 | { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
188 | { ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
189 | { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
190 | { ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
191 | { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
192 | { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
193 | { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
194 | { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE }, | ||
195 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
196 | }; /* button_context_quickscreen */ | ||
197 | |||
198 | static const struct button_mapping button_context_pitchscreen[] = { | ||
199 | |||
200 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
201 | }; /* button_context_pitchcreen */ | ||
202 | |||
203 | static const struct button_mapping button_context_keyboard[] = { | ||
204 | { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
205 | { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
206 | { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
207 | { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
208 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
209 | { ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE }, | ||
210 | { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, | ||
211 | { ACTION_KBD_PAGE_FLIP, BUTTON_BACK|BUTTON_BACK, BUTTON_NONE }, | ||
212 | { ACTION_KBD_DONE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
213 | { ACTION_KBD_ABORT, BUTTON_BACK|BUTTON_REL, BUTTON_BACK }, | ||
214 | { ACTION_KBD_BACKSPACE, BUTTON_BACK, BUTTON_NONE }, | ||
215 | { ACTION_KBD_BACKSPACE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE }, | ||
216 | { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, | ||
217 | { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
218 | { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
219 | { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
220 | { ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
221 | LAST_ITEM_IN_LIST | ||
222 | }; /* button_context_keyboard */ | ||
223 | |||
224 | /** FM Radio Screen **/ | ||
225 | #if CONFIG_TUNER | ||
226 | static const struct button_mapping button_context_radio[] = { | ||
227 | { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_SELECT }, | ||
228 | { ACTION_FM_MODE, BUTTON_SELECT, BUTTON_SELECT }, | ||
229 | // { ACTION_FM_PRESET, BUTTON_STOP, BUTTON_NONE }, | ||
230 | { ACTION_FM_PLAY, BUTTON_POWER | BUTTON_REL, BUTTON_NONE }, | ||
231 | { ACTION_FM_STOP, BUTTON_POWER | BUTTON_REPEAT, BUTTON_NONE }, | ||
232 | { ACTION_FM_EXIT, BUTTON_BACK, BUTTON_NONE }, | ||
233 | |||
234 | //{ ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, | ||
235 | //{ ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
236 | //{ ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
237 | //{ ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
238 | |||
239 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) | ||
240 | }; /* button_context_radio */ | ||
241 | #endif | ||
242 | |||
243 | #ifdef HAVE_RECORDING | ||
244 | static const struct button_mapping button_context_recscreen[] = { | ||
245 | |||
246 | { ACTION_REC_PAUSE, BUTTON_SELECT, BUTTON_NONE }, | ||
247 | { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE }, | ||
248 | { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
249 | { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, | ||
250 | { ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
251 | |||
252 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) | ||
253 | }; /* button_context_recscreen */ | ||
254 | #endif | ||
255 | |||
256 | #ifdef USB_ENABLE_HID | ||
257 | static const struct button_mapping button_context_usb_hid[] = { | ||
258 | { ACTION_USB_HID_MODE_SWITCH_NEXT, BUTTON_BACK|BUTTON_REL, BUTTON_BACK }, | ||
259 | { ACTION_USB_HID_MODE_SWITCH_PREV, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
260 | |||
261 | LAST_ITEM_IN_LIST | ||
262 | }; /* button_context_usb_hid */ | ||
263 | |||
264 | static const struct button_mapping button_context_usb_hid_mode_multimedia[] = { | ||
265 | |||
266 | { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
267 | { ACTION_USB_HID_MULTIMEDIA_VOLUME_DOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
268 | { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP, BUTTON_NONE }, | ||
269 | { ACTION_USB_HID_MULTIMEDIA_VOLUME_UP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
270 | { ACTION_USB_HID_MULTIMEDIA_VOLUME_MUTE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, | ||
271 | { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_PLAY_PAUSE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
272 | { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
273 | { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_PREV, BUTTON_REW|BUTTON_REL, BUTTON_REW }, | ||
274 | { ACTION_USB_HID_MULTIMEDIA_PLAYBACK_TRACK_NEXT, BUTTON_FF|BUTTON_REL, BUTTON_FF }, | ||
275 | |||
276 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
277 | }; /* button_context_usb_hid_mode_multimedia */ | ||
278 | |||
279 | |||
280 | static const struct button_mapping button_context_usb_hid_mode_presentation[] = { | ||
281 | { ACTION_USB_HID_PRESENTATION_SLIDESHOW_START, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
282 | { ACTION_USB_HID_PRESENTATION_SLIDESHOW_LEAVE, BUTTON_POWER|BUTTON_REPEAT, BUTTON_POWER }, | ||
283 | { ACTION_USB_HID_PRESENTATION_SLIDE_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
284 | { ACTION_USB_HID_PRESENTATION_SLIDE_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
285 | { ACTION_USB_HID_PRESENTATION_SLIDE_FIRST, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
286 | { ACTION_USB_HID_PRESENTATION_SLIDE_LAST, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
287 | //{ ACTION_USB_HID_PRESENTATION_SCREEN_BLACK, BUTTON_BOTTOMRIGHT|BUTTON_REPEAT, BUTTON_BOTTOMRIGHT }, | ||
288 | //{ ACTION_USB_HID_PRESENTATION_SCREEN_WHITE, BUTTON_BOTTOMLEFT|BUTTON_REPEAT, BUTTON_BOTTOMLEFT }, | ||
289 | { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_UP, BUTTON_NONE }, | ||
290 | { ACTION_USB_HID_PRESENTATION_LINK_PREV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
291 | { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_DOWN, BUTTON_NONE }, | ||
292 | { ACTION_USB_HID_PRESENTATION_LINK_NEXT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
293 | { ACTION_USB_HID_PRESENTATION_MOUSE_CLICK, BUTTON_SELECT, BUTTON_SELECT }, | ||
294 | { ACTION_USB_HID_PRESENTATION_MOUSE_OVER, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
295 | |||
296 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
297 | }; /* button_context_usb_hid_mode_presentation */ | ||
298 | |||
299 | static const struct button_mapping button_context_usb_hid_mode_browser[] = { | ||
300 | { ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_UP, BUTTON_NONE }, | ||
301 | { ACTION_USB_HID_BROWSER_SCROLL_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
302 | { ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
303 | { ACTION_USB_HID_BROWSER_SCROLL_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
304 | { ACTION_USB_HID_BROWSER_ZOOM_IN, BUTTON_VOL_UP, BUTTON_NONE }, | ||
305 | { ACTION_USB_HID_BROWSER_ZOOM_IN, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
306 | { ACTION_USB_HID_BROWSER_ZOOM_OUT, BUTTON_VOL_DOWN, BUTTON_NONE }, | ||
307 | { ACTION_USB_HID_BROWSER_ZOOM_OUT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
308 | { ACTION_USB_HID_BROWSER_ZOOM_RESET, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE }, | ||
309 | { ACTION_USB_HID_BROWSER_TAB_PREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, | ||
310 | { ACTION_USB_HID_BROWSER_TAB_NEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, | ||
311 | { ACTION_USB_HID_BROWSER_TAB_CLOSE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK }, | ||
312 | { ACTION_USB_HID_BROWSER_HISTORY_BACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT }, | ||
313 | { ACTION_USB_HID_BROWSER_HISTORY_FORWARD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT }, | ||
314 | { ACTION_USB_HID_BROWSER_VIEW_FULL_SCREEN, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT }, | ||
315 | |||
316 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
317 | }; /* button_context_usb_hid_mode_browser */ | ||
318 | |||
319 | #ifdef HAVE_USB_HID_MOUSE | ||
320 | static const struct button_mapping button_context_usb_hid_mode_mouse[] = { | ||
321 | { ACTION_USB_HID_MOUSE_UP, BUTTON_UP, BUTTON_NONE }, | ||
322 | { ACTION_USB_HID_MOUSE_UP_REP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, | ||
323 | { ACTION_USB_HID_MOUSE_DOWN, BUTTON_DOWN, BUTTON_NONE }, | ||
324 | { ACTION_USB_HID_MOUSE_DOWN_REP, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, | ||
325 | { ACTION_USB_HID_MOUSE_LEFT, BUTTON_LEFT, BUTTON_NONE }, | ||
326 | { ACTION_USB_HID_MOUSE_LEFT_REP, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, | ||
327 | { ACTION_USB_HID_MOUSE_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, | ||
328 | { ACTION_USB_HID_MOUSE_RIGHT_REP, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, | ||
329 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT, BUTTON_SELECT, BUTTON_NONE }, | ||
330 | { ACTION_USB_HID_MOUSE_BUTTON_LEFT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE }, | ||
331 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT, BUTTON_POWER, BUTTON_NONE }, | ||
332 | { ACTION_USB_HID_MOUSE_BUTTON_RIGHT_REL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, | ||
333 | |||
334 | { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_FF, BUTTON_NONE }, | ||
335 | { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_UP, BUTTON_FF|BUTTON_REPEAT, BUTTON_NONE }, | ||
336 | { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_REW, BUTTON_NONE }, | ||
337 | { ACTION_USB_HID_MOUSE_WHEEL_SCROLL_DOWN, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE }, | ||
338 | |||
339 | LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_USB_HID) | ||
340 | }; /* button_context_usb_hid_mode_mouse */ | ||
341 | #endif | ||
342 | #endif | ||
343 | |||
344 | const struct button_mapping* get_context_mapping(int context) | ||
345 | { | ||
346 | switch (context) | ||
347 | { | ||
348 | case CONTEXT_STD: | ||
349 | return button_context_standard; | ||
350 | case CONTEXT_WPS: | ||
351 | return button_context_wps; | ||
352 | case CONTEXT_LIST: | ||
353 | return button_context_list; | ||
354 | case CONTEXT_MAINMENU: | ||
355 | case CONTEXT_TREE: | ||
356 | return button_context_listtree_scroll_without_combo; | ||
357 | case CONTEXT_CUSTOM|CONTEXT_TREE: | ||
358 | return button_context_tree; | ||
359 | #if CONFIG_TUNER | ||
360 | case CONTEXT_FM: | ||
361 | return button_context_radio; | ||
362 | #endif | ||
363 | case CONTEXT_SETTINGS: | ||
364 | return button_context_settings; | ||
365 | case CONTEXT_CUSTOM|CONTEXT_SETTINGS: | ||
366 | return button_context_settings_right_is_inc; | ||
367 | case CONTEXT_SETTINGS_COLOURCHOOSER: | ||
368 | return button_context_colorchooser; | ||
369 | case CONTEXT_SETTINGS_EQ: | ||
370 | return button_context_eq; | ||
371 | case CONTEXT_SETTINGS_TIME: | ||
372 | return button_context_time; | ||
373 | case CONTEXT_YESNOSCREEN: | ||
374 | return button_context_yesno; | ||
375 | case CONTEXT_BOOKMARKSCREEN: | ||
376 | return button_context_bmark; | ||
377 | case CONTEXT_QUICKSCREEN: | ||
378 | return button_context_quickscreen; | ||
379 | case CONTEXT_PITCHSCREEN: | ||
380 | return button_context_pitchscreen; | ||
381 | case CONTEXT_KEYBOARD: | ||
382 | case CONTEXT_MORSE_INPUT: | ||
383 | return button_context_keyboard; | ||
384 | #ifdef HAVE_RECORDING | ||
385 | case CONTEXT_SETTINGS_RECTRIGGER: | ||
386 | return button_context_settings_right_is_inc; | ||
387 | case CONTEXT_RECSCREEN: | ||
388 | return button_context_recscreen; | ||
389 | #endif | ||
390 | #ifdef USB_ENABLE_HID | ||
391 | case CONTEXT_USB_HID: | ||
392 | return button_context_usb_hid; | ||
393 | case CONTEXT_USB_HID_MODE_MULTIMEDIA: | ||
394 | return button_context_usb_hid_mode_multimedia; | ||
395 | case CONTEXT_USB_HID_MODE_PRESENTATION: | ||
396 | return button_context_usb_hid_mode_presentation; | ||
397 | case CONTEXT_USB_HID_MODE_BROWSER: | ||
398 | return button_context_usb_hid_mode_browser; | ||
399 | #ifdef HAVE_USB_HID_MOUSE | ||
400 | case CONTEXT_USB_HID_MODE_MOUSE: | ||
401 | return button_context_usb_hid_mode_mouse; | ||
402 | #endif | ||
403 | #endif | ||
404 | } | ||
405 | return button_context_standard; | ||
406 | } | ||
diff --git a/firmware/SOURCES b/firmware/SOURCES index 8d7232f206..e2f7e26f84 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -1450,17 +1450,6 @@ target/arm/imx233/sansa-fuzeplus/debug-fuzeplus.c | |||
1450 | target/arm/imx233/sansa-fuzeplus/powermgmt-fuzeplus.c | 1450 | target/arm/imx233/sansa-fuzeplus/powermgmt-fuzeplus.c |
1451 | #endif | 1451 | #endif |
1452 | 1452 | ||
1453 | #ifdef SAMSUNG_YPZ5 | ||
1454 | target/arm/imx233/samsung-ypz5/backlight-ypz5.c | ||
1455 | target/arm/imx233/samsung-ypz5/lcd-ypz5.c | ||
1456 | target/arm/imx233/samsung-ypz5/button-ypz5.c | ||
1457 | target/arm/imx233/samsung-ypz5/debug-ypz5.c | ||
1458 | target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c | ||
1459 | #ifndef BOOTLOADER | ||
1460 | target/arm/imx233/fmradio-imx233.c | ||
1461 | #endif | ||
1462 | #endif | ||
1463 | |||
1464 | #ifdef SANSA_CLIPZIP | 1453 | #ifdef SANSA_CLIPZIP |
1465 | target/arm/as3525/sansa-clipzip/lcd-clipzip.c | 1454 | target/arm/as3525/sansa-clipzip/lcd-clipzip.c |
1466 | target/arm/as3525/sansa-clipzip/button-clipzip.c | 1455 | target/arm/as3525/sansa-clipzip/button-clipzip.c |
diff --git a/firmware/export/config.h b/firmware/export/config.h index 702b821856..383677865f 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h | |||
@@ -145,7 +145,6 @@ | |||
145 | #define MA_PAD 56 | 145 | #define MA_PAD 56 |
146 | #define SONY_NWZ_PAD 57 | 146 | #define SONY_NWZ_PAD 57 |
147 | #define CREATIVE_ZEN_PAD 58 | 147 | #define CREATIVE_ZEN_PAD 58 |
148 | #define SAMSUNG_YPZ5_PAD 59 | ||
149 | #define IHIFI_PAD 60 | 148 | #define IHIFI_PAD 60 |
150 | #define SAMSUNG_YPR1_PAD 61 | 149 | #define SAMSUNG_YPR1_PAD 61 |
151 | #define SAMSUNG_YH92X_PAD 62 | 150 | #define SAMSUNG_YH92X_PAD 62 |
@@ -264,7 +263,6 @@ | |||
264 | #define LCD_CREATIVEZENMOZAIC 56 /* as used by the Creative ZEN Mozaic (FGD0801) */ | 263 | #define LCD_CREATIVEZENMOZAIC 56 /* as used by the Creative ZEN Mozaic (FGD0801) */ |
265 | #define LCD_ILI9342C 57 /* another type of lcd used by HiFi E.T MA9/MA8 */ | 264 | #define LCD_ILI9342C 57 /* another type of lcd used by HiFi E.T MA9/MA8 */ |
266 | #define LCD_CREATIVEZENV 58 /* as used by the Creative Zen V (Plus) */ | 265 | #define LCD_CREATIVEZENV 58 /* as used by the Creative Zen V (Plus) */ |
267 | #define LCD_SAMSUNGYPZ5 59 /* as used by Samsung YP-Z5 */ | ||
268 | #define LCD_IHIFI 60 /* as used by IHIFI 760/960 */ | 266 | #define LCD_IHIFI 60 /* as used by IHIFI 760/960 */ |
269 | #define LCD_CREATIVEZENXFISTYLE 61 /* as used by Creative Zen X-Fi Style */ | 267 | #define LCD_CREATIVEZENXFISTYLE 61 /* as used by Creative Zen X-Fi Style */ |
270 | #define LCD_SAMSUNGYPR1 62 /* as used by Samsung YP-R1 */ | 268 | #define LCD_SAMSUNGYPR1 62 /* as used by Samsung YP-R1 */ |
@@ -543,8 +541,6 @@ Lyre prototype 1 */ | |||
543 | #include "config/sonynwze370.h" | 541 | #include "config/sonynwze370.h" |
544 | #elif defined(SONY_NWZE360) | 542 | #elif defined(SONY_NWZE360) |
545 | #include "config/sonynwze360.h" | 543 | #include "config/sonynwze360.h" |
546 | #elif defined(SAMSUNG_YPZ5) | ||
547 | #include "config/samsungypz5.h" | ||
548 | #elif defined(IHIFI760) | 544 | #elif defined(IHIFI760) |
549 | #include "config/ihifi760.h" | 545 | #include "config/ihifi760.h" |
550 | #elif defined(IHIFI770) | 546 | #elif defined(IHIFI770) |
diff --git a/firmware/export/config/samsungypz5.h b/firmware/export/config/samsungypz5.h deleted file mode 100644 index 2af62c1cbe..0000000000 --- a/firmware/export/config/samsungypz5.h +++ /dev/null | |||
@@ -1,204 +0,0 @@ | |||
1 | /* | ||
2 | * This config file is for the Samsung YP-Z5 | ||
3 | */ | ||
4 | #define IMX233_SUBTARGET 3600 | ||
5 | #define IMX233_PACKAGE IMX233_BGA169 | ||
6 | #define IMX233_PARTITIONS IMX233_FREESCALE | ||
7 | |||
8 | /* For Rolo and boot loader */ | ||
9 | #define MODEL_NUMBER 84 | ||
10 | #define MODEL_NAME "Samsung YP-Z5" | ||
11 | /* Define if boot data from bootloader has been enabled for the target */ | ||
12 | #define HAVE_BOOTDATA | ||
13 | |||
14 | #define HW_SAMPR_CAPS SAMPR_CAP_ALL_48 | ||
15 | |||
16 | /* define this if you have recording possibility */ | ||
17 | #define HAVE_RECORDING | ||
18 | |||
19 | #define REC_SAMPR_CAPS SAMPR_CAP_ALL_48 | ||
20 | |||
21 | /* Default recording levels */ | ||
22 | #define DEFAULT_REC_MIC_GAIN 23 | ||
23 | #define DEFAULT_REC_LEFT_GAIN 23 | ||
24 | #define DEFAULT_REC_RIGHT_GAIN 23 | ||
25 | |||
26 | /* Define bitmask of input sources - recordable bitmask can be defined | ||
27 | explicitly if different */ | ||
28 | #define HAVE_FMRADIO_IN | ||
29 | #define INPUT_SRC_CAPS (SRC_CAP_MIC | SRC_CAP_FMRADIO) | ||
30 | |||
31 | |||
32 | |||
33 | /* define this if you have a colour LCD */ | ||
34 | #define HAVE_LCD_COLOR | ||
35 | |||
36 | #ifndef BOOTLOADER | ||
37 | #define HAVE_ALBUMART | ||
38 | |||
39 | /* define this to enable bitmap scaling */ | ||
40 | #define HAVE_BMP_SCALING | ||
41 | |||
42 | /* define this to enable JPEG decoding */ | ||
43 | #define HAVE_JPEG | ||
44 | |||
45 | /* Define this if a programmable hotkey is mapped */ | ||
46 | #define HAVE_HOTKEY | ||
47 | |||
48 | /* define this if you have access to the quickscreen */ | ||
49 | #define HAVE_QUICKSCREEN | ||
50 | |||
51 | /* define this if you would like tagcache to build on this target */ | ||
52 | #define HAVE_TAGCACHE | ||
53 | |||
54 | /* define this if the target has volume keys which can be used in the lists */ | ||
55 | #define HAVE_VOLUME_IN_LIST | ||
56 | |||
57 | /* define this if you have LCD enable function */ | ||
58 | //#define HAVE_LCD_ENABLE | ||
59 | |||
60 | /* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE | ||
61 | should be defined as well. | ||
62 | #define HAVE_LCD_SLEEP | ||
63 | #define HAVE_LCD_SLEEP_SETTING | ||
64 | */ | ||
65 | |||
66 | /* define this if you can flip your LCD | ||
67 | #define HAVE_LCD_FLIP | ||
68 | */ | ||
69 | |||
70 | /* define this if you can invert the colours on your LCD | ||
71 | #define HAVE_LCD_INVERT | ||
72 | */ | ||
73 | |||
74 | /* define this if you have a real-time clock */ | ||
75 | #define CONFIG_RTC RTC_IMX233 | ||
76 | |||
77 | /* define this if you have a real-time clock with alarm facilities */ | ||
78 | #define HAVE_RTC_ALARM | ||
79 | |||
80 | #endif /* !BOOTLOADER */ | ||
81 | |||
82 | /* define this if you have an i.MX23 codec */ | ||
83 | #define HAVE_IMX233_CODEC | ||
84 | |||
85 | #define CONFIG_TUNER TEA5767 | ||
86 | #define CONFIG_TUNER_XTAL 32768 | ||
87 | |||
88 | /* There is no hardware tone control */ | ||
89 | #define HAVE_SW_TONE_CONTROLS | ||
90 | |||
91 | #define CONFIG_KEYPAD SAMSUNG_YPZ5_PAD | ||
92 | #define HAVE_TOUCHPAD_IMX233 | ||
93 | |||
94 | /* Define this to enable morse code input */ | ||
95 | #define HAVE_MORSE_INPUT | ||
96 | |||
97 | |||
98 | |||
99 | |||
100 | /* LCD dimensions */ | ||
101 | #define LCD_WIDTH 128 | ||
102 | #define LCD_HEIGHT 160 | ||
103 | /* sqrt(128^2 + 160^2) / 1.8 = 113.8 */ | ||
104 | #define LCD_DPI 114 | ||
105 | #define LCD_DEPTH 16 /* 65536 colours */ | ||
106 | #define LCD_PIXELFORMAT RGB565 /* rgb565 */ | ||
107 | |||
108 | /* Define this if you have a software controlled poweroff */ | ||
109 | #define HAVE_SW_POWEROFF | ||
110 | |||
111 | /* Some devices seem to be FAT16 formatted */ | ||
112 | #define HAVE_FAT16SUPPORT | ||
113 | |||
114 | /* The number of bytes reserved for loadable codecs */ | ||
115 | #define CODEC_SIZE 0x100000 | ||
116 | |||
117 | /* The number of bytes reserved for loadable plugins */ | ||
118 | #define PLUGIN_BUFFER_SIZE 0x80000 | ||
119 | |||
120 | #define AB_REPEAT_ENABLE | ||
121 | |||
122 | /* Define this for LCD backlight available */ | ||
123 | #define HAVE_BACKLIGHT | ||
124 | #define HAVE_BACKLIGHT_BRIGHTNESS | ||
125 | |||
126 | /* Main LCD backlight brightness range and defaults */ | ||
127 | #define MIN_BRIGHTNESS_SETTING 1 | ||
128 | #define MAX_BRIGHTNESS_SETTING 18 | ||
129 | #define DEFAULT_BRIGHTNESS_SETTING 5 | ||
130 | |||
131 | /* Which backlight fading type? */ | ||
132 | #define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING | ||
133 | |||
134 | /* define this if you have a flash memory storage */ | ||
135 | //#define HAVE_FLASH_STORAGE | ||
136 | |||
137 | #define CONFIG_STORAGE (STORAGE_RAMDISK) | ||
138 | //#define CONFIG_NAND NAND_IMX233 | ||
139 | //#define NUM_DRIVES 0 | ||
140 | |||
141 | /* Extra threads: touchpad and rds */ | ||
142 | //#define TARGET_EXTRA_THREADS 2 | ||
143 | |||
144 | /* todo */ | ||
145 | #define BATTERY_CAPACITY_DEFAULT 550 /* default battery capacity */ | ||
146 | #define BATTERY_CAPACITY_MIN 550 /* min. capacity selectable */ | ||
147 | #define BATTERY_CAPACITY_MAX 550 /* max. capacity selectable */ | ||
148 | #define BATTERY_CAPACITY_INC 0 /* capacity increment */ | ||
149 | #define BATTERY_TYPES_COUNT 1 /* only one type */ | ||
150 | |||
151 | #define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE | ||
152 | |||
153 | /* Charging implemented in a target-specific algorithm */ | ||
154 | #define CONFIG_CHARGING CHARGING_TARGET | ||
155 | |||
156 | /* define this if the unit can be powered or charged via USB */ | ||
157 | #define HAVE_USB_POWER | ||
158 | |||
159 | /* Define this if you have an IMX233*/ | ||
160 | #define CONFIG_CPU IMX233 | ||
161 | |||
162 | /* Define this if you want to use the IMX233 i2c interface */ | ||
163 | #define CONFIG_I2C I2C_IMX233 | ||
164 | |||
165 | /* define current usage levels (based on battery bench) */ | ||
166 | #define CURRENT_NORMAL 35 | ||
167 | #define CURRENT_BACKLIGHT 30 | ||
168 | #define CURRENT_RECORD CURRENT_NORMAL | ||
169 | |||
170 | /* maximum charging current */ | ||
171 | #define CURRENT_MAX_CHG 200 | ||
172 | |||
173 | /* Define this to the CPU frequency */ | ||
174 | #define CPU_FREQ 454000000 | ||
175 | |||
176 | /* Type of LCD */ | ||
177 | #define CONFIG_LCD LCD_SAMSUNGYPZ5 | ||
178 | |||
179 | /* Offset ( in the firmware file's header ) to the file CRC and data. These are | ||
180 | only used when loading the old format rockbox.e200 file */ | ||
181 | #define FIRMWARE_OFFSET_FILE_CRC 0x0 | ||
182 | #define FIRMWARE_OFFSET_FILE_DATA 0x8 | ||
183 | |||
184 | /* USB On-the-go */ | ||
185 | #define CONFIG_USBOTG USBOTG_ARC | ||
186 | |||
187 | /* enable these for the experimental usb stack */ | ||
188 | #define HAVE_USBSTACK | ||
189 | #define USB_VENDOR_ID 0x04e8 | ||
190 | #define USB_PRODUCT_ID 0x5041 | ||
191 | #define HAVE_USB_HID_MOUSE | ||
192 | #define HAVE_BOOTLOADER_USB_MODE | ||
193 | |||
194 | /* Define this if you have adjustable CPU frequency */ | ||
195 | //#define HAVE_ADJUSTABLE_CPU_FREQ | ||
196 | |||
197 | /* Virtual LED (icon) */ | ||
198 | #define CONFIG_LED LED_VIRTUAL | ||
199 | |||
200 | #define BOOTFILE_EXT "samsung" | ||
201 | #define BOOTFILE "rockbox." BOOTFILE_EXT | ||
202 | #define BOOTDIR "/.rockbox" | ||
203 | |||
204 | #define INCLUDE_TIMEOUT_API | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/audio-target.h b/firmware/target/arm/imx233/samsung-ypz5/audio-target.h deleted file mode 100644 index c0bee26e45..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/audio-target.h +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Lorenzo Miori | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef __audio_target__ | ||
22 | #define __audio_target__ | ||
23 | |||
24 | /* MUTE_ON toggles a transistor that in turns toggles a mosfet... */ | ||
25 | #define IMX233_AUDIO_HP_GATE_BANK 1 | ||
26 | #define IMX233_AUDIO_HP_GATE_PIN 22 | ||
27 | #define IMX233_AUDIO_HP_GATE_INVERTED | ||
28 | |||
29 | #define IMX233_AUDIO_COUPLING_MODE ACM_CAP | ||
30 | |||
31 | #endif /* __audio_target__ */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/backlight-target.h b/firmware/target/arm/imx233/samsung-ypz5/backlight-target.h deleted file mode 100644 index e26f83811d..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/backlight-target.h +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2013 by Lorenzo Miori | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #ifndef BACKLIGHT_TARGET_H | ||
21 | #define BACKLIGHT_TARGET_H | ||
22 | |||
23 | bool backlight_hw_init(void); | ||
24 | void backlight_hw_on(void); | ||
25 | void backlight_hw_off(void); | ||
26 | void backlight_hw_brightness(int brightness); | ||
27 | |||
28 | #endif /* BACKLIGHT_TARGET_H */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/backlight-ypz5.c b/firmware/target/arm/imx233/samsung-ypz5/backlight-ypz5.c deleted file mode 100644 index b02c3a1d16..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/backlight-ypz5.c +++ /dev/null | |||
@@ -1,149 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2013 by Lorenzo Miori | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "config.h" | ||
22 | #include "system.h" | ||
23 | #include "lcd.h" | ||
24 | #include "backlight.h" | ||
25 | #include "backlight-target.h" | ||
26 | #include "pinctrl-imx233.h" | ||
27 | |||
28 | /** | ||
29 | * AAT3151 Backlight Controller | ||
30 | */ | ||
31 | |||
32 | /* Timings */ | ||
33 | #define TIME_OFF 500 | ||
34 | #define TIME_LOW 50 | ||
35 | #define TIME_HI 50 | ||
36 | #define TIME_LAT 500 | ||
37 | |||
38 | /* Number of raising edges to select the particular register */ | ||
39 | #define D1_D4_CURRENT_E 17 | ||
40 | #define D1_D3_CURRENT_E 18 | ||
41 | #define D4_CURRENT_E 19 | ||
42 | #define MAX_CURRENT_E 20 | ||
43 | #define LOW_CURRENT_E 21 | ||
44 | |||
45 | /* The actual register address / number */ | ||
46 | #define D1_D4_CURRENT 1 | ||
47 | #define D1_D3_CURRENT 2 | ||
48 | #define D4_CURRENT 3 | ||
49 | #define MAX_CURRENT 4 | ||
50 | #define LOW_CURRENT 5 | ||
51 | |||
52 | /* Valid values for LOW_CURRENT register */ | ||
53 | #define MAX_CURRENT_20 1 | ||
54 | #define MAX_CURRENT_30 2 | ||
55 | #define MAX_CURRENT_15 3 | ||
56 | #define MAX_CURRENT_LOW_CURRENT 4 | ||
57 | |||
58 | static int current_level = -1; | ||
59 | |||
60 | static void create_raising_edges(int num) | ||
61 | { | ||
62 | while (num--) | ||
63 | { | ||
64 | /* Setting a register takes a sufficient small amount of time, | ||
65 | * in the order of 50 ns. Thus the necessary 2 delays TIME_LOW/TIME_HI | ||
66 | * are not strictly necessary */ | ||
67 | imx233_pinctrl_set_gpio(3, 13, false); | ||
68 | imx233_pinctrl_set_gpio(3, 13, true); | ||
69 | } | ||
70 | } | ||
71 | |||
72 | static void aat3151_write(int addr, int data) | ||
73 | { | ||
74 | create_raising_edges(16 + addr); | ||
75 | udelay(TIME_LAT); | ||
76 | create_raising_edges(data); | ||
77 | udelay(TIME_LAT); | ||
78 | } | ||
79 | |||
80 | void backlight_hw_brightness(int level) | ||
81 | { | ||
82 | /* Don't try to reset backlight if not necessary | ||
83 | * Moreover this helps to avoid flickering when | ||
84 | * being in some screens like USB mode and | ||
85 | * pressing some keys / touchpad... | ||
86 | */ | ||
87 | if (current_level == level) return; | ||
88 | |||
89 | /* Check for limits and adjust in case */ | ||
90 | level = MIN(MAX_BRIGHTNESS_SETTING, MAX(0, level)); | ||
91 | |||
92 | if (level == 0) | ||
93 | { | ||
94 | /* Set pin low for a sufficient time, puts the device into low-power consumption state | ||
95 | * In other words backlight goes off | ||
96 | */ | ||
97 | imx233_pinctrl_set_gpio(3, 13, false); | ||
98 | udelay(TIME_OFF); | ||
99 | } | ||
100 | else | ||
101 | { | ||
102 | if (level > 3) { | ||
103 | /* This enables 16 levels of backlight */ | ||
104 | aat3151_write(MAX_CURRENT, MAX_CURRENT_15); | ||
105 | /* Set the value according Table 1 in datasheet | ||
106 | * For MAX_CURRENT_15, the scale is from 0 mA to 15 mA in 16 steps | ||
107 | */ | ||
108 | aat3151_write(D1_D3_CURRENT, 19 - level); | ||
109 | } | ||
110 | else { | ||
111 | /* This enables other 4 levels of backlight */ | ||
112 | aat3151_write(MAX_CURRENT, MAX_CURRENT_LOW_CURRENT); | ||
113 | /* Set the value according Table 1 in datasheet | ||
114 | * For LOW_CURRENT, there is no "real" scale. We have scattered values. | ||
115 | * We are interested in the last 3 -> 0.5 mA; 1 mA; 2 mA | ||
116 | */ | ||
117 | aat3151_write(LOW_CURRENT, 13 + level); | ||
118 | } | ||
119 | } | ||
120 | current_level = level; | ||
121 | } | ||
122 | |||
123 | bool backlight_hw_init(void) | ||
124 | { | ||
125 | imx233_pinctrl_acquire(3, 13, "backlight"); | ||
126 | imx233_pinctrl_set_function(3, 13, PINCTRL_FUNCTION_GPIO); | ||
127 | imx233_pinctrl_set_drive(3, 13, PINCTRL_DRIVE_4mA); | ||
128 | imx233_pinctrl_enable_gpio(3, 13, true); | ||
129 | imx233_pinctrl_set_gpio(3, 13, false); | ||
130 | return true; | ||
131 | } | ||
132 | |||
133 | void backlight_hw_on(void) | ||
134 | { | ||
135 | #ifdef HAVE_LCD_ENABLE | ||
136 | lcd_enable(true); /* power on lcd + visible display */ | ||
137 | #endif | ||
138 | /* restore the previous backlight level */ | ||
139 | backlight_hw_brightness(backlight_brightness); | ||
140 | } | ||
141 | |||
142 | void backlight_hw_off(void) | ||
143 | { | ||
144 | /* there is no real on/off but we can set to 0 brightness */ | ||
145 | backlight_hw_brightness(0); | ||
146 | #ifdef HAVE_LCD_ENABLE | ||
147 | lcd_enable(false); /* power off visible display */ | ||
148 | #endif | ||
149 | } | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/button-target.h b/firmware/target/arm/imx233/samsung-ypz5/button-target.h deleted file mode 100644 index 2f94f5fb31..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/button-target.h +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Lorenzo Miori | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef _BUTTON_TARGET_H_ | ||
22 | #define _BUTTON_TARGET_H_ | ||
23 | |||
24 | #include <stdbool.h> | ||
25 | |||
26 | #define HAS_BUTTON_HOLD | ||
27 | #define IMX233_BUTTON_LRADC_CHANNEL 0 | ||
28 | #define IMX233_BUTTON_LRADC_HOLD_DET BLH_GPIO | ||
29 | #define BLH_GPIO_BANK 0 | ||
30 | #define BLH_GPIO_PIN 13 | ||
31 | |||
32 | #define IMX233_BUTTON_LRADC_CHANNEL 0 | ||
33 | |||
34 | /* Main unit's buttons */ | ||
35 | #define BUTTON_POWER 0x00000001 | ||
36 | #define BUTTON_VOL_UP 0x00000002 | ||
37 | #define BUTTON_VOL_DOWN 0x00000004 | ||
38 | /* Directional buttons by touchpad */ | ||
39 | #define BUTTON_LEFT 0x00000008 | ||
40 | #define BUTTON_UP 0x00000010 | ||
41 | #define BUTTON_RIGHT 0x00000020 | ||
42 | #define BUTTON_DOWN 0x00000040 | ||
43 | #define BUTTON_SELECT 0x00000080 | ||
44 | #define BUTTON_BACK 0x00000100 | ||
45 | #define BUTTON_REW 0x00000200 | ||
46 | #define BUTTON_FF 0x00000400 | ||
47 | |||
48 | |||
49 | #define BUTTON_MAIN (BUTTON_VOL_UP | BUTTON_VOL_DOWN | BUTTON_POWER | BUTTON_LEFT | \ | ||
50 | BUTTON_UP | BUTTON_RIGHT | BUTTON_DOWN | BUTTON_SELECT | \ | ||
51 | BUTTON_BACK | BUTTON_REW | BUTTON_FF) | ||
52 | |||
53 | /* Software power-off */ | ||
54 | #define POWEROFF_BUTTON BUTTON_POWER | ||
55 | #define POWEROFF_COUNT 10 | ||
56 | |||
57 | bool button_debug_screen(void); | ||
58 | |||
59 | #endif /* _BUTTON_TARGET_H_ */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/button-ypz5.c b/firmware/target/arm/imx233/samsung-ypz5/button-ypz5.c deleted file mode 100644 index 91fe059c31..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/button-ypz5.c +++ /dev/null | |||
@@ -1,273 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (C) 2013 by Lorenzo Miori | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | |||
21 | #include "system.h" | ||
22 | #include "lcd.h" | ||
23 | #include "string.h" | ||
24 | #include "kernel.h" | ||
25 | #include "pinctrl-imx233.h" | ||
26 | #include "power-imx233.h" | ||
27 | #include "button-lradc-imx233.h" | ||
28 | #include "button-target.h" | ||
29 | #include "button-imx233.h" | ||
30 | |||
31 | #ifndef BOOTLOADER | ||
32 | #include "touchscreen.h" | ||
33 | #include "touchscreen-imx233.h" | ||
34 | #include "button.h" | ||
35 | #include "font.h" | ||
36 | #include "action.h" | ||
37 | #endif | ||
38 | |||
39 | #define CHAN 0 /* ADC channel for the buttons */ | ||
40 | #define I_VDDIO 0 /* Mock button to define the relative voltage to compute voltage from ADC steps */ | ||
41 | |||
42 | struct imx233_button_map_t imx233_button_map[] = | ||
43 | { | ||
44 | [I_VDDIO] = IMX233_BUTTON_(VDDIO, VDDIO(3760), "vddio"), /* we need VDDIO for relative */ | ||
45 | IMX233_BUTTON_(HOLD, GPIO(0, 13), "hold"), | ||
46 | IMX233_BUTTON(POWER, PSWITCH(1), "power"), | ||
47 | IMX233_BUTTON(SELECT, PSWITCH(3), "select"), | ||
48 | IMX233_BUTTON(VOL_UP, LRADC_REL(CHAN, 485, I_VDDIO), "vol up"), | ||
49 | IMX233_BUTTON(VOL_DOWN, LRADC_REL(CHAN, 975, I_VDDIO), "vol down"), | ||
50 | IMX233_BUTTON(BACK, LRADC_REL(CHAN, 1521, I_VDDIO), "back"), | ||
51 | IMX233_BUTTON(FF, LRADC_REL(CHAN, 2000, I_VDDIO), "ff"), | ||
52 | IMX233_BUTTON(REW, LRADC_REL(CHAN, 2480, I_VDDIO), "rew"), | ||
53 | IMX233_BUTTON_(END, END(), "") | ||
54 | }; | ||
55 | |||
56 | #ifndef BOOTLOADER | ||
57 | static int last_x = 0; | ||
58 | static int last_y = 0; | ||
59 | static bool touching = false; | ||
60 | #endif /* BOOTLOADER */ | ||
61 | |||
62 | #ifndef BOOTLOADER | ||
63 | |||
64 | /* Touchpad extra pin initialization | ||
65 | * Strange facts: | ||
66 | * 1. In the fully working sample I have, it seems that pins | ||
67 | * must be all set to low | ||
68 | * 2. In the other sample without LCD, it seems (by measurement) that | ||
69 | * not all the pins are set to low! Actually, I still need to see if | ||
70 | * touchpad works in this other sample. | ||
71 | */ | ||
72 | void touchpad_pin_setup(void) | ||
73 | { | ||
74 | /* TX+ */ | ||
75 | imx233_pinctrl_acquire(0, 25, "touchpad X+ power low"); | ||
76 | imx233_pinctrl_set_function(0, 25, PINCTRL_FUNCTION_GPIO); | ||
77 | imx233_pinctrl_set_drive(0, 25, PINCTRL_DRIVE_4mA); | ||
78 | imx233_pinctrl_enable_gpio(0, 25, true); | ||
79 | |||
80 | /* TY+ */ | ||
81 | imx233_pinctrl_acquire(0, 26, "touchpad Y+ power high"); | ||
82 | imx233_pinctrl_set_function(0, 26, PINCTRL_FUNCTION_GPIO); | ||
83 | imx233_pinctrl_set_drive(0, 26, PINCTRL_DRIVE_4mA); | ||
84 | imx233_pinctrl_enable_gpio(0, 26, true); | ||
85 | |||
86 | /* TY- */ | ||
87 | imx233_pinctrl_acquire(1, 21, "touchpad Y- power low"); | ||
88 | imx233_pinctrl_set_function(1, 21, PINCTRL_FUNCTION_GPIO); | ||
89 | imx233_pinctrl_set_drive(1, 21, PINCTRL_DRIVE_4mA); | ||
90 | imx233_pinctrl_enable_gpio(1, 21, true); | ||
91 | |||
92 | /* TX- */ | ||
93 | imx233_pinctrl_acquire(3, 15, "touchpad X- power high"); | ||
94 | imx233_pinctrl_set_function(3, 15, PINCTRL_FUNCTION_GPIO); | ||
95 | imx233_pinctrl_set_drive(3, 15, PINCTRL_DRIVE_4mA); | ||
96 | imx233_pinctrl_enable_gpio(3, 15, true); | ||
97 | |||
98 | } | ||
99 | #endif /* BOOTLOADER */ | ||
100 | |||
101 | void button_init_device(void) | ||
102 | { | ||
103 | /* init button subsystem */ | ||
104 | imx233_button_init(); | ||
105 | #ifndef BOOTLOADER | ||
106 | touchpad_pin_setup(); | ||
107 | /* Now that is powered up, proceed with touchpad initialization */ | ||
108 | imx233_touchscreen_init(); | ||
109 | imx233_touchscreen_enable(true); | ||
110 | #endif /* BOOTLOADER */ | ||
111 | } | ||
112 | |||
113 | /* X, Y, RadiusX, RadiusY */ | ||
114 | #define TOUCH_UP 2400, 1050, 650, 250 | ||
115 | #define TOUCH_DOWN 2057, 3320, 500, 350 | ||
116 | #define TOUCH_LEFT 3581, 2297, 300, 350 | ||
117 | #define TOUCH_RIGHT 1000, 2100, 400, 700 | ||
118 | #define TOUCH_CENTER 2682, 2167, 335, 276 | ||
119 | |||
120 | bool coord_in_radius(int x, int y, int cx, int cy, int rx, int ry) | ||
121 | { | ||
122 | return ((x >= cx - rx && x <= cx + rx) && (y >= cy - ry && y <= cy + ry)); | ||
123 | } | ||
124 | |||
125 | int button_read_device(void) | ||
126 | { | ||
127 | int res = 0; | ||
128 | |||
129 | #ifndef BOOTLOADER | ||
130 | /* handle the touchpad events */ | ||
131 | touching = imx233_touchscreen_get_touch(&last_x, &last_y); | ||
132 | if(touching) | ||
133 | { | ||
134 | if (coord_in_radius(last_x, last_y, TOUCH_LEFT)) | ||
135 | { | ||
136 | res |= BUTTON_LEFT; | ||
137 | } | ||
138 | else if (coord_in_radius(last_x, last_y, TOUCH_RIGHT)) | ||
139 | { | ||
140 | res |= BUTTON_RIGHT; | ||
141 | } | ||
142 | else if (coord_in_radius(last_x, last_y, TOUCH_DOWN)) | ||
143 | { | ||
144 | res |= BUTTON_DOWN; | ||
145 | } | ||
146 | else if (coord_in_radius(last_x, last_y, TOUCH_UP)) | ||
147 | { | ||
148 | res |= BUTTON_UP; | ||
149 | } | ||
150 | } | ||
151 | #endif /* BOOTLOADER */ | ||
152 | /* handle the generic events */ | ||
153 | return imx233_button_read(res); | ||
154 | } | ||
155 | |||
156 | #ifndef BOOTLOADER | ||
157 | |||
158 | #define MAX_ENTRIES 100 | ||
159 | #define VIEWPORT_HEIGHT 100 | ||
160 | #define VIEWPORT_WIDTH 100 | ||
161 | #define MAX_X 3700 | ||
162 | #define MAX_Y 3700 | ||
163 | #define ADAPT_TO_VIEWPORT(cx, cy, rx, ry) ((float)(cx) / MAX_X) * VIEWPORT_WIDTH, \ | ||
164 | ((float)(cy) / MAX_Y) * VIEWPORT_HEIGHT, \ | ||
165 | ((float)(rx) / MAX_X) * VIEWPORT_WIDTH, \ | ||
166 | ((float)(ry) / MAX_Y) * VIEWPORT_HEIGHT | ||
167 | static void draw_calibration_rect(int cx, int cy, int rx, int ry) | ||
168 | { | ||
169 | if (coord_in_radius(last_x, last_y, cx, cy, rx, ry)) | ||
170 | lcd_set_drawinfo(DRMODE_SOLID, LCD_RGBPACK(0xff, 0xff, 0xff), LCD_BLACK); | ||
171 | else | ||
172 | lcd_set_drawinfo(DRMODE_SOLID, LCD_RGBPACK(0xff, 0, 0), LCD_BLACK); | ||
173 | lcd_drawrect(ADAPT_TO_VIEWPORT(cx - rx, cy - ry, 2 * rx, 2 * ry)); | ||
174 | } | ||
175 | |||
176 | bool button_debug_screen(void) | ||
177 | { | ||
178 | int last = 0; | ||
179 | struct point_t | ||
180 | { | ||
181 | int x; | ||
182 | int y; | ||
183 | }; | ||
184 | struct point_t last_entries[MAX_ENTRIES]; | ||
185 | struct viewport report_vp; | ||
186 | |||
187 | memset(&report_vp, 0, sizeof(report_vp)); | ||
188 | report_vp.x = (LCD_WIDTH - VIEWPORT_WIDTH) / 2; | ||
189 | report_vp.y = (LCD_HEIGHT - VIEWPORT_HEIGHT) / 2; | ||
190 | report_vp.width = VIEWPORT_WIDTH; | ||
191 | report_vp.height = VIEWPORT_HEIGHT; | ||
192 | |||
193 | lcd_setfont(FONT_SYSFIXED); | ||
194 | lcd_clear_display(); | ||
195 | |||
196 | while(1) | ||
197 | { | ||
198 | int button = get_action(CONTEXT_STD, HZ / 10); | ||
199 | switch(button) | ||
200 | { | ||
201 | case ACTION_STD_OK: | ||
202 | case ACTION_STD_MENU: | ||
203 | lcd_set_viewport(NULL); | ||
204 | lcd_setfont(FONT_UI); | ||
205 | lcd_clear_display(); | ||
206 | return true; | ||
207 | case ACTION_STD_CANCEL: | ||
208 | lcd_set_viewport(NULL); | ||
209 | lcd_setfont(FONT_UI); | ||
210 | lcd_clear_display(); | ||
211 | return false; | ||
212 | } | ||
213 | |||
214 | lcd_set_viewport(NULL); | ||
215 | lcd_putsf(0, 1, "(%d,%d) %s", last_x, last_y, touching ? "touching!" : ""); | ||
216 | lcd_putsf(0, 0, "Type %s", imx233_pinctrl_get_gpio(0, 31) ? "CAP" : "REG"); | ||
217 | lcd_set_viewport(&report_vp); | ||
218 | lcd_set_drawinfo(DRMODE_SOLID, LCD_RGBPACK(0, 0, 0xff), LCD_BLACK); | ||
219 | lcd_drawrect(0, 0, 100, 100); | ||
220 | float percent_x = ((float)(last_x) / MAX_X); | ||
221 | float percent_y = ((float)(last_y) / MAX_Y); | ||
222 | if (touching) | ||
223 | { | ||
224 | lcd_set_viewport(NULL); | ||
225 | if (last < MAX_ENTRIES) | ||
226 | { | ||
227 | last_entries[last].x = last_x; | ||
228 | last_entries[last].y = last_y; | ||
229 | last++; | ||
230 | lcd_putsf(0, 17, "Recording: %d captures left", MAX_ENTRIES - last); | ||
231 | } | ||
232 | else | ||
233 | { | ||
234 | int min_x = 9999; | ||
235 | int min_y = 9999; | ||
236 | int max_x = -1; | ||
237 | int max_y = -1; | ||
238 | int median_x = 0; | ||
239 | int median_y = 0; | ||
240 | for (int i = 0; i < MAX_ENTRIES; i++) | ||
241 | { | ||
242 | min_x = MIN(min_x, last_entries[i].x); | ||
243 | min_y = MIN(min_y, last_entries[i].y); | ||
244 | max_x = MAX(max_x, last_entries[i].x); | ||
245 | max_y = MAX(max_y, last_entries[i].y); | ||
246 | median_x += last_entries[i].x; | ||
247 | median_y += last_entries[i].y; | ||
248 | } | ||
249 | median_x /= MAX_ENTRIES; | ||
250 | median_y /= MAX_ENTRIES; | ||
251 | lcd_putsf(0, 17, "center(%d,%d)", median_x, median_y); | ||
252 | lcd_putsf(0, 18, "radius(%d,%d)", median_x / 2, median_y / 2); | ||
253 | } | ||
254 | lcd_set_viewport(&report_vp); | ||
255 | lcd_set_drawinfo(DRMODE_SOLID, LCD_RGBPACK(0xff, 0x8c, 0), LCD_BLACK); | ||
256 | lcd_fillrect(VIEWPORT_WIDTH * percent_x, VIEWPORT_HEIGHT * percent_y, 2, 2); | ||
257 | } | ||
258 | |||
259 | /* Draw current calibration settings */ | ||
260 | lcd_set_viewport(&report_vp); | ||
261 | draw_calibration_rect(TOUCH_UP); | ||
262 | draw_calibration_rect(TOUCH_DOWN); | ||
263 | draw_calibration_rect(TOUCH_CENTER); | ||
264 | draw_calibration_rect(TOUCH_LEFT); | ||
265 | draw_calibration_rect(TOUCH_RIGHT); | ||
266 | |||
267 | lcd_update(); | ||
268 | yield(); | ||
269 | } | ||
270 | |||
271 | return true; | ||
272 | } | ||
273 | #endif | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/debug-ypz5.c b/firmware/target/arm/imx233/samsung-ypz5/debug-ypz5.c deleted file mode 100644 index c125eac973..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/debug-ypz5.c +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #include "system.h" | ||
23 | #include "button-target.h" | ||
24 | #include "lcd-target.h" | ||
25 | |||
26 | bool dbg_hw_target_info(void) | ||
27 | { | ||
28 | return button_debug_screen() && lcd_debug_screen(); | ||
29 | } | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/fmradio-target.h b/firmware/target/arm/imx233/samsung-ypz5/fmradio-target.h deleted file mode 100644 index 66bceb4071..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/fmradio-target.h +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef _FMRADIO_TARGET_H_ | ||
22 | #define _FMRADIO_TARGET_H_ | ||
23 | |||
24 | #define IMX233_FMRADIO_I2C FMI_HW | ||
25 | |||
26 | #define IMX233_FMRADIO_POWER FMP_GPIO | ||
27 | #define FMP_GPIO_BANK 0 | ||
28 | #define FMP_GPIO_PIN 10 | ||
29 | #define FMP_GPIO_DELAY (HZ / 5) | ||
30 | |||
31 | #endif /* _FMRADIO_TARGET_H_ */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/ftl-target.h b/firmware/target/arm/imx233/samsung-ypz5/ftl-target.h deleted file mode 100644 index cb943e34f2..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/ftl-target.h +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2009 by Michael Sparmann | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #ifndef __FTL_TARGET_H__ | ||
23 | #define __FTL_TARGET_H__ | ||
24 | |||
25 | #include "config.h" | ||
26 | #include "inttypes.h" | ||
27 | |||
28 | #ifdef BOOTLOADER | ||
29 | /* Bootloaders don't need write access */ | ||
30 | #define FTL_READONLY | ||
31 | #endif | ||
32 | |||
33 | uint32_t ftl_init(void); | ||
34 | uint32_t ftl_read(uint32_t sector, uint32_t count, void* buffer); | ||
35 | uint32_t ftl_write(uint32_t sector, uint32_t count, const void* buffer); | ||
36 | uint32_t ftl_sync(void); | ||
37 | |||
38 | |||
39 | #endif | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/lcd-target.h b/firmware/target/arm/imx233/samsung-ypz5/lcd-target.h deleted file mode 100644 index 9993b7d731..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/lcd-target.h +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (c) 2013 by Amaury Pouly | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #ifndef LCD_TARGET_H | ||
21 | #define LCD_TARGET_H | ||
22 | |||
23 | bool lcd_debug_screen(void); | ||
24 | |||
25 | #endif /* LCD_TARGET_H */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/lcd-ypz5.c b/firmware/target/arm/imx233/samsung-ypz5/lcd-ypz5.c deleted file mode 100644 index 99fe0b2aef..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/lcd-ypz5.c +++ /dev/null | |||
@@ -1,295 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * | ||
9 | * Copyright (c) 2013 by Lorenzo Miori | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version 2 | ||
14 | * of the License, or (at your option) any later version. | ||
15 | * | ||
16 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
17 | * KIND, either express or implied. | ||
18 | * | ||
19 | ****************************************************************************/ | ||
20 | #include <sys/types.h> /* off_t */ | ||
21 | #include <string.h> | ||
22 | #include "cpu.h" | ||
23 | #include "system.h" | ||
24 | #include "backlight-target.h" | ||
25 | #include "lcd.h" | ||
26 | #include "lcdif-imx233.h" | ||
27 | #include "clkctrl-imx233.h" | ||
28 | #include "pinctrl-imx233.h" | ||
29 | #include "dcp-imx233.h" | ||
30 | #include "logf.h" | ||
31 | #ifndef BOOTLOADER | ||
32 | #include "button.h" | ||
33 | #include "font.h" | ||
34 | #include "action.h" | ||
35 | #endif | ||
36 | #include "dma-imx233.h" | ||
37 | #include "kernel.h" | ||
38 | |||
39 | #include "regs/lcdif.h" | ||
40 | |||
41 | /** | ||
42 | * NOTE | ||
43 | * We don't know exact LCD models nor we have datasheets for them | ||
44 | * Register function are partly guessed from the values, others are guessed from other LCD | ||
45 | * drivers and others have been confirmed studying their values | ||
46 | */ | ||
47 | |||
48 | static enum lcd_type_t | ||
49 | { | ||
50 | LCD_TYPE_ZERO = 0, | ||
51 | LCD_TYPE_ONE = 1 | ||
52 | } lcd_type = LCD_TYPE_ZERO; | ||
53 | |||
54 | static void lcd_write_reg(uint16_t reg, uint16_t data) | ||
55 | { | ||
56 | imx233_lcdif_pio_send(false, 1, ®); | ||
57 | if(reg != 0x22) | ||
58 | imx233_lcdif_pio_send(true, 1, &data); | ||
59 | } | ||
60 | |||
61 | /* | ||
62 | * The two LCD types require different initialization sequences | ||
63 | */ | ||
64 | void lcd_init_seq(void) | ||
65 | { | ||
66 | switch (lcd_type) | ||
67 | { | ||
68 | case LCD_TYPE_ZERO: | ||
69 | { | ||
70 | lcd_write_reg(0x11, 0x1f1e); | ||
71 | lcd_write_reg(0x38, 0xf0f); | ||
72 | lcd_write_reg(0x12, 0x1101); | ||
73 | lcd_write_reg(0x13, 0x808); | ||
74 | lcd_write_reg(0x14, 0x3119); | ||
75 | lcd_write_reg(0x10, 0x1a10); | ||
76 | udelay(0xc350); | ||
77 | lcd_write_reg(0x13, 0x83b); | ||
78 | udelay(0x30d40); | ||
79 | lcd_write_reg(1, 0x90c); /* Display mode */ | ||
80 | lcd_write_reg(2, 0x200); | ||
81 | lcd_write_reg(3, 0x1030); | ||
82 | lcd_write_reg(7, 5); | ||
83 | lcd_write_reg(8, 0x503); | ||
84 | lcd_write_reg(11, 0); | ||
85 | lcd_write_reg(12, 0); | ||
86 | /* Gamma control */ | ||
87 | lcd_write_reg(0x30, 0x606); | ||
88 | lcd_write_reg(0x31, 0x606); | ||
89 | lcd_write_reg(0x32, 0x305); | ||
90 | lcd_write_reg(0x33, 2); | ||
91 | lcd_write_reg(0x34, 0x503); | ||
92 | lcd_write_reg(0x35, 0x606); | ||
93 | lcd_write_reg(0x36, 0x606); | ||
94 | lcd_write_reg(0x37, 0x200); | ||
95 | |||
96 | lcd_write_reg(0x11, 0x1f1e); | ||
97 | lcd_write_reg(0x38, 0xf0f); | ||
98 | /* Set initial LCD limits and RAM settings */ | ||
99 | lcd_write_reg(0x40, 0); //BPP ? | ||
100 | lcd_write_reg(0x42, 0x9f00); | ||
101 | lcd_write_reg(0x43, 0); | ||
102 | lcd_write_reg(0x44, 0x7f00); /* Horizontal initial refresh zone [0 - 127] */ | ||
103 | lcd_write_reg(0x45, 0x9f00); /* Vertical initial refresh zone [0 - 159] */ | ||
104 | |||
105 | lcd_write_reg(14, 0x13); | ||
106 | lcd_write_reg(0xa9, 0x14); | ||
107 | lcd_write_reg(0xa7, 0x30); | ||
108 | lcd_write_reg(0xa8, 0x124); | ||
109 | lcd_write_reg(0x6f, 0x1d00); | ||
110 | lcd_write_reg(0x70, 3); | ||
111 | lcd_write_reg(7, 1); | ||
112 | lcd_write_reg(0x10, 0x1a10); | ||
113 | udelay(0x9c40); | ||
114 | lcd_write_reg(7, 0x21); | ||
115 | lcd_write_reg(7, 0x23); | ||
116 | udelay(0x9c40); | ||
117 | lcd_write_reg(7, 0x37); /* Seems to be "power on" */ | ||
118 | break; | ||
119 | } | ||
120 | case LCD_TYPE_ONE: | ||
121 | { | ||
122 | lcd_write_reg(0, 1); | ||
123 | udelay(0x2710); | ||
124 | lcd_write_reg(0x11, 0x171b); | ||
125 | lcd_write_reg(0x12, 0); | ||
126 | lcd_write_reg(0x13, 0x80d); | ||
127 | lcd_write_reg(0x14, 0x18); | ||
128 | lcd_write_reg(0x10, 0x1a10); | ||
129 | udelay(0xc350); | ||
130 | lcd_write_reg(0x13, 0x81d); | ||
131 | udelay(0xc350); | ||
132 | lcd_write_reg(1, 0x90c); /* Display mode */ | ||
133 | lcd_write_reg(2, 0x200); | ||
134 | lcd_write_reg(3, 0x1030); | ||
135 | lcd_write_reg(7, 5); | ||
136 | lcd_write_reg(8, 0x30a); | ||
137 | lcd_write_reg(11, 4); | ||
138 | lcd_write_reg(12, 0); | ||
139 | /* Gamma control */ | ||
140 | lcd_write_reg(0x30, 0x300); | ||
141 | lcd_write_reg(0x31, 0); | ||
142 | lcd_write_reg(0x32, 0); | ||
143 | lcd_write_reg(0x33, 0x404); | ||
144 | lcd_write_reg(0x34, 0x707); | ||
145 | lcd_write_reg(0x35, 0x700); | ||
146 | lcd_write_reg(0x36, 0x703); | ||
147 | lcd_write_reg(0x37, 4); | ||
148 | |||
149 | lcd_write_reg(0x38, 0); | ||
150 | /* Set initial LCD limits and RAM settings */ | ||
151 | lcd_write_reg(0x40, 0); | ||
152 | lcd_write_reg(0x42, 0x9f00); /* LCD Display Start Address Register 0 */ | ||
153 | lcd_write_reg(0x43, 0); /* LCD Display Start Address Register 1 */ | ||
154 | lcd_write_reg(0x44, 0x7f00); /* Horizontal initial refresh zone [0 - 127] */ | ||
155 | lcd_write_reg(0x45, 0x9f00); /* Vertical initial refresh zone [0 - 159] */ | ||
156 | |||
157 | lcd_write_reg(7, 1); | ||
158 | udelay(0x2710); | ||
159 | lcd_write_reg(7, 0x21); | ||
160 | lcd_write_reg(7, 0x23); | ||
161 | udelay(0x2710); | ||
162 | lcd_write_reg(7, 0x1037); | ||
163 | udelay(0x2710); | ||
164 | lcd_write_reg(7, 0x35); | ||
165 | lcd_write_reg(7, 0x36); | ||
166 | lcd_write_reg(7, 0x37); | ||
167 | udelay(10000); | ||
168 | break; | ||
169 | } | ||
170 | default: | ||
171 | break; | ||
172 | } | ||
173 | } | ||
174 | |||
175 | static void send_update_rect(uint8_t x, uint8_t y, uint8_t w, uint8_t h) | ||
176 | { | ||
177 | /* Set horizontal refresh zone */ | ||
178 | lcd_write_reg(0x44, (x | (y + w - 1) << 0x8)); | ||
179 | /* Set vertical refresh zone */ | ||
180 | lcd_write_reg(0x45, (y | (y + h - 1) << 0x8)); | ||
181 | lcd_write_reg(0x21, x | y << 8); | ||
182 | /* Set register index to 0x22 to write screen data. 0 is mock value */ | ||
183 | lcd_write_reg(0x22, 0); | ||
184 | } | ||
185 | |||
186 | static void setup_lcd_pins(void) | ||
187 | { | ||
188 | imx233_lcdif_setup_system_pins(16); | ||
189 | /* lcd_rd */ | ||
190 | imx233_pinctrl_acquire(0, 9, "lcd rd"); | ||
191 | imx233_pinctrl_set_function(0, 9, PINCTRL_FUNCTION_GPIO); | ||
192 | imx233_pinctrl_set_gpio(0, 9, false); | ||
193 | /* | ||
194 | * This pin is important to know the LCD type | ||
195 | * There are two types that require two different initialization sequences | ||
196 | */ | ||
197 | /* lcd_tp */ | ||
198 | imx233_pinctrl_acquire(3, 12, "lcd type"); | ||
199 | imx233_pinctrl_set_function(3, 12, PINCTRL_FUNCTION_GPIO); | ||
200 | imx233_pinctrl_enable_gpio(3, 12, false); | ||
201 | /* Sense LCD Type */ | ||
202 | lcd_type = imx233_pinctrl_get_gpio(3, 12) ? LCD_TYPE_ONE : LCD_TYPE_ZERO; | ||
203 | } | ||
204 | |||
205 | static void setup_parameters(void) | ||
206 | { | ||
207 | imx233_lcdif_init(); | ||
208 | imx233_lcdif_enable(true); | ||
209 | imx233_lcdif_set_word_length(16); | ||
210 | imx233_lcdif_set_data_swizzle(false); | ||
211 | imx233_lcdif_set_timings(2, 1, 1, 1); | ||
212 | BF_WR(LCDIF_CTRL, MODE86_V(8080_MODE)); | ||
213 | |||
214 | imx233_lcdif_reset_lcd(true); | ||
215 | udelay(50); | ||
216 | imx233_lcdif_reset_lcd(false); | ||
217 | udelay(10); | ||
218 | imx233_lcdif_reset_lcd(true); | ||
219 | } | ||
220 | |||
221 | void lcd_init_device(void) | ||
222 | { | ||
223 | /* Setup interface pins */ | ||
224 | setup_lcd_pins(); | ||
225 | /* Set LCD parameters */ | ||
226 | setup_parameters(); | ||
227 | /* Send initialization sequence to LCD */ | ||
228 | lcd_init_seq(); | ||
229 | } | ||
230 | |||
231 | struct lcdif_cmd_t | ||
232 | { | ||
233 | struct apb_dma_command_t dma; | ||
234 | uint32_t ctrl0; | ||
235 | uint32_t pad[4]; | ||
236 | } __attribute__((packed)) CACHEALIGN_ATTR; | ||
237 | |||
238 | struct lcdif_cmd_t lcdif_dma; | ||
239 | void lcd_update(void) | ||
240 | { | ||
241 | unsigned size = LCD_WIDTH * LCD_HEIGHT * sizeof(fb_data); | ||
242 | |||
243 | send_update_rect(0,0,LCD_WIDTH,LCD_HEIGHT); | ||
244 | /* We can safely do the transfer in a single shot, since 160 * 128 * 2 < 65k, | ||
245 | * the maximum transfer size! | ||
246 | */ | ||
247 | lcdif_dma.dma.cmd |= BF_OR(APB_CHx_CMD, CMDWORDS(1), XFER_COUNT(size), COMMAND(2)); | ||
248 | lcdif_dma.ctrl0 = HW_LCDIF_CTRL & ~BM_LCDIF_CTRL_COUNT; | ||
249 | lcdif_dma.ctrl0 |= BF_OR(LCDIF_CTRL, COUNT(size/2), DATA_SELECT(1)); | ||
250 | lcdif_dma.dma.buffer = FBADDR(0,0); | ||
251 | lcdif_dma.dma.cmd |= BM_APB_CHx_CMD_SEMAPHORE; | ||
252 | |||
253 | imx233_dma_start_command(APB_LCDIF, &lcdif_dma.dma); | ||
254 | imx233_dma_wait_completion(APB_LCDIF, HZ); | ||
255 | } | ||
256 | |||
257 | void lcd_update_rect(int x, int y, int w, int h) | ||
258 | { | ||
259 | (void)x; | ||
260 | (void)y; | ||
261 | (void)w; | ||
262 | (void)h; | ||
263 | lcd_update(); | ||
264 | } | ||
265 | |||
266 | #ifndef BOOTLOADER | ||
267 | bool lcd_debug_screen(void) | ||
268 | { | ||
269 | lcd_setfont(FONT_SYSFIXED); | ||
270 | |||
271 | while(1) | ||
272 | { | ||
273 | int button = get_action(CONTEXT_STD, HZ / 10); | ||
274 | switch(button) | ||
275 | { | ||
276 | case ACTION_STD_NEXT: | ||
277 | case ACTION_STD_PREV: | ||
278 | case ACTION_STD_OK: | ||
279 | case ACTION_STD_MENU: | ||
280 | lcd_setfont(FONT_UI); | ||
281 | return true; | ||
282 | case ACTION_STD_CANCEL: | ||
283 | lcd_setfont(FONT_UI); | ||
284 | return false; | ||
285 | } | ||
286 | |||
287 | lcd_clear_display(); | ||
288 | lcd_putsf(0, 0, "LCD type: %d", lcd_type); | ||
289 | lcd_update(); | ||
290 | yield(); | ||
291 | } | ||
292 | |||
293 | return true; | ||
294 | } | ||
295 | #endif | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/powermgmt-target.h b/firmware/target/arm/imx233/samsung-ypz5/powermgmt-target.h deleted file mode 100644 index 5d32bc5e9c..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/powermgmt-target.h +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef POWERMGMT_TARGET_H | ||
22 | #define POWERMGMT_TARGET_H | ||
23 | |||
24 | #include "config.h" | ||
25 | #include "powermgmt-imx233.h" | ||
26 | |||
27 | #define IMX233_CHARGE_CURRENT 100 | ||
28 | #define IMX233_STOP_CURRENT 10 | ||
29 | #define IMX233_TOPOFF_TIMEOUT (30 * 60 * HZ) | ||
30 | #define IMX233_CHARGING_TIMEOUT (4 * 3600 * HZ) | ||
31 | #define IMX233_DIE_TEMP_HIGH 71 | ||
32 | #define IMX233_DIE_TEMP_LOW 56 | ||
33 | #define IMX233_BATT_TEMP_SENSOR 0 | ||
34 | #define IMX233_BATT_TEMP_HIGH 1100 | ||
35 | #define IMX233_BATT_TEMP_LOW 220 | ||
36 | |||
37 | #endif /* POWERMGMT_TARGET_H */ | ||
diff --git a/firmware/target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c b/firmware/target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c deleted file mode 100644 index 9d9ed7de99..0000000000 --- a/firmware/target/arm/imx233/samsung-ypz5/powermgmt-ypz5.c +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2013 by Amaury Pouly | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #include "config.h" | ||
22 | #include "powermgmt-target.h" | ||
23 | #include "power-imx233.h" | ||
24 | |||
25 | |||
26 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | ||
27 | { | ||
28 | 3400 | ||
29 | }; | ||
30 | |||
31 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | ||
32 | { | ||
33 | 3300 | ||
34 | }; | ||
35 | |||
36 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ | ||
37 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | ||
38 | { | ||
39 | /* Sansa Fuze+ Li Ion 600mAH figured from discharge curve */ | ||
40 | { 3100, 3650, 3720, 3750, 3780, 3820, 3880, 4000, 4040, 4125, 4230 }, | ||
41 | }; | ||
42 | |||
43 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ | ||
44 | const unsigned short percent_to_volt_charge[11] = | ||
45 | { | ||
46 | /* Sansa Fuze+ Li Ion 600mAH figured from charge curve */ | ||
47 | 3480, 3790, 3845, 3880, 3900, 3935, 4005, 4070, 4150, 4250, 4335 | ||
48 | }; | ||
diff --git a/firmware/target/arm/imx233/touchscreen-imx233.c b/firmware/target/arm/imx233/touchscreen-imx233.c index f98dc9b738..561b2c750a 100644 --- a/firmware/target/arm/imx233/touchscreen-imx233.c +++ b/firmware/target/arm/imx233/touchscreen-imx233.c | |||
@@ -23,9 +23,6 @@ | |||
23 | #include "kernel.h" | 23 | #include "kernel.h" |
24 | #include "touchscreen-imx233.h" | 24 | #include "touchscreen-imx233.h" |
25 | #include "stdlib.h" | 25 | #include "stdlib.h" |
26 | #ifdef SAMSUNG_YPZ5 | ||
27 | #include "pinctrl-imx233.h" | ||
28 | #endif | ||
29 | 26 | ||
30 | /* Description: | 27 | /* Description: |
31 | * the driver basically has 2 modes: | 28 | * the driver basically has 2 modes: |
@@ -82,24 +79,6 @@ static void touch_channel_irq(int chan) | |||
82 | process(); | 79 | process(); |
83 | } | 80 | } |
84 | 81 | ||
85 | #ifdef SAMSUNG_YPZ5 | ||
86 | /* On this target we need to manually setup pulldown pins, | ||
87 | * using specific GPIO lines | ||
88 | */ | ||
89 | static void pulldown_setup(bool xminus_enable, bool yminus_enable, | ||
90 | bool xplus_enable, bool yplus_enable) | ||
91 | { | ||
92 | /* TX+ */ | ||
93 | imx233_pinctrl_set_gpio(0, 25, xplus_enable); | ||
94 | /* TX- */ | ||
95 | imx233_pinctrl_set_gpio(3, 15, xminus_enable); | ||
96 | /* TY+ */ | ||
97 | imx233_pinctrl_set_gpio(0, 26, yplus_enable); | ||
98 | /* TY- */ | ||
99 | imx233_pinctrl_set_gpio(1, 21, yminus_enable); | ||
100 | } | ||
101 | #endif | ||
102 | |||
103 | static void kick_measure(bool pull_x, bool pull_y, bool detect, int src) | 82 | static void kick_measure(bool pull_x, bool pull_y, bool detect, int src) |
104 | { | 83 | { |
105 | #if IMX233_SUBTARGET < 3700 | 84 | #if IMX233_SUBTARGET < 3700 |
@@ -116,9 +95,6 @@ static void kick_measure(bool pull_x, bool pull_y, bool detect, int src) | |||
116 | imx233_icoll_enable_interrupt(INT_SRC_LRADC_CHx(touch_chan), true); | 95 | imx233_icoll_enable_interrupt(INT_SRC_LRADC_CHx(touch_chan), true); |
117 | imx233_lradc_enable_channel_irq(touch_chan, true); | 96 | imx233_lradc_enable_channel_irq(touch_chan, true); |
118 | /* setup measurement: x- pull down and x+ pull up */ | 97 | /* setup measurement: x- pull down and x+ pull up */ |
119 | #ifdef SAMSUNG_YPZ5 | ||
120 | pulldown_setup(pull_x, pull_y, pull_x, pull_y); | ||
121 | #endif | ||
122 | imx233_lradc_setup_touch(pull_x, pull_y, pull_x, pull_y, detect); | 98 | imx233_lradc_setup_touch(pull_x, pull_y, pull_x, pull_y, detect); |
123 | imx233_lradc_enable_touch_detect_irq(false); | 99 | imx233_lradc_enable_touch_detect_irq(false); |
124 | imx233_lradc_enable_channel_irq(touch_chan, true); | 100 | imx233_lradc_enable_channel_irq(touch_chan, true); |
@@ -138,9 +114,6 @@ static void enter_state(enum touch_state_t state) | |||
138 | switch(state) | 114 | switch(state) |
139 | { | 115 | { |
140 | case TOUCH_STATE_WAIT: | 116 | case TOUCH_STATE_WAIT: |
141 | #ifdef SAMSUNG_YPZ5 | ||
142 | pulldown_setup(false, false, false, false); | ||
143 | #endif | ||
144 | imx233_lradc_setup_touch(false, false, false, false, true); | 117 | imx233_lradc_setup_touch(false, false, false, false, true); |
145 | imx233_lradc_enable_touch_detect_irq(true); | 118 | imx233_lradc_enable_touch_detect_irq(true); |
146 | break; | 119 | break; |
diff --git a/tools/configure b/tools/configure index eb3a971366..91e7bb27be 100755 --- a/tools/configure +++ b/tools/configure | |||
@@ -1571,7 +1571,7 @@ cat <<EOF | |||
1571 | 141) YH-920 63) Sansa Fuze v2 | 1571 | 141) YH-920 63) Sansa Fuze v2 |
1572 | 142) YH-925 ==Tatung== 64) Sansa Fuze+ | 1572 | 142) YH-925 ==Tatung== 64) Sansa Fuze+ |
1573 | 143) YP-S3 150) Elio TPJ-1022 65) Sansa Clip Zip | 1573 | 143) YP-S3 150) Elio TPJ-1022 65) Sansa Clip Zip |
1574 | 144) YP-Z5 66) Sansa Connect | 1574 | 66) Sansa Connect |
1575 | ==Packard Bell== | 1575 | ==Packard Bell== |
1576 | ==Application== 160) Vibe 500 | 1576 | ==Application== 160) Vibe 500 |
1577 | 200) SDL | 1577 | 200) SDL |
@@ -3085,25 +3085,6 @@ fi | |||
3085 | t_model="yps3" | 3085 | t_model="yps3" |
3086 | ;; | 3086 | ;; |
3087 | 3087 | ||
3088 | 144|samsungypz5) | ||
3089 | target_id=90 | ||
3090 | modelname="samsungypz5" | ||
3091 | target="SAMSUNG_YPZ5" | ||
3092 | memory=16 | ||
3093 | bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" | ||
3094 | bmp2rb_native="$rootdir/tools/bmp2rb -f 4" | ||
3095 | tool="$rootdir/tools/scramble -add=ypz5" | ||
3096 | output="rockbox.samsung" | ||
3097 | bootoutput="bootloader-ypz5.samsung" | ||
3098 | appextra="gui:recorder:radio" | ||
3099 | plugins="" | ||
3100 | toolset=$scramblebitmaptools | ||
3101 | t_cpu="arm" | ||
3102 | t_manufacturer="imx233" | ||
3103 | t_model="samsung-ypz5" | ||
3104 | arm926ejscc | ||
3105 | ;; | ||
3106 | |||
3107 | 160|vibe500) | 3088 | 160|vibe500) |
3108 | target_id=67 | 3089 | target_id=67 |
3109 | modelname="vibe500" | 3090 | modelname="vibe500" |
diff --git a/tools/scramble.c b/tools/scramble.c index ec79cb8ca2..fbefb60eec 100644 --- a/tools/scramble.c +++ b/tools/scramble.c | |||
@@ -106,7 +106,7 @@ void usage(void) | |||
106 | "\t m2v4, fuze, c2v2, clv2, y820, y920, y925, x747,\n" | 106 | "\t m2v4, fuze, c2v2, clv2, y820, y920, y925, x747,\n" |
107 | "\t 747p, x777, nn2g, m244, cli+, fuz2, hd20, hd30,\n" | 107 | "\t 747p, x777, nn2g, m244, cli+, fuz2, hd20, hd30,\n" |
108 | "\t ip6g, rk27, clzp, zxf2, zxf3, fuz+, e370, e360,\n" | 108 | "\t ip6g, rk27, clzp, zxf2, zxf3, fuz+, e370, e360,\n" |
109 | "\t zxfi, zmoz, zen, zenv, ypz5, zxfs, e450, e460,\n" | 109 | "\t zxfi, zmoz, zen, zenv, zxfs, e450, e460,\n" |
110 | "\t e470, e580, a10, a20, a860, s750, e350, xdx3)\n"); | 110 | "\t e470, e580, a10, a20, a860, s750, e350, xdx3)\n"); |
111 | printf("\nNo option results in nothing being done.\n"); | 111 | printf("\nNo option results in nothing being done.\n"); |
112 | 112 | ||
@@ -295,8 +295,6 @@ int main (int argc, char** argv) | |||
295 | modelnum = 82; | 295 | modelnum = 82; |
296 | else if (!strcmp(&argv[1][5], "zxf3")) /* Creative Zen X-Fi3 */ | 296 | else if (!strcmp(&argv[1][5], "zxf3")) /* Creative Zen X-Fi3 */ |
297 | modelnum = 83; | 297 | modelnum = 83; |
298 | else if (!strcmp(&argv[1][5], "ypz5")) /* Samsung YP-Z5 */ | ||
299 | modelnum = 84; | ||
300 | else if (!strcmp(&argv[1][5], "zenv")) /* Creative Zen V */ | 298 | else if (!strcmp(&argv[1][5], "zenv")) /* Creative Zen V */ |
301 | modelnum = 85; | 299 | modelnum = 85; |
302 | else if (!strcmp(&argv[1][5], "zxfi")) /* Creative ZEN X-Fi */ | 300 | else if (!strcmp(&argv[1][5], "zxfi")) /* Creative ZEN X-Fi */ |