summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/keymaps/keymap-ondavx777.c171
-rw-r--r--bootloader/SOURCES2
-rw-r--r--docs/CREDITS1
-rw-r--r--firmware/SOURCES4
-rw-r--r--firmware/export/config-ondavx747.h11
-rw-r--r--firmware/export/config.h3
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c15
-rwxr-xr-xtools/configure29
-rw-r--r--tools/scramble.c7
10 files changed, 229 insertions, 16 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 4caf32d822..7475826015 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -234,6 +234,8 @@ keymaps/keymap-logikdax.c
234keymaps/keymap-fuze.c 234keymaps/keymap-fuze.c
235#elif CONFIG_KEYPAD == ONDAVX747_PAD 235#elif CONFIG_KEYPAD == ONDAVX747_PAD
236keymaps/keymap-ondavx747.c 236keymaps/keymap-ondavx747.c
237#elif CONFIG_KEYPAD == ONDAVX777_PAD
238keymaps/keymap-ondavx777.c
237#elif CONFIG_KEYPAD == ONDAVX767_PAD 239#elif CONFIG_KEYPAD == ONDAVX767_PAD
238keymaps/keymap-ondavx767.c 240keymaps/keymap-ondavx767.c
239#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD 241#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
diff --git a/apps/keymaps/keymap-ondavx777.c b/apps/keymaps/keymap-ondavx777.c
new file mode 100644
index 0000000000..99f509b18f
--- /dev/null
+++ b/apps/keymaps/keymap-ondavx777.c
@@ -0,0 +1,171 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2009 by Maurus Cuelenaere
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 Onda VX747 target */
23/* NB: Up/Down/Left/Right are not physical buttons - touchscreen emulation */
24
25#include <stdio.h>
26#include <string.h>
27#include <stdlib.h>
28
29#include "config.h"
30#include "action.h"
31#include "button.h"
32#include "settings.h"
33
34/*
35 * The format of the list is as follows
36 * { Action Code, Button code, Prereq button code }
37 * if there's no need to check the previous button's value, use BUTTON_NONE
38 * Insert LAST_ITEM_IN_LIST at the end of each mapping
39 */
40
41static const struct button_mapping button_context_standard[] = {
42 LAST_ITEM_IN_LIST
43}; /* button_context_standard */
44
45
46static const struct button_mapping button_context_wps[] = {
47 LAST_ITEM_IN_LIST
48}; /* button_context_wps */
49
50static const struct button_mapping button_context_list[] = {
51 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
52}; /* button_context_list */
53
54static const struct button_mapping button_context_tree[] = {
55 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
56}; /* button_context_tree */
57
58static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
59 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
60};
61
62static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
63 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
64};
65
66static const struct button_mapping button_context_settings[] = {
67 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
68}; /* button_context_settings */
69
70static const struct button_mapping button_context_settings_right_is_inc[] = {
71
72 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
73}; /* button_context_settingsgraphical */
74
75static const struct button_mapping button_context_yesno[] = {
76 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
77}; /* button_context_settings_yesno */
78
79static const struct button_mapping button_context_colorchooser[] = {
80 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
81}; /* button_context_colorchooser */
82
83static const struct button_mapping button_context_eq[] = {
84 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
85}; /* button_context_eq */
86
87/** Bookmark Screen **/
88static const struct button_mapping button_context_bmark[] = {
89 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
90}; /* button_context_bmark */
91
92static const struct button_mapping button_context_time[] = {
93 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS),
94}; /* button_context_time */
95
96static const struct button_mapping button_context_quickscreen[] = {
97
98 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
99}; /* button_context_quickscreen */
100
101static const struct button_mapping button_context_pitchscreen[] = {
102}; /* button_context_pitchcreen */
103
104/** FM Radio Screen **/
105static const struct button_mapping button_context_radio[] = {
106 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
107}; /* button_context_radio */
108
109static const struct button_mapping button_context_keyboard[] = {
110 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
111}; /* button_context_keyboard */
112
113#ifdef HAVE_USBSTACK
114static const struct button_mapping button_context_usb_hid[] = {
115 LAST_ITEM_IN_LIST
116}; /* button_context_usb_hid */
117#endif
118
119const struct button_mapping* target_get_context_mapping(int context)
120{
121 switch (context)
122 {
123 case CONTEXT_STD:
124 return button_context_standard;
125 case CONTEXT_WPS:
126 return button_context_wps;
127
128 case CONTEXT_LIST:
129 return button_context_list;
130 case CONTEXT_MAINMENU:
131 case CONTEXT_TREE:
132 if (global_settings.hold_lr_for_scroll_in_list)
133 return button_context_listtree_scroll_without_combo;
134 else
135 return button_context_listtree_scroll_with_combo;
136 case CONTEXT_CUSTOM|CONTEXT_TREE:
137 return button_context_tree;
138
139 case CONTEXT_SETTINGS:
140 return button_context_settings;
141 case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
142 case CONTEXT_SETTINGS_RECTRIGGER:
143 return button_context_settings_right_is_inc;
144
145 case CONTEXT_SETTINGS_COLOURCHOOSER:
146 return button_context_colorchooser;
147 case CONTEXT_SETTINGS_EQ:
148 return button_context_eq;
149
150 case CONTEXT_SETTINGS_TIME:
151 return button_context_time;
152
153 case CONTEXT_YESNOSCREEN:
154 return button_context_yesno;
155 case CONTEXT_FM:
156 return button_context_radio;
157 case CONTEXT_BOOKMARKSCREEN:
158 return button_context_bmark;
159 case CONTEXT_QUICKSCREEN:
160 return button_context_quickscreen;
161 case CONTEXT_PITCHSCREEN:
162 return button_context_pitchscreen;
163 case CONTEXT_KEYBOARD:
164 return button_context_keyboard;
165#ifdef HAVE_USBSTACK
166 case CONTEXT_USB_HID:
167 return button_context_usb_hid;
168#endif
169 }
170 return button_context_standard;
171}
diff --git a/bootloader/SOURCES b/bootloader/SOURCES
index 7ad12610d1..942467af4d 100644
--- a/bootloader/SOURCES
+++ b/bootloader/SOURCES
@@ -41,7 +41,7 @@ meizu_m6sl.c
41meizu_m6sp.c 41meizu_m6sp.c
42#elif defined(MEIZU_M3) 42#elif defined(MEIZU_M3)
43meizu_m3.c 43meizu_m3.c
44#elif defined(ONDA_VX747) || defined(ONDA_VX747P) || defined(ONDA_VX767) 44#elif defined(ONDA_VX747) || defined(ONDA_VX747P) || defined(ONDA_VX767) || defined(ONDA_VX777)
45ondavx747.c 45ondavx747.c
46#elif defined(CREATIVE_ZVx) 46#elif defined(CREATIVE_ZVx)
47creativezvm.c 47creativezvm.c
diff --git a/docs/CREDITS b/docs/CREDITS
index 4989f677ce..14a3df6f37 100644
--- a/docs/CREDITS
+++ b/docs/CREDITS
@@ -474,6 +474,7 @@ Frederick Full
474Jeffrey Goode 474Jeffrey Goode
475Raafat Akkad 475Raafat Akkad
476Michaël Burtin 476Michaël Burtin
477Davide Quarta
477 478
478The libmad team 479The libmad team
479The wavpack team 480The wavpack team
diff --git a/firmware/SOURCES b/firmware/SOURCES
index bba9ef1dc5..742a582d6f 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -1267,13 +1267,13 @@ target/mips/ingenic_jz47xx/pcm-jz4740.c
1267drivers/nand_id.c 1267drivers/nand_id.c
1268#endif /* CONFIG_CPU == JZ4732 */ 1268#endif /* CONFIG_CPU == JZ4732 */
1269 1269
1270#if defined(ONDA_VX747) || defined(ONDA_VX747P) 1270#if defined(ONDA_VX747) || defined(ONDA_VX747P) || defined(ONDA_VX777)
1271target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c 1271target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
1272target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c 1272target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c
1273target/mips/ingenic_jz47xx/onda_vx747/power-onda_vx747.c 1273target/mips/ingenic_jz47xx/onda_vx747/power-onda_vx747.c
1274target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c 1274target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
1275target/mips/ingenic_jz47xx/onda_vx747/speaker-onda_vx747.c 1275target/mips/ingenic_jz47xx/onda_vx747/speaker-onda_vx747.c
1276#endif /* ONDA_VX747 || ONDA_VX747P */ 1276#endif /* ONDA_VX747 || ONDA_VX747P || ONDA_VX777 */
1277 1277
1278#ifdef ONDA_VX767 1278#ifdef ONDA_VX767
1279target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c 1279target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
diff --git a/firmware/export/config-ondavx747.h b/firmware/export/config-ondavx747.h
index 9a9defcf2f..5625635c89 100644
--- a/firmware/export/config-ondavx747.h
+++ b/firmware/export/config-ondavx747.h
@@ -20,7 +20,7 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22/* 22/*
23 * This config file is for the Onda VX747(+) 23 * This config file is for the Onda VX747(+)/VX777
24 */ 24 */
25 25
26#define TARGET_TREE /* this target is using the target tree system */ 26#define TARGET_TREE /* this target is using the target tree system */
@@ -29,8 +29,11 @@
29 29
30#ifdef ONDA_VX747P 30#ifdef ONDA_VX747P
31#define MODEL_NAME "Onda VX747+" 31#define MODEL_NAME "Onda VX747+"
32#define MODEL_NUMBER 44 32#define MODEL_NUMBER 54
33/* Define something for camera interface... */ 33/* Define something for camera interface... */
34#elif defined(ONDA_VX777)
35#define MODEL_NAME "Onda VX777"
36#define MODEL_NUMBER 61
34#else 37#else
35#define MODEL_NAME "Onda VX747" 38#define MODEL_NAME "Onda VX747"
36#define MODEL_NUMBER 45 39#define MODEL_NUMBER 45
@@ -87,7 +90,11 @@
87/* Define this if your LCD can be enabled/disabled */ 90/* Define this if your LCD can be enabled/disabled */
88#define HAVE_LCD_ENABLE 91#define HAVE_LCD_ENABLE
89 92
93#ifdef ONDA_VX777
94#define CONFIG_KEYPAD ONDAVX777_PAD
95#else
90#define CONFIG_KEYPAD ONDAVX747_PAD 96#define CONFIG_KEYPAD ONDAVX747_PAD
97#endif
91#define HAVE_TOUCHSCREEN 98#define HAVE_TOUCHSCREEN
92#define HAVE_BUTTON_DATA 99#define HAVE_BUTTON_DATA
93 100
diff --git a/firmware/export/config.h b/firmware/export/config.h
index e53e19ac1d..5148096a30 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -110,6 +110,7 @@
110#define SANSA_FUZE_PAD 36 110#define SANSA_FUZE_PAD 36
111#define LYRE_PROTO1_PAD 37 111#define LYRE_PROTO1_PAD 37
112#define SAMSUNG_YH_PAD 38 112#define SAMSUNG_YH_PAD 38
113#define ONDAVX777_PAD 39
113 114
114/* CONFIG_REMOTE_KEYPAD */ 115/* CONFIG_REMOTE_KEYPAD */
115#define H100_REMOTE 1 116#define H100_REMOTE 1
@@ -351,7 +352,7 @@ Lyre prototype 1*/
351#include "config-meizu-m6sp.h" 352#include "config-meizu-m6sp.h"
352#elif defined(MEIZU_M3) 353#elif defined(MEIZU_M3)
353#include "config-meizu-m3.h" 354#include "config-meizu-m3.h"
354#elif defined(ONDA_VX747) || defined(ONDA_VX747P) 355#elif defined(ONDA_VX747) || defined(ONDA_VX747P) || defined(ONDA_VX777)
355#include "config-ondavx747.h" 356#include "config-ondavx747.h"
356#elif defined(ONDA_VX767) 357#elif defined(ONDA_VX767)
357#include "config-ondavx767.h" 358#include "config-ondavx767.h"
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c b/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
index ebc2f214a9..24caac0100 100644
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
@@ -42,6 +42,8 @@
42#define BTN_HOLD (1 << 22) /* on REG_GPIO_PXPIN(2) */ 42#define BTN_HOLD (1 << 22) /* on REG_GPIO_PXPIN(2) */
43#define BTN_MENU (1 << 20) 43#define BTN_MENU (1 << 20)
44#define BTN_VOL_UP (1 << 19) 44#define BTN_VOL_UP (1 << 19)
45#elif defined(ONDA_VX777)
46/* TODO */
45#else 47#else
46#error No buttons defined! 48#error No buttons defined!
47#endif 49#endif
@@ -123,7 +125,7 @@ unsigned int battery_adc_voltage(void)
123} 125}
124 126
125void button_init_device(void) 127void button_init_device(void)
126{ 128{
127#ifdef ONDA_VX747 129#ifdef ONDA_VX747
128 __gpio_as_input(32*3 + 29); 130 __gpio_as_input(32*3 + 29);
129 __gpio_as_input(32*3 + 27); 131 __gpio_as_input(32*3 + 27);
@@ -146,6 +148,8 @@ bool button_hold(void)
146 (~REG_GPIO_PXPIN(3)) & BTN_HOLD 148 (~REG_GPIO_PXPIN(3)) & BTN_HOLD
147#elif defined(ONDA_VX747P) 149#elif defined(ONDA_VX747P)
148 (~REG_GPIO_PXPIN(2)) & BTN_HOLD 150 (~REG_GPIO_PXPIN(2)) & BTN_HOLD
151#elif defined(ONDA_VX777)
152 false /* TODO */
149#endif 153#endif
150 ? true : false 154 ? true : false
151 ); 155 );
@@ -153,13 +157,14 @@ bool button_hold(void)
153 157
154int button_read_device(int *data) 158int button_read_device(int *data)
155{ 159{
156 int ret = 0, tmp; 160 int ret = 0;
157 161
158 /* Filter button events out if HOLD button is pressed at firmware/ level */ 162 /* Filter button events out if HOLD button is pressed at firmware/ level */
159 if(button_hold()) 163 if(button_hold())
160 return 0; 164 return 0;
161 165
162 tmp = (~REG_GPIO_PXPIN(3)) & BTN_MASK; 166#ifndef ONDA_VX777
167 int tmp = (~REG_GPIO_PXPIN(3)) & BTN_MASK;
163 168
164 if(tmp & BTN_VOL_DOWN) 169 if(tmp & BTN_VOL_DOWN)
165 ret |= BUTTON_VOL_DOWN; 170 ret |= BUTTON_VOL_DOWN;
@@ -169,6 +174,7 @@ int button_read_device(int *data)
169 ret |= BUTTON_MENU; 174 ret |= BUTTON_MENU;
170 if(tmp & BTN_OFF) 175 if(tmp & BTN_OFF)
171 ret |= BUTTON_POWER; 176 ret |= BUTTON_POWER;
177#endif
172 178
173 if(cur_touch != 0 && pen_down) 179 if(cur_touch != 0 && pen_down)
174 { 180 {
@@ -176,9 +182,6 @@ int button_read_device(int *data)
176 if( UNLIKELY(!is_backlight_on(true)) ) 182 if( UNLIKELY(!is_backlight_on(true)) )
177 *data = 0; 183 *data = 0;
178 } 184 }
179
180 if(ret & (BUTTON_VOL_DOWN|BUTTON_VOL_UP))
181 touchscreen_set_mode( touchscreen_get_mode() == TOUCHSCREEN_BUTTON ? TOUCHSCREEN_POINT : TOUCHSCREEN_BUTTON);
182 185
183 return ret; 186 return ret;
184} 187}
diff --git a/tools/configure b/tools/configure
index 50091a5da3..e90a884602 100755
--- a/tools/configure
+++ b/tools/configure
@@ -774,6 +774,7 @@ cat <<EOF
774 120) VX747 110) M6SL 774 120) VX747 110) M6SL
775 121) VX767 111) M6SP ==Logik== 775 121) VX767 111) M6SP ==Logik==
776 122) VX747+ 112) M3 80) DAX 1GB MP3/DAB 776 122) VX747+ 112) M3 80) DAX 1GB MP3/DAB
777 123) VX777
777 778
778 ==Samsung== ==Tatung== ==Lyre project== 779 ==Samsung== ==Tatung== ==Lyre project==
779 140) YH-820 150) Elio TPJ-1022 130) Lyre proto 1 780 140) YH-820 150) Elio TPJ-1022 130) Lyre proto 1
@@ -2055,14 +2056,14 @@ fi
2055 target_id=54 2056 target_id=54
2056 modelname="ondavx747p" 2057 modelname="ondavx747p"
2057 target="-DONDA_VX747P" 2058 target="-DONDA_VX747P"
2058 memory=16 #FIXME 2059 memory=16
2059 mipselcc 2060 mipselcc
2060 tool="cp" 2061 tool="$rootdir/tools/scramble -add=747p"
2061 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" 2062 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2062 bmp2rb_native="$rootdir/tools/bmp2rb -f 4" 2063 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2063 output="rockbox.vx747p" 2064 output="rockbox.vx747p"
2064 appextra="recorder:gui" 2065 appextra="recorder:gui"
2065 plugins="" #FIXME 2066 plugins="yes"
2066 swcodec="yes" 2067 swcodec="yes"
2067 toolset=$genericbitmaptools 2068 toolset=$genericbitmaptools
2068 boottool="cp" 2069 boottool="cp"
@@ -2073,6 +2074,28 @@ fi
2073 t_model="onda_vx747" 2074 t_model="onda_vx747"
2074 ;; 2075 ;;
2075 2076
2077 123|ondavx777)
2078 target_id=61
2079 modelname="ondavx777"
2080 target="-DONDA_VX777"
2081 memory=16
2082 mipselcc
2083 tool="$rootdir/tools/scramble -add=x777"
2084 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
2085 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
2086 output="rockbox.vx777"
2087 appextra="recorder:gui"
2088 plugins="" #TODO
2089 swcodec="yes"
2090 toolset=$genericbitmaptools
2091 boottool="cp"
2092 bootoutput="rockboot.vx777"
2093 # architecture, manufacturer and model for the target-tree build
2094 t_cpu="mips"
2095 t_manufacturer="ingenic_jz47xx"
2096 t_model="onda_vx747"
2097 ;;
2098
2076 130|lyre_proto1) 2099 130|lyre_proto1)
2077 target_id=56 2100 target_id=56
2078 modelname="lyre_proto1" 2101 modelname="lyre_proto1"
diff --git a/tools/scramble.c b/tools/scramble.c
index 8bf8d3d034..cabe15f48d 100644
--- a/tools/scramble.c
+++ b/tools/scramble.c
@@ -123,7 +123,8 @@ void usage(void)
123 "\t ip3g, ip4g, mini, iax5, iam5, iam3, h10, h10_5gb,\n" 123 "\t ip3g, ip4g, mini, iax5, iam5, iam3, h10, h10_5gb,\n"
124 "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n"); 124 "\t tpj2, c200, e200, giga, gigs, m100, m500, d2,\n");
125 printf("\t 9200, 1630, ldax, m200, c100, clip, e2v2, m2v4,\n" 125 printf("\t 9200, 1630, ldax, m200, c100, clip, e2v2, m2v4,\n"
126 "\t fuze, c2v2, clv2, y820, y920, y925)\n"); 126 "\t fuze, c2v2, clv2, y820, y920, y925, x747, 747p, \n"
127 "\t x777)\n");
127 printf("\nNo option results in Archos standard player/recorder format.\n"); 128 printf("\nNo option results in Archos standard player/recorder format.\n");
128 129
129 exit(1); 130 exit(1);
@@ -300,6 +301,10 @@ int main (int argc, char** argv)
300 modelnum = 44; 301 modelnum = 44;
301 else if (!strcmp(&argv[1][5], "x747")) 302 else if (!strcmp(&argv[1][5], "x747"))
302 modelnum = 45; 303 modelnum = 45;
304 else if (!strcmp(&argv[1][5], "747p"))
305 modelnum = 54;
306 else if (!strcmp(&argv[1][5], "x777"))
307 modelnum = 61;
303 else if (!strcmp(&argv[1][5], "y820")) /* Samsung YH-820 */ 308 else if (!strcmp(&argv[1][5], "y820")) /* Samsung YH-820 */
304 modelnum = 57; 309 modelnum = 57;
305 else if (!strcmp(&argv[1][5], "y920")) /* Samsung YH-920 */ 310 else if (!strcmp(&argv[1][5], "y920")) /* Samsung YH-920 */