diff options
-rw-r--r-- | firmware/target/arm/rk27xx/hm60x/button-hm60x.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/firmware/target/arm/rk27xx/hm60x/button-hm60x.c b/firmware/target/arm/rk27xx/hm60x/button-hm60x.c index eaadaa131c..af31e78133 100644 --- a/firmware/target/arm/rk27xx/hm60x/button-hm60x.c +++ b/firmware/target/arm/rk27xx/hm60x/button-hm60x.c | |||
@@ -31,16 +31,26 @@ void button_init_device(void) { | |||
31 | 31 | ||
32 | int button_read_device(void) { | 32 | int button_read_device(void) { |
33 | int adc_val = adc_read(ADC_BUTTONS); | 33 | int adc_val = adc_read(ADC_BUTTONS); |
34 | if (adc_val < 30) { | 34 | int gpio_btn = GPIO_PCDR & BUTTON_POWER; |
35 | return BUTTON_UP | (GPIO_PCDR & POWEROFF_BUTTON); | 35 | |
36 | } else if (adc_val < 250) { | 36 | if (adc_val < 380) { /* 0 - 379 */ |
37 | return BUTTON_RIGHT | (GPIO_PCDR & POWEROFF_BUTTON); | 37 | if (adc_val < 250) { /* 0 - 249 */ |
38 | } else if (adc_val < 380) { | 38 | if (adc_val < 30) { /* 0 - 29 */ |
39 | return BUTTON_LEFT | (GPIO_PCDR & POWEROFF_BUTTON); | 39 | return BUTTON_UP | gpio_btn; |
40 | } else if (adc_val < 450) { | 40 | } else { /* 30 - 249 */ |
41 | return BUTTON_DOWN | (GPIO_PCDR & POWEROFF_BUTTON); | 41 | return BUTTON_RIGHT | gpio_btn; |
42 | } else if (adc_val < 560) { | 42 | } |
43 | return BUTTON_PLAY | (GPIO_PCDR & POWEROFF_BUTTON); | 43 | } else { /* 250 - 379 */ |
44 | return BUTTON_LEFT | gpio_btn; | ||
45 | } | ||
46 | } else { /* > 380 */ | ||
47 | if (adc_val < 460) { /* 380 - 459 */ | ||
48 | return BUTTON_DOWN | gpio_btn; | ||
49 | } else { /* > 460 */ | ||
50 | if (adc_val < 560) { | ||
51 | return BUTTON_SELECT | gpio_btn; | ||
52 | } | ||
53 | } | ||
44 | } | 54 | } |
45 | return (GPIO_PCDR & POWEROFF_BUTTON); | 55 | return gpio_btn; |
46 | } | 56 | } |