aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/lcd.h
diff options
context:
space:
mode:
authorInKi Dae <inki.dae@samsung.com>2010-05-24 12:21:36 -0700
committerRichard Purdie <rpurdie@linux.intel.com>2010-05-26 17:34:16 +0100
commitee378a5c6550dcbfe6fa9c71b84ca2eb19cb288e (patch)
treeac844a7051dfd5be701e10de09cc576390513802 /include/linux/lcd.h
parentbacklight: adp8860: add support for ADP8861 & ADP8863 (diff)
downloadlinux-dev-ee378a5c6550dcbfe6fa9c71b84ca2eb19cb288e.tar.xz
linux-dev-ee378a5c6550dcbfe6fa9c71b84ca2eb19cb288e.zip
backlight: add S6E63M0 AMOLED LCD Panel driver
This is S6E63M0 AMOLED LCD Panel(480x800) driver using 3-wired SPI interface also almost features for lcd panel driver has been implemented in here. and I added new structure common for all the lcd panel drivers to include/linux/lcd.h file. LCD Panel driver needs interfaces for controlling device power such as power on/off and reset. these interfaces are device specific so it should be implemented to machine code at this time, we should create new structure for registering these functions as callbacks and also a header file for that structure and finally registered callback functions would be called by lcd panel driver. such header file(including new structure for lcd panel) would be added for all the lcd panel drivers. If anyone provides common structure for registering such callback functions then we could reduce unnecessary header files for lcd panel. I thought that suitable anyone could be include/linux/lcd.h so a new lcd_platform_data structure was added there. [akpm@linux-foundation.org: coding-style fixes] [randy.dunlap@oracle.com: fix s6e63m0 kconfig] [randy.dunlap@oracle.com: fix device attribute functions return types] Signed-off-by: InKi Dae <inki.dae@samsung.com> Reviewed-by: KyungMin Park <kyungmin.park.samsung.com> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'include/linux/lcd.h')
-rw-r--r--include/linux/lcd.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/lcd.h b/include/linux/lcd.h
index c67fecafff90..8877123f2d6e 100644
--- a/include/linux/lcd.h
+++ b/include/linux/lcd.h
@@ -69,6 +69,29 @@ struct lcd_device {
struct device dev;
};
+struct lcd_platform_data {
+ /* reset lcd panel device. */
+ int (*reset)(struct lcd_device *ld);
+ /* on or off to lcd panel. if 'enable' is 0 then
+ lcd power off and 1, lcd power on. */
+ int (*power_on)(struct lcd_device *ld, int enable);
+
+ /* it indicates whether lcd panel was enabled
+ from bootloader or not. */
+ int lcd_enabled;
+ /* it means delay for stable time when it becomes low to high
+ or high to low that is dependent on whether reset gpio is
+ low active or high active. */
+ unsigned int reset_delay;
+ /* stable time needing to become lcd power on. */
+ unsigned int power_on_delay;
+ /* stable time needing to become lcd power off. */
+ unsigned int power_off_delay;
+
+ /* it could be used for any purpose. */
+ void *pdata;
+};
+
static inline void lcd_set_power(struct lcd_device *ld, int power)
{
mutex_lock(&ld->update_lock);