diff options
Diffstat (limited to 'firmware/target/arm/imx233/creative-zen/backlight-zen.c')
-rw-r--r-- | firmware/target/arm/imx233/creative-zen/backlight-zen.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/firmware/target/arm/imx233/creative-zen/backlight-zen.c b/firmware/target/arm/imx233/creative-zen/backlight-zen.c index ef2ab615a5..7d99092e2f 100644 --- a/firmware/target/arm/imx233/creative-zen/backlight-zen.c +++ b/firmware/target/arm/imx233/creative-zen/backlight-zen.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include "uartdbg-imx233.h" | 27 | #include "uartdbg-imx233.h" |
28 | #include "pinctrl-imx233.h" | 28 | #include "pinctrl-imx233.h" |
29 | #include "pwm-imx233.h" | 29 | #include "pwm-imx233.h" |
30 | #include "kernel.h" | ||
30 | 31 | ||
31 | void backlight_hw_brightness(int level) | 32 | void backlight_hw_brightness(int level) |
32 | { | 33 | { |
@@ -37,15 +38,9 @@ void backlight_hw_brightness(int level) | |||
37 | lcd_set_contrast(level); | 38 | lcd_set_contrast(level); |
38 | #else | 39 | #else |
39 | unsigned val = (level + 200) * level / 1000; | 40 | unsigned val = (level + 200) * level / 1000; |
40 | if(level != 0) | 41 | for(unsigned mask = 0x10; mask; mask >>= 1) |
41 | { | 42 | imx233_uartdbg_send((val & mask) ? 0xff : 0xf8); |
42 | for(unsigned mask = 0x10; mask; mask >>= 1) | 43 | imx233_uartdbg_send(0); |
43 | imx233_uartdbg_send((val & mask) ? 0xff : 0xf8); | ||
44 | imx233_uartdbg_send(0); | ||
45 | imx233_pinctrl_set_gpio(1, 12, true); | ||
46 | } | ||
47 | else | ||
48 | imx233_pinctrl_set_gpio(1, 12, false); | ||
49 | #endif | 44 | #endif |
50 | } | 45 | } |
51 | 46 | ||
@@ -64,7 +59,9 @@ void backlight_hw_on(void) | |||
64 | { | 59 | { |
65 | #ifdef HAVE_LCD_ENABLE | 60 | #ifdef HAVE_LCD_ENABLE |
66 | lcd_enable(true); /* power on lcd + visible display */ | 61 | lcd_enable(true); /* power on lcd + visible display */ |
62 | sleep(HZ / 10); /* make sure screen is not white anymore */ | ||
67 | #endif | 63 | #endif |
64 | imx233_pinctrl_set_gpio(1, 12, true); | ||
68 | /* restore the previous backlight level */ | 65 | /* restore the previous backlight level */ |
69 | backlight_hw_brightness(backlight_brightness); | 66 | backlight_hw_brightness(backlight_brightness); |
70 | } | 67 | } |
@@ -73,6 +70,7 @@ void backlight_hw_off(void) | |||
73 | { | 70 | { |
74 | /* there is no real on/off but we can set to 0 brightness */ | 71 | /* there is no real on/off but we can set to 0 brightness */ |
75 | backlight_hw_brightness(0); | 72 | backlight_hw_brightness(0); |
73 | imx233_pinctrl_set_gpio(1, 12, false); | ||
76 | #ifdef HAVE_LCD_ENABLE | 74 | #ifdef HAVE_LCD_ENABLE |
77 | lcd_enable(false); /* power off visible display */ | 75 | lcd_enable(false); /* power off visible display */ |
78 | #endif | 76 | #endif |