summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/onda_vx747
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/onda_vx747')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c21
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-target.h3
-rw-r--r--firmware/target/mips/ingenic_jz47xx/onda_vx747/sadc-onda_vx747.c27
3 files changed, 22 insertions, 29 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
index eec48768b2..72e469977b 100644
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-onda_vx7X7.c
@@ -27,12 +27,11 @@
27#define BACKLIGHT_GPIO (32*3+31) 27#define BACKLIGHT_GPIO (32*3+31)
28#define BACKLIGHT_PWM 7 28#define BACKLIGHT_PWM 7
29 29
30/* TODO: use HW PWM */
30#define SW_PWM 1 31#define SW_PWM 1
31
32#if SW_PWM 32#if SW_PWM
33 33
34static bool backlight_on; 34static bool backlight_on;
35
36static void set_backlight(int val) 35static void set_backlight(int val)
37{ 36{
38 (void)val; 37 (void)val;
@@ -48,20 +47,19 @@ bool _backlight_init(void)
48 return true; 47 return true;
49} 48}
50 49
51bool backlight_enabled(void)
52{
53 return backlight_on;
54}
55
56void _backlight_on(void) 50void _backlight_on(void)
57{ 51{
58 __gpio_set_pin(BACKLIGHT_GPIO); 52 if(!backlight_on)
53 __gpio_set_pin(BACKLIGHT_GPIO);
54
59 backlight_on = true; 55 backlight_on = true;
60} 56}
61 57
62void _backlight_off(void) 58void _backlight_off(void)
63{ 59{
64 __gpio_clear_pin(BACKLIGHT_GPIO); 60 if(backlight_on)
61 __gpio_clear_pin(BACKLIGHT_GPIO);
62
65 backlight_on = false; 63 backlight_on = false;
66} 64}
67 65
@@ -131,11 +129,6 @@ bool _backlight_init(void)
131 return true; 129 return true;
132} 130}
133 131
134bool backlight_enabled(void)
135{
136 return old_val > -1 ? true : false;
137}
138
139void _backlight_on(void) 132void _backlight_on(void)
140{ 133{
141 set_backlight_on(); 134 set_backlight_on();
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-target.h b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-target.h
index c6647fa9da..4170f96cc0 100644
--- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-target.h
+++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/backlight-target.h
@@ -29,12 +29,9 @@
29 29
30#include <stdbool.h> 30#include <stdbool.h>
31 31
32/*
33bool _backlight_init(void); 32bool _backlight_init(void);
34void _backlight_on(void); 33void _backlight_on(void);
35void _backlight_off(void); 34void _backlight_off(void);
36void _backlight_set_brightness(int brightness); 35void _backlight_set_brightness(int brightness);
37bool backlight_enabled(void);
38*/
39 36
40#endif /* BACKLIGHT_TARGET_H */ 37#endif /* BACKLIGHT_TARGET_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 3dce73b05e..c9c264e26a 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
@@ -71,36 +71,36 @@ static struct mutex battery_mtx;
71const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = 71const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
72{ 72{
73 /* TODO */ 73 /* TODO */
74 1400 74 1000
75}; 75};
76 76
77const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = 77const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] =
78{ 78{
79 /* TODO */ 79 /* TODO */
80 1300 80 900
81}; 81};
82 82
83/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ 83/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
84const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = 84const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] =
85{ 85{
86 /* TODO */ 86 /* TODO */
87 { 1300, 3680, 3740, 3760, 3780, 3810, 3870, 3930, 3970, 4070, 4160 }, 87 { 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000 },
88}; 88};
89 89
90/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ 90/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */
91const unsigned short percent_to_volt_charge[11] = 91const unsigned short percent_to_volt_charge[11] =
92{ 92{
93 /* TODO */ 93 /* TODO */
94 3300, 3680, 3740, 3760, 3780, 3810, 3870, 3930, 3970, 4070, 4160 94 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000
95}; 95};
96 96
97/* VBAT = (BDATA/4096) * 7.5V */ 97/* VBAT = (BDATA/4096) * 7.5V */
98#define BATTERY_SCALE_FACTOR 7500 98#define BATTERY_SCALE_FACTOR 1875
99 99
100/* Returns battery voltage from ADC [millivolts] */ 100/* Returns battery voltage from ADC [millivolts] */
101unsigned int battery_adc_voltage(void) 101unsigned int battery_adc_voltage(void)
102{ 102{
103 unsigned int dummy, timeout=1000; 103 unsigned int dummy, timeout=HZ/4;
104 104
105 mutex_lock(&battery_mtx); 105 mutex_lock(&battery_mtx);
106 106
@@ -114,18 +114,18 @@ unsigned int battery_adc_voltage(void)
114 while(bat_val == 0 && timeout--) 114 while(bat_val == 0 && timeout--)
115 sleep(0); 115 sleep(0);
116 116
117 logf("%d %d", bat_val, (bat_val*BATTERY_SCALE_FACTOR)>>12); 117 logf("%d %d", bat_val, (bat_val*BATTERY_SCALE_FACTOR)>>10);
118 118
119 mutex_unlock(&battery_mtx); 119 mutex_unlock(&battery_mtx);
120 120
121 return (bat_val*BATTERY_SCALE_FACTOR)>>12; 121 return (bat_val*BATTERY_SCALE_FACTOR)>>10;
122} 122}
123 123
124void button_init_device(void) 124void button_init_device(void)
125{ 125{
126 __cpm_start_sadc(); 126 __cpm_start_sadc();
127 REG_SADC_ENA = 0; 127 REG_SADC_ENA = 0;
128 REG_SADC_STATE &= (~REG_SADC_STATE); 128 REG_SADC_STATE &= ~REG_SADC_STATE;
129 REG_SADC_CTRL = 0x1F; 129 REG_SADC_CTRL = 0x1F;
130 130
131 REG_SADC_CFG = SADC_CFG_INIT; 131 REG_SADC_CFG = SADC_CFG_INIT;
@@ -134,8 +134,8 @@ void button_init_device(void)
134 134
135 REG_SADC_SAMETIME = 10; 135 REG_SADC_SAMETIME = 10;
136 REG_SADC_WAITTIME = 100; 136 REG_SADC_WAITTIME = 100;
137 REG_SADC_STATE &= (~REG_SADC_STATE); 137 REG_SADC_STATE &= ~REG_SADC_STATE;
138 REG_SADC_CTRL = (~(SADC_CTRL_PENDM | SADC_CTRL_PENUM | SADC_CTRL_TSRDYM | SADC_CTRL_PBATRDYM)); 138 REG_SADC_CTRL = ~(SADC_CTRL_PENDM | SADC_CTRL_PENUM | SADC_CTRL_TSRDYM | SADC_CTRL_PBATRDYM);
139 REG_SADC_ENA = SADC_ENA_TSEN; 139 REG_SADC_ENA = SADC_ENA_TSEN;
140 140
141#ifdef ONDA_VX747 141#ifdef ONDA_VX747
@@ -192,6 +192,9 @@ int button_read_device(int *data)
192 if( UNLIKELY(!is_backlight_on(true)) ) 192 if( UNLIKELY(!is_backlight_on(true)) )
193 *data = 0; 193 *data = 0;
194 } 194 }
195
196 if(ret & (BUTTON_VOL_DOWN|BUTTON_VOL_UP))
197 touchscreen_set_mode( touchscreen_get_mode() == TOUCHSCREEN_BUTTON ? TOUCHSCREEN_POINT : TOUCHSCREEN_BUTTON);
195 198
196 return ret; 199 return ret;
197} 200}
@@ -205,7 +208,7 @@ void SADC(void)
205 sadcstate = REG_SADC_STATE; 208 sadcstate = REG_SADC_STATE;
206 state = REG_SADC_STATE & (~REG_SADC_CTRL); 209 state = REG_SADC_STATE & (~REG_SADC_CTRL);
207 REG_SADC_STATE &= sadcstate; 210 REG_SADC_STATE &= sadcstate;
208 211
209 if(state & SADC_CTRL_PENDM) 212 if(state & SADC_CTRL_PENDM)
210 { 213 {
211 /* Pen down IRQ */ 214 /* Pen down IRQ */