summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c')
-rwxr-xr-x[-rw-r--r--]firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c27
1 files changed, 26 insertions, 1 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 2624eb3d82..1aa98819fe 100644..100755
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c
@@ -27,11 +27,22 @@
27#include "powermgmt.h" 27#include "powermgmt.h"
28#include "kernel.h" 28#include "kernel.h"
29 29
30#ifdef ONDA_VX747
30#define BTN_OFF (1 << 29) 31#define BTN_OFF (1 << 29)
31#define BTN_VOL_DOWN (1 << 27) 32#define BTN_VOL_DOWN (1 << 27)
32#define BTN_HOLD (1 << 16) 33#define BTN_HOLD (1 << 16)
33#define BTN_MENU (1 << 1) 34#define BTN_MENU (1 << 1)
34#define BTN_VOL_UP (1 << 0) 35#define BTN_VOL_UP (1 << 0)
36#elif defined(ONDA_VX747P)
37#define BTN_OFF (1 << 29)
38#define BTN_VOL_DOWN (1 << 27)
39#define BTN_HOLD (1 << 22) /* on REG_GPIO_PXPIN(2) */
40#define BTN_MENU (1 << 20)
41#define BTN_VOL_UP (1 << 19)
42#else
43#error No buttons defined!
44#endif
45
35#define BTN_MASK (BTN_OFF | BTN_VOL_DOWN | \ 46#define BTN_MASK (BTN_OFF | BTN_VOL_DOWN | \
36 BTN_MENU | BTN_VOL_UP) 47 BTN_MENU | BTN_VOL_UP)
37 48
@@ -130,11 +141,19 @@ void button_init_device(void)
130 REG_SADC_CTRL = (~(SADC_CTRL_PENDM | SADC_CTRL_PENUM | SADC_CTRL_TSRDYM | SADC_CTRL_PBATRDYM)); 141 REG_SADC_CTRL = (~(SADC_CTRL_PENDM | SADC_CTRL_PENUM | SADC_CTRL_TSRDYM | SADC_CTRL_PBATRDYM));
131 REG_SADC_ENA = (SADC_ENA_TSEN | SADC_ENA_PBATEN); 142 REG_SADC_ENA = (SADC_ENA_TSEN | SADC_ENA_PBATEN);
132 143
144#ifdef ONDA_VX747
133 __gpio_as_input(32*3 + 29); 145 __gpio_as_input(32*3 + 29);
134 __gpio_as_input(32*3 + 27); 146 __gpio_as_input(32*3 + 27);
135 __gpio_as_input(32*3 + 16); 147 __gpio_as_input(32*3 + 16);
136 __gpio_as_input(32*3 + 1); 148 __gpio_as_input(32*3 + 1);
137 __gpio_as_input(32*3 + 0); 149 __gpio_as_input(32*3 + 0);
150#elif defined(ONDA_VX747P)
151 __gpio_as_input(32*3 + 29);
152 __gpio_as_input(32*3 + 27);
153 __gpio_as_input(32*3 + 20);
154 __gpio_as_input(32*3 + 19);
155 __gpio_as_input(32*2 + 22);
156#endif
138 157
139 mutex_init(&battery_mtx); 158 mutex_init(&battery_mtx);
140} 159}
@@ -173,7 +192,13 @@ int button_read_device(int *data)
173 int ret = 0, tmp; 192 int ret = 0, tmp;
174 193
175 /* Filter button events out if HOLD button is pressed at firmware/ level */ 194 /* Filter button events out if HOLD button is pressed at firmware/ level */
176 if((~REG_GPIO_PXPIN(3)) & BTN_HOLD) 195 if(
196#ifdef ONDA_VX747
197 (~REG_GPIO_PXPIN(3)) & BTN_HOLD
198#elif defined(ONDA_VX747P)
199 (~REG_GPIO_PXPIN(2)) & BTN_HOLD
200#endif
201 )
177 return 0; 202 return 0;
178 203
179 tmp = (~REG_GPIO_PXPIN(3)) & BTN_MASK; 204 tmp = (~REG_GPIO_PXPIN(3)) & BTN_MASK;