diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/onda_vx747')
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 | ||
34 | static bool backlight_on; | 34 | static bool backlight_on; |
35 | |||
36 | static void set_backlight(int val) | 35 | static 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 | ||
51 | bool backlight_enabled(void) | ||
52 | { | ||
53 | return backlight_on; | ||
54 | } | ||
55 | |||
56 | void _backlight_on(void) | 50 | void _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 | ||
62 | void _backlight_off(void) | 58 | void _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 | ||
134 | bool backlight_enabled(void) | ||
135 | { | ||
136 | return old_val > -1 ? true : false; | ||
137 | } | ||
138 | |||
139 | void _backlight_on(void) | 132 | void _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 | /* | ||
33 | bool _backlight_init(void); | 32 | bool _backlight_init(void); |
34 | void _backlight_on(void); | 33 | void _backlight_on(void); |
35 | void _backlight_off(void); | 34 | void _backlight_off(void); |
36 | void _backlight_set_brightness(int brightness); | 35 | void _backlight_set_brightness(int brightness); |
37 | bool 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; | |||
71 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | 71 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = |
72 | { | 72 | { |
73 | /* TODO */ | 73 | /* TODO */ |
74 | 1400 | 74 | 1000 |
75 | }; | 75 | }; |
76 | 76 | ||
77 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | 77 | const 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 */ |
84 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | 84 | const 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 */ |
91 | const unsigned short percent_to_volt_charge[11] = | 91 | const 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] */ |
101 | unsigned int battery_adc_voltage(void) | 101 | unsigned 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 | ||
124 | void button_init_device(void) | 124 | void 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 */ |