summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/imx233/creative-zen/backlight-zen.c16
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
31void backlight_hw_brightness(int level) 32void 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