summaryrefslogtreecommitdiff
path: root/include/video
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2008-02-06 01:39:26 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-06 10:41:16 -0800
commita9a84c37d1ee50db8f3752b117caf2b48dcd4f8a (patch)
treeadac878234cbe372624c5d33e7d70322972392d7 /include/video
parentb1230ee50a9903a987feaad767fb71e2fd173894 (diff)
downloadkernel-common-a9a84c37d1ee50db8f3752b117caf2b48dcd4f8a.tar.gz
kernel-common-a9a84c37d1ee50db8f3752b117caf2b48dcd4f8a.tar.bz2
kernel-common-a9a84c37d1ee50db8f3752b117caf2b48dcd4f8a.zip
atmel_lcdfb: backlight control
On the sam9 EK boards, the LCD backlight is hooked up to a PWM output from the LCD controller. It's controlled by "contrast" registers though. This patch lets boards declare that they have that kind of backlight control. The driver can then export this control, letting screenblank and other operations actually take effect ... reducing the typically substantial power drain from the backlight. Note that it's not fully cooked - doesn't force backlight off during system suspend - the "power" and "blank" events may not be done right This should be easily added in the future. [nicolas.ferre@atmel.com: remove unneeded inline and rename functions] Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Andrew Victor <linux@maxim.org.za> Cc: Russell King <rmk@arm.linux.org.uk> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/atmel_lcdc.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
index 76095e70935b..336c20db87f8 100644
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
@@ -22,7 +22,7 @@
#ifndef __ATMEL_LCDC_H__
#define __ATMEL_LCDC_H__
- /* LCD Controller info data structure */
+ /* LCD Controller info data structure, stored in device platform_data */
struct atmel_lcdfb_info {
spinlock_t lock;
struct fb_info *info;
@@ -33,7 +33,14 @@ struct atmel_lcdfb_info {
struct platform_device *pdev;
struct clk *bus_clk;
struct clk *lcdc_clk;
- unsigned int default_bpp;
+
+#ifdef CONFIG_BACKLIGHT_ATMEL_LCDC
+ struct backlight_device *backlight;
+ u8 bl_power;
+#endif
+ bool lcdcon_is_backlight;
+
+ u8 default_bpp;
unsigned int default_lcdcon2;
unsigned int default_dmacon;
void (*atmel_lcdfb_power_control)(int on);