summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c15
1 files changed, 9 insertions, 6 deletions
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}