diff options
Diffstat (limited to 'firmware/backlight.c')
-rw-r--r-- | firmware/backlight.c | 61 |
1 files changed, 23 insertions, 38 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c index e1d92581c4..bc692b1675 100644 --- a/firmware/backlight.c +++ b/firmware/backlight.c | |||
@@ -31,10 +31,6 @@ | |||
31 | #include "timer.h" | 31 | #include "timer.h" |
32 | #include "backlight.h" | 32 | #include "backlight.h" |
33 | 33 | ||
34 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
35 | #include "pcf50606.h" /* iRiver, iAudio X5 brightness */ | ||
36 | #endif | ||
37 | |||
38 | #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) | 34 | #if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) |
39 | #include "lcd.h" /* for lcd_enable() and lcd_sleep() */ | 35 | #include "lcd.h" /* for lcd_enable() and lcd_sleep() */ |
40 | #endif | 36 | #endif |
@@ -110,8 +106,6 @@ static void backlight_thread(void); | |||
110 | static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)]; | 106 | static long backlight_stack[DEFAULT_STACK_SIZE/sizeof(long)]; |
111 | #ifdef X5_BACKLIGHT_SHUTDOWN | 107 | #ifdef X5_BACKLIGHT_SHUTDOWN |
112 | #define BACKLIGHT_QUIT 256 | 108 | #define BACKLIGHT_QUIT 256 |
113 | /* Need to save this for x5 shutdown */ | ||
114 | struct thread_entry* backlight_thread_id; | ||
115 | #endif | 109 | #endif |
116 | static const char backlight_thread_name[] = "backlight"; | 110 | static const char backlight_thread_name[] = "backlight"; |
117 | static struct event_queue backlight_queue; | 111 | static struct event_queue backlight_queue; |
@@ -473,7 +467,7 @@ void backlight_thread(void) | |||
473 | 467 | ||
474 | #ifdef X5_BACKLIGHT_SHUTDOWN | 468 | #ifdef X5_BACKLIGHT_SHUTDOWN |
475 | case BACKLIGHT_QUIT: | 469 | case BACKLIGHT_QUIT: |
476 | remove_thread(backlight_thread_id); | 470 | remove_thread(NULL); |
477 | break; | 471 | break; |
478 | #endif | 472 | #endif |
479 | 473 | ||
@@ -552,23 +546,17 @@ static void backlight_tick(void) | |||
552 | void backlight_init(void) | 546 | void backlight_init(void) |
553 | { | 547 | { |
554 | queue_init(&backlight_queue, true); | 548 | queue_init(&backlight_queue, true); |
555 | #ifdef X5_BACKLIGHT_SHUTDOWN | ||
556 | backlight_thread_id = | ||
557 | #endif | ||
558 | create_thread(backlight_thread, backlight_stack, | 549 | create_thread(backlight_thread, backlight_stack, |
559 | sizeof(backlight_stack), backlight_thread_name | 550 | sizeof(backlight_stack), backlight_thread_name |
560 | IF_PRIO(, PRIORITY_SYSTEM)); | 551 | IF_PRIO(, PRIORITY_SYSTEM)); |
561 | tick_add_task(backlight_tick); | 552 | tick_add_task(backlight_tick); |
562 | #ifdef SIMULATOR | 553 | #ifdef SIMULATOR |
563 | /* do nothing */ | 554 | /* do nothing */ |
564 | #elif CONFIG_BACKLIGHT == BL_IRIVER_H100 | 555 | #elif defined(__BACKLIGHT_INIT) |
565 | or_l(0x00020000, &GPIO1_ENABLE); | 556 | /* Remove the __BACKLIGHT_INIT references when __backlight_init is |
566 | or_l(0x00020000, &GPIO1_FUNCTION); | 557 | available on all backlighted targets. Take them out of the |
567 | and_l(~0x00020000, &GPIO1_OUT); /* Start with the backlight ON */ | 558 | backlight-target.h files as well */ |
568 | #elif CONFIG_BACKLIGHT == BL_IRIVER_H300 | 559 | __backlight_init(); |
569 | or_l(0x00020000, &GPIO1_ENABLE); | ||
570 | or_l(0x00020000, &GPIO1_FUNCTION); | ||
571 | or_l(0x00020000, &GPIO1_OUT); /* Start with the backlight ON */ | ||
572 | #elif CONFIG_BACKLIGHT == BL_PA14_LO || CONFIG_BACKLIGHT == BL_PA14_HI | 560 | #elif CONFIG_BACKLIGHT == BL_PA14_LO || CONFIG_BACKLIGHT == BL_PA14_HI |
573 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ | 561 | PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */ |
574 | or_b(0x40, &PAIORH); /* ..and output */ | 562 | or_b(0x40, &PAIORH); /* ..and output */ |
@@ -787,16 +775,26 @@ bool is_remote_backlight_on(void) | |||
787 | 775 | ||
788 | #endif /* HAVE_REMOTE_LCD */ | 776 | #endif /* HAVE_REMOTE_LCD */ |
789 | 777 | ||
778 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
779 | void backlight_set_brightness(int val) | ||
780 | { | ||
781 | if (val < MIN_BRIGHTNESS_SETTING) | ||
782 | val = MIN_BRIGHTNESS_SETTING; | ||
783 | else if (val > MAX_BRIGHTNESS_SETTING) | ||
784 | val = MAX_BRIGHTNESS_SETTING; | ||
785 | |||
786 | __backlight_set_brightness(val); | ||
787 | } | ||
788 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | ||
789 | |||
790 | #else /* !defined(CONFIG_BACKLIGHT) || defined(BOOTLOADER) | 790 | #else /* !defined(CONFIG_BACKLIGHT) || defined(BOOTLOADER) |
791 | -- no backlight, empty dummy functions */ | 791 | -- no backlight, empty dummy functions */ |
792 | 792 | ||
793 | #if defined(BOOTLOADER) && defined(CONFIG_BACKLIGHT) | 793 | #if defined(BOOTLOADER) && defined(CONFIG_BACKLIGHT) |
794 | void backlight_init(void) | 794 | void backlight_init(void) |
795 | { | 795 | { |
796 | #ifdef IRIVER_H300_SERIES | 796 | #ifdef __BACKLIGHT_INIT |
797 | or_l(0x00020000, &GPIO1_OUT); | 797 | __backlight_init(); |
798 | or_l(0x00020000, &GPIO1_ENABLE); | ||
799 | or_l(0x00020000, &GPIO1_FUNCTION); | ||
800 | #endif | 798 | #endif |
801 | } | 799 | } |
802 | #endif | 800 | #endif |
@@ -810,21 +808,8 @@ void remote_backlight_on(void) {} | |||
810 | void remote_backlight_off(void) {} | 808 | void remote_backlight_off(void) {} |
811 | void remote_backlight_set_timeout(int index) {(void)index;} | 809 | void remote_backlight_set_timeout(int index) {(void)index;} |
812 | bool is_remote_backlight_on(void) {return true;} | 810 | bool is_remote_backlight_on(void) {return true;} |
813 | #endif | 811 | #endif /* HAVE_REMOTE_LCD */ |
814 | #endif /* defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER) */ | ||
815 | |||
816 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 812 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS |
817 | void backlight_set_brightness(int val) | 813 | void backlight_set_brightness(int val) { (void)val; } |
818 | { | ||
819 | #ifndef SIMULATOR | ||
820 | if (val < MIN_BRIGHTNESS_SETTING) | ||
821 | val = MIN_BRIGHTNESS_SETTING; | ||
822 | else if (val > MAX_BRIGHTNESS_SETTING) | ||
823 | val = MAX_BRIGHTNESS_SETTING; | ||
824 | |||
825 | __backlight_set_brightness(val); | ||
826 | #else | ||
827 | (void)val; | ||
828 | #endif | 814 | #endif |
829 | } | 815 | #endif /* defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER) */ |
830 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | ||