diff options
Diffstat (limited to 'firmware/target/coldfire')
4 files changed, 24 insertions, 0 deletions
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-target.h b/firmware/target/coldfire/iaudio/x5/backlight-target.h index 262650ae24..e982e656d6 100755 --- a/firmware/target/coldfire/iaudio/x5/backlight-target.h +++ b/firmware/target/coldfire/iaudio/x5/backlight-target.h | |||
@@ -21,6 +21,7 @@ | |||
21 | 21 | ||
22 | void __backlight_on(void); | 22 | void __backlight_on(void); |
23 | void __backlight_off(void); | 23 | void __backlight_off(void); |
24 | void __backlight_set_brightness(int val); | ||
24 | void __remote_backlight_on(void); | 25 | void __remote_backlight_on(void); |
25 | void __remote_backlight_off(void); | 26 | void __remote_backlight_off(void); |
26 | 27 | ||
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-x5.c b/firmware/target/coldfire/iaudio/x5/backlight-x5.c index 70a5d957b6..9d02c35988 100755 --- a/firmware/target/coldfire/iaudio/x5/backlight-x5.c +++ b/firmware/target/coldfire/iaudio/x5/backlight-x5.c | |||
@@ -40,6 +40,16 @@ void __backlight_off(void) | |||
40 | lcd_enable(false); | 40 | lcd_enable(false); |
41 | } | 41 | } |
42 | 42 | ||
43 | /* set brightness by changing the PWM */ | ||
44 | void __backlight_set_brightness(int val) | ||
45 | { | ||
46 | /* disable IRQs while bitbanging */ | ||
47 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
48 | pcf50606_write(0x35, (val << 1) | 0x01); /* 512Hz, Enable PWM */ | ||
49 | /* enable IRQs again */ | ||
50 | set_irq_level(old_irq_level); | ||
51 | } | ||
52 | |||
43 | void __remote_backlight_on(void) | 53 | void __remote_backlight_on(void) |
44 | { | 54 | { |
45 | and_l(~0x00200000, &GPIO_OUT); | 55 | and_l(~0x00200000, &GPIO_OUT); |
diff --git a/firmware/target/coldfire/iriver/backlight-target.h b/firmware/target/coldfire/iriver/backlight-target.h index 262650ae24..086ab02761 100644 --- a/firmware/target/coldfire/iriver/backlight-target.h +++ b/firmware/target/coldfire/iriver/backlight-target.h | |||
@@ -21,6 +21,9 @@ | |||
21 | 21 | ||
22 | void __backlight_on(void); | 22 | void __backlight_on(void); |
23 | void __backlight_off(void); | 23 | void __backlight_off(void); |
24 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
25 | void __backlight_set_brightness(int val); | ||
26 | #endif | ||
24 | void __remote_backlight_on(void); | 27 | void __remote_backlight_on(void); |
25 | void __remote_backlight_off(void); | 28 | void __remote_backlight_off(void); |
26 | 29 | ||
diff --git a/firmware/target/coldfire/iriver/h300/backlight-h300.c b/firmware/target/coldfire/iriver/h300/backlight-h300.c index d5322c2cf7..50bd757612 100644 --- a/firmware/target/coldfire/iriver/h300/backlight-h300.c +++ b/firmware/target/coldfire/iriver/h300/backlight-h300.c | |||
@@ -38,6 +38,16 @@ void __backlight_off(void) | |||
38 | lcd_enable(false); | 38 | lcd_enable(false); |
39 | } | 39 | } |
40 | 40 | ||
41 | /* set brightness by changing the PWM */ | ||
42 | void __backlight_set_brightness(int val) | ||
43 | { | ||
44 | /* disable IRQs while bitbanging */ | ||
45 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | ||
46 | pcf50606_write(0x35, (val << 1) | 0x01); /* 512Hz, Enable PWM */ | ||
47 | /* enable IRQs again */ | ||
48 | set_irq_level(old_irq_level); | ||
49 | } | ||
50 | |||
41 | void __remote_backlight_on(void) | 51 | void __remote_backlight_on(void) |
42 | { | 52 | { |
43 | and_l(~0x00000002, &GPIO1_OUT); | 53 | and_l(~0x00000002, &GPIO1_OUT); |