diff options
author | Jens Arnold <amiconn@rockbox.org> | 2007-11-12 18:49:53 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2007-11-12 18:49:53 +0000 |
commit | ef12b3b5c678e4fa44d60061b0c1bc312e589ba1 (patch) | |
tree | 4c2572d7bf3d995be16b33fa2e46ccccad34f4ee /firmware/target/coldfire/iriver | |
parent | 8537cbf091634efa57768dccff39049afdf6d288 (diff) | |
download | rockbox-ef12b3b5c678e4fa44d60061b0c1bc312e589ba1.tar.gz rockbox-ef12b3b5c678e4fa44d60061b0c1bc312e589ba1.zip |
Hardware controlled backlight brightness for iPod Video and Nano, retaining the software PWM fade in/ fade out. * Backlight handling cleanup, getting rid of one layer of 'lowlevelness'. * Use atomic GPIO bit manipulation for PP502x backlight handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15599 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/coldfire/iriver')
-rw-r--r-- | firmware/target/coldfire/iriver/h100/backlight-h100.c | 10 | ||||
-rw-r--r-- | firmware/target/coldfire/iriver/h100/backlight-target.h | 35 | ||||
-rw-r--r-- | firmware/target/coldfire/iriver/h300/backlight-h300.c | 12 | ||||
-rw-r--r-- | firmware/target/coldfire/iriver/h300/backlight-target.h (renamed from firmware/target/coldfire/iriver/backlight-target.h) | 14 |
4 files changed, 52 insertions, 19 deletions
diff --git a/firmware/target/coldfire/iriver/h100/backlight-h100.c b/firmware/target/coldfire/iriver/h100/backlight-h100.c index 7cff965ff9..1c3dded5e5 100644 --- a/firmware/target/coldfire/iriver/h100/backlight-h100.c +++ b/firmware/target/coldfire/iriver/h100/backlight-h100.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | 26 | ||
27 | /* Returns the current state of the backlight (true=ON, false=OFF). */ | 27 | /* Returns the current state of the backlight (true=ON, false=OFF). */ |
28 | bool __backlight_init(void) | 28 | bool _backlight_init(void) |
29 | { | 29 | { |
30 | or_l(0x00020000, &GPIO1_ENABLE); | 30 | or_l(0x00020000, &GPIO1_ENABLE); |
31 | or_l(0x00020000, &GPIO1_FUNCTION); | 31 | or_l(0x00020000, &GPIO1_FUNCTION); |
@@ -33,22 +33,22 @@ bool __backlight_init(void) | |||
33 | return (GPIO1_OUT & 0x00020000) ? false : true; | 33 | return (GPIO1_OUT & 0x00020000) ? false : true; |
34 | } | 34 | } |
35 | 35 | ||
36 | void __backlight_on(void) | 36 | void _backlight_hw_on(void) |
37 | { | 37 | { |
38 | and_l(~0x00020000, &GPIO1_OUT); | 38 | and_l(~0x00020000, &GPIO1_OUT); |
39 | } | 39 | } |
40 | 40 | ||
41 | void __backlight_off(void) | 41 | void _backlight_hw_off(void) |
42 | { | 42 | { |
43 | or_l(0x00020000, &GPIO1_OUT); | 43 | or_l(0x00020000, &GPIO1_OUT); |
44 | } | 44 | } |
45 | 45 | ||
46 | void __remote_backlight_on(void) | 46 | void _remote_backlight_on(void) |
47 | { | 47 | { |
48 | and_l(~0x00000800, &GPIO_OUT); | 48 | and_l(~0x00000800, &GPIO_OUT); |
49 | } | 49 | } |
50 | 50 | ||
51 | void __remote_backlight_off(void) | 51 | void _remote_backlight_off(void) |
52 | { | 52 | { |
53 | or_l(0x00000800, &GPIO_OUT); | 53 | or_l(0x00000800, &GPIO_OUT); |
54 | } | 54 | } |
diff --git a/firmware/target/coldfire/iriver/h100/backlight-target.h b/firmware/target/coldfire/iriver/h100/backlight-target.h new file mode 100644 index 0000000000..6697fb19c3 --- /dev/null +++ b/firmware/target/coldfire/iriver/h100/backlight-target.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 by Linus Nielsen Feltzing | ||
11 | * | ||
12 | * All files in this archive are subject to the GNU General Public License. | ||
13 | * See the file COPYING in the source tree root for full license agreement. | ||
14 | * | ||
15 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
16 | * KIND, either express or implied. | ||
17 | * | ||
18 | ****************************************************************************/ | ||
19 | #ifndef BACKLIGHT_TARGET_H | ||
20 | #define BACKLIGHT_TARGET_H | ||
21 | |||
22 | bool _backlight_init(void); /* Returns backlight current state (true=ON). */ | ||
23 | void _backlight_hw_on(void); | ||
24 | void _backlight_hw_off(void); | ||
25 | |||
26 | #define _backlight_on_isr() _backlight_hw_on() | ||
27 | #define _backlight_off_isr() _backlight_hw_off() | ||
28 | #define _backlight_on_normal() _backlight_hw_on() | ||
29 | #define _backlight_off_normal() _backlight_hw_off() | ||
30 | #define _BACKLIGHT_FADE_BOOST | ||
31 | |||
32 | void _remote_backlight_on(void); | ||
33 | void _remote_backlight_off(void); | ||
34 | |||
35 | #endif | ||
diff --git a/firmware/target/coldfire/iriver/h300/backlight-h300.c b/firmware/target/coldfire/iriver/h300/backlight-h300.c index 4cec54f0d7..c0d441ad3f 100644 --- a/firmware/target/coldfire/iriver/h300/backlight-h300.c +++ b/firmware/target/coldfire/iriver/h300/backlight-h300.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "pcf50606.h" | 25 | #include "pcf50606.h" |
26 | #include "lcd.h" | 26 | #include "lcd.h" |
27 | 27 | ||
28 | bool __backlight_init(void) | 28 | bool _backlight_init(void) |
29 | { | 29 | { |
30 | or_l(0x00020000, &GPIO1_ENABLE); | 30 | or_l(0x00020000, &GPIO1_ENABLE); |
31 | or_l(0x00020000, &GPIO1_FUNCTION); | 31 | or_l(0x00020000, &GPIO1_FUNCTION); |
@@ -34,21 +34,21 @@ bool __backlight_init(void) | |||
34 | return true; /* Backlight always ON after boot. */ | 34 | return true; /* Backlight always ON after boot. */ |
35 | } | 35 | } |
36 | 36 | ||
37 | void __backlight_on(void) | 37 | void _backlight_on(void) |
38 | { | 38 | { |
39 | lcd_enable(true); | 39 | lcd_enable(true); |
40 | sleep(HZ/100); /* lcd needs time - avoid flashing for dark screens */ | 40 | sleep(HZ/100); /* lcd needs time - avoid flashing for dark screens */ |
41 | or_l(0x00020000, &GPIO1_OUT); | 41 | or_l(0x00020000, &GPIO1_OUT); |
42 | } | 42 | } |
43 | 43 | ||
44 | void __backlight_off(void) | 44 | void _backlight_off(void) |
45 | { | 45 | { |
46 | and_l(~0x00020000, &GPIO1_OUT); | 46 | and_l(~0x00020000, &GPIO1_OUT); |
47 | lcd_enable(false); | 47 | lcd_enable(false); |
48 | } | 48 | } |
49 | 49 | ||
50 | /* set brightness by changing the PWM */ | 50 | /* set brightness by changing the PWM */ |
51 | void __backlight_set_brightness(int val) | 51 | void _backlight_set_brightness(int val) |
52 | { | 52 | { |
53 | /* disable IRQs while bitbanging */ | 53 | /* disable IRQs while bitbanging */ |
54 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); | 54 | int old_irq_level = set_irq_level(HIGHEST_IRQ_LEVEL); |
@@ -57,12 +57,12 @@ void __backlight_set_brightness(int val) | |||
57 | set_irq_level(old_irq_level); | 57 | set_irq_level(old_irq_level); |
58 | } | 58 | } |
59 | 59 | ||
60 | void __remote_backlight_on(void) | 60 | void _remote_backlight_on(void) |
61 | { | 61 | { |
62 | and_l(~0x00000002, &GPIO1_OUT); | 62 | and_l(~0x00000002, &GPIO1_OUT); |
63 | } | 63 | } |
64 | 64 | ||
65 | void __remote_backlight_off(void) | 65 | void _remote_backlight_off(void) |
66 | { | 66 | { |
67 | or_l(0x00000002, &GPIO1_OUT); | 67 | or_l(0x00000002, &GPIO1_OUT); |
68 | } | 68 | } |
diff --git a/firmware/target/coldfire/iriver/backlight-target.h b/firmware/target/coldfire/iriver/h300/backlight-target.h index 30a57e4fbc..f0e1147304 100644 --- a/firmware/target/coldfire/iriver/backlight-target.h +++ b/firmware/target/coldfire/iriver/h300/backlight-target.h | |||
@@ -19,13 +19,11 @@ | |||
19 | #ifndef BACKLIGHT_TARGET_H | 19 | #ifndef BACKLIGHT_TARGET_H |
20 | #define BACKLIGHT_TARGET_H | 20 | #define BACKLIGHT_TARGET_H |
21 | 21 | ||
22 | bool __backlight_init(void); /* Returns backlight current state (true=ON). */ | 22 | bool _backlight_init(void); /* Returns backlight current state (true=ON). */ |
23 | void __backlight_on(void); | 23 | void _backlight_on(void); |
24 | void __backlight_off(void); | 24 | void _backlight_off(void); |
25 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 25 | void _backlight_set_brightness(int val); |
26 | void __backlight_set_brightness(int val); | 26 | void _remote_backlight_on(void); |
27 | #endif | 27 | void _remote_backlight_off(void); |
28 | void __remote_backlight_on(void); | ||
29 | void __remote_backlight_off(void); | ||
30 | 28 | ||
31 | #endif | 29 | #endif |