summaryrefslogtreecommitdiff
path: root/firmware/backlight.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/backlight.c')
-rw-r--r--firmware/backlight.c29
1 files changed, 6 insertions, 23 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 7b499f26bf..e1d92581c4 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -813,35 +813,18 @@ bool is_remote_backlight_on(void) {return true;}
813#endif 813#endif
814#endif /* defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER) */ 814#endif /* defined(CONFIG_BACKLIGHT) && !defined(BOOTLOADER) */
815 815
816/* TODO: Move low level code to target/ tree. Create
817 __backlight_set_brightness and call from here. */
818#ifdef HAVE_BACKLIGHT_BRIGHTNESS 816#ifdef HAVE_BACKLIGHT_BRIGHTNESS
819#if defined(IRIVER_H300_SERIES) || defined(IAUDIO_X5)
820void backlight_set_brightness(int val) 817void backlight_set_brightness(int val)
821{ 818{
822#ifndef SIMULATOR 819#ifndef SIMULATOR
823 /* set brightness by changing the PWM 820 if (val < MIN_BRIGHTNESS_SETTING)
824 * accepts 0..15 but note that 0 and 1 give a black display on H300! 821 val = MIN_BRIGHTNESS_SETTING;
825 * 0 is black on the X5. 822 else if (val > MAX_BRIGHTNESS_SETTING)
826 */ 823 val = MAX_BRIGHTNESS_SETTING;
827 824
828 /* disable IRQs while bitbanging */ 825 __backlight_set_brightness(val);
829 int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL);
830
831 /* Clamp setting to range */
832 if(val<MIN_BRIGHTNESS_SETTING)
833 val=MIN_BRIGHTNESS_SETTING;
834 else if(val>MAX_BRIGHTNESS_SETTING)
835 val=MAX_BRIGHTNESS_SETTING;
836
837 pcf50606_write(0x35, (val << 1) | 0x01); /* 512Hz, Enable PWM */
838
839 /* enable IRQs again */
840 set_irq_level(old_irq_level);
841#else 826#else
842 val=0; 827 (void)val;
843#endif 828#endif
844} 829}
845#endif
846#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ 830#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
847