backlight: LOCOMO Backlight Driver updates
Subsystems (3)
PATCH 1/1 backlight: LOCOMO Backlight Driver updates
From: Richard Purdie <[email protected]>
Add backlight intensity control to the LOCOMO lcd/backlight driver using the backlight class and add basic power management support.
This is a reimplementation and improvement of patches by John Lenz and Pavel Machek
Signed-off-by Richard Purdie <[email protected]>
Signed-off-by Antonino Daplas <[email protected]>
---
arch/arm/common/locomo.c | 45 +++++++------ drivers/video/backlight/Kconfig | 8 ++ drivers/video/backlight/Makefile | 2 - drivers/video/backlight/locomolcd.c | 123 ++++++++++++++++++++++++++++++----- include/asm-arm/hardware/locomo.h | 5 + 5 files changed, 146 insertions(+), 37 deletions(-)
arch/arm/common/locomo.c +25 -20
@@ -629,21 +629,6 @@ static int locomo_resume(struct platform#endif -#define LCM_ALC_EN 0x8000 - -void frontlight_set (struct locomo *lchip,int duty,int vr,int bpwf) -{ -unsigned long flags; - -spin_lock_irqsave (&lchip->lock, flags); -locomo_writel (bpwf, lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALS ); -udelay (100 ); -locomo_writel (duty, lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALD ); -locomo_writel (bpwf |LCM_ALC_EN , lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALS ); -spin_unlock_irqrestore (&lchip->lock, flags); -} - -/** * locomo_probe - probe for a single LoCoMo chip. * @phys_addr: physical address of device.
@@ -698,14 +683,10 @@ __locomo_probe(struct device *me, struct , lchip->base + LOCOMO_GPD);locomo_writel (0 , lchip->base +LOCOMO_GIE ); -/* FrontLight */ +/* Frontlight */ locomo_writel (0 , lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALS );locomo_writel (0 , lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALD ); -/* Same constants can be used for collie and poodle -(depending on CONFIG options in original sharp code)? */ -frontlight_set (lchip,163 ,0 ,148 ); -/* Longtime timer */ locomo_writel (0 , lchip->base +LOCOMO_LTINT );/* SPI */
@@ -1063,6 +1044,30 @@ void locomo_m62332_senddata(struct locom }/* +* Frontlight control +*/ + +static struct locomo *locomo_chip_driver (struct locomo_dev *ldev); + +void locomo_frontlight_set (struct locomo_dev *dev,int duty,int vr,int bpwf) +{ +unsigned long flags; +struct locomo *lchip =locomo_chip_driver (dev); + +if (vr) +locomo_gpio_write (dev,LOCOMO_GPIO_FL_VR ,1 ); +else +locomo_gpio_write (dev,LOCOMO_GPIO_FL_VR ,0 ); + +spin_lock_irqsave (&lchip->lock, flags); +locomo_writel (bpwf, lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALS ); +udelay (100 ); +locomo_writel (duty, lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALD ); +locomo_writel (bpwf |LOCOMO_ALC_EN , lchip->base +LOCOMO_FRONTLIGHT +LOCOMO_ALS ); +spin_unlock_irqrestore (&lchip->lock, flags); +} + +/* * LoCoMo "Register Access Bus." * * We model this as a regular bus type, and hang devices directly
drivers/video/backlight/Kconfig +8 -0
@@ -50,6 +50,14 @@ config BACKLIGHT_CORGI If you have a Sharp Zaurus SL-C7xx, SL-Cxx00 or SL-6000x say y to enable the backlight driver. +config BACKLIGHT_LOCOMO + tristate "Sharp LOCOMO LCD/Backlight Driver" + depends on BACKLIGHT_DEVICE && SHARP_LOCOMO + default y + help + If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y to + enable the LCD/backlight driver. + config BACKLIGHT_HP680 tristate "HP Jornada 680 Backlight Driver" depends on BACKLIGHT_DEVICE && SH_HP6XX
drivers/video/backlight/Makefile +1 -1
@@ -4,4 +4,4 @@ obj-$(CONFIG_LCD_CLASS_DEVICE) += lc obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o -obj-$(CONFIG_SHARP_LOCOMO) += locomolcd.o +obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o
drivers/video/backlight/locomolcd.c +107 -16
177 lines not on this page · raw message
include/asm-arm/hardware/locomo.h +5 -0
@@ -111,6 +111,8 @@#define LOCOMO_ALS 0x00/* Adjust light cycle */ #define LOCOMO_ALD 0x04/* Adjust light duty */ +#define LOCOMO_ALC_EN 0x8000 +/* Backlight controller: TFT signal */ #define LOCOMO_BACKLIGHT 0x38#define LOCOMO_TC 0x00/* TFT control signal */
@@ -203,4 +205,7 @@ void locomo_gpio_write(struct locomo_dev/* M62332 control function */ void locomo_m62332_senddata (struct locomo_dev *ldev,unsigned int dac_data,int channel); +/* Frontlight control */ +void locomo_frontlight_set (struct locomo_dev *dev,int duty,int vr,int bpwf); +#endif
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642