RE: [PATCH] OMAP: LCD LS037V7DW01: Add Backlight driver support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Tomi Valkeinen [mailto:tomi.valkeinen@xxxxxxxxx]
> Sent: Thursday, April 01, 2010 5:30 PM
> To: Hiremath, Vaibhav
> Cc: linux-omap@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] OMAP: LCD LS037V7DW01: Add Backlight driver support
> 
> Hi,
> 
> Two comments below
> 
> On Mon, 2010-03-22 at 14:11 +0100, ext hvaibhav@xxxxxx wrote:
> > From: Vaibhav Hiremath <hvaibhav@xxxxxx>
> >
> > Tested on OMAP3EVM for OMAP3530 and AM/DM 3730.
> >
> > Signed-off-by: Vaibhav Hiremath <hvaibhav@xxxxxx>
> > ---
> >  arch/arm/mach-omap2/board-omap3evm.c               |   32 ++++++++
> >  .../video/omap2/displays/panel-sharp-ls037v7dw01.c |   75
> ++++++++++++++++++++
> >  2 files changed, 107 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-
> omap2/board-omap3evm.c
> > index f2a52c3..ad74340 100644
> > --- a/arch/arm/mach-omap2/board-omap3evm.c
> > +++ b/arch/arm/mach-omap2/board-omap3evm.c
> > @@ -253,6 +253,36 @@ static void omap3_evm_disable_lcd(struct
> omap_dss_device *dssdev)
> >  	lcd_enabled = 0;
> >  }
> >
> > +/*
> > + * PWMA/B register offsets (TWL4030_MODULE_PWMA)
> > + */
> > +#define TWL_LED_EN	0x0
> > +#define TWL_LED_PWMON	0x0
> > +#define TWL_LED_PWMOFF	0x1
> > +
> > +static void omap3evm_set_bl_intensity(struct omap_dss_device *dssdev, int
> level)
> > +{
> > +	unsigned char c;
> > +
> > +	if (level > 100)
> > +		return;
> > +	/*
> > +	 * Enable LEDA for backlight
> > +	 */
> > +	twl_i2c_write_u8(TWL4030_MODULE_LED, 0x11, TWL_LED_EN);
> > +
> > +	c = ((125 * (100 - level)) / 100);
> > +	if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) {
> > +		c += 1;
> > +		twl_i2c_write_u8(TWL4030_MODULE_PWMA, 0x7F, TWL_LED_PWMOFF);
> > +		twl_i2c_write_u8(TWL4030_MODULE_PWMA, c, TWL_LED_PWMON);
> > +	} else {
> > +		c += 2;
> > +		twl_i2c_write_u8(TWL4030_MODULE_PWMA, 0x1, TWL_LED_PWMON);
> > +		twl_i2c_write_u8(TWL4030_MODULE_PWMA, c, TWL_LED_PWMOFF);
> > +	}
> > +}
> > +
> >  static struct omap_dss_device omap3_evm_lcd_device = {
> >  	.name			= "lcd",
> >  	.driver_name		= "sharp_ls_panel",
> > @@ -260,6 +290,8 @@ static struct omap_dss_device omap3_evm_lcd_device = {
> >  	.phy.dpi.data_lines	= 18,
> >  	.platform_enable	= omap3_evm_enable_lcd,
> >  	.platform_disable	= omap3_evm_disable_lcd,
> > +	.max_backlight_level	= 100,
> > +	.set_backlight		= omap3evm_set_bl_intensity,
> >  };
> >
> >  static int omap3_evm_enable_tv(struct omap_dss_device *dssdev)
> > diff --git a/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
> b/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
> > index 8d51a5e..d4fcd69 100644
> > --- a/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
> > +++ b/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
> > @@ -20,10 +20,16 @@
> >  #include <linux/module.h>
> >  #include <linux/delay.h>
> >  #include <linux/device.h>
> > +#include <linux/backlight.h>
> > +#include <linux/fb.h>
> >  #include <linux/err.h>
> >
> >  #include <plat/display.h>
> >
> > +struct sharp_data {
> > +	struct backlight_device *bl;
> > +};
> > +
> >  static struct omap_video_timings sharp_ls_timings = {
> >  	.x_res = 480,
> >  	.y_res = 640,
> > @@ -39,18 +45,87 @@ static struct omap_video_timings sharp_ls_timings = {
> >  	.vbp		= 1,
> >  };
> >
> > +static int sharp_ls_bl_update_status(struct backlight_device *bl)
> > +{
> > +	struct omap_dss_device *dssdev = dev_get_drvdata(&bl->dev);
> > +	int level;
> > +
> > +	if (!dssdev->set_backlight)
> > +		return -EINVAL;
> > +
> > +	if (bl->props.fb_blank == FB_BLANK_UNBLANK &&
> > +			bl->props.power == FB_BLANK_UNBLANK)
> > +		level = bl->props.brightness;
> > +	else
> > +		level = 0;
> > +
> > +	return dssdev->set_backlight(dssdev, level);
> 
> I think you should check if dssdev->set_backlight is NULL. Some boards
> may not have set_backlight.
> 
> Also, you could divide this to board file patch and panel patch. That
> way I can queue up the panel patch, and the board patch may go through
> Tony.
[Hiremath, Vaibhav] Thanks and I will submit reworked patch soon.

Thanks,
Vaibhav

> 
>  Tomi
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux