linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel
@ 2010-11-30 12:07 Bryan Wu
  2010-11-30 12:07 ` [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine Bryan Wu
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Bryan Wu @ 2010-11-30 12:07 UTC (permalink / raw)
  To: linux-arm-kernel

After instroducing generic DPI panel driver for OMAP DSS2 system, we need to
split out backlight driver from Sharp LS037V7DW01 panel driver before we move
to the generic DPI panel driver.

This patchset introcuded backlight driver and cleanup the old Sharp LS037V7DW01
panel driver related code.

It's built on mainline 2.6.37-rc4

Bryan Wu (3):
  Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
  OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver
  OMAP: DSS2: remove Sharp LS037V7DW01 panel driver

 arch/arm/mach-omap2/board-3430sdp.c                |   18 ++-
 arch/arm/mach-omap2/board-omap3evm.c               |   20 ++-
 drivers/video/backlight/Kconfig                    |   10 +
 drivers/video/backlight/Makefile                   |    1 +
 drivers/video/backlight/sharp_ls037v7dw01.c        |  144 ++++++++++++
 drivers/video/omap2/displays/Kconfig               |    7 -
 drivers/video/omap2/displays/Makefile              |    1 -
 .../video/omap2/displays/panel-sharp-ls037v7dw01.c |  232 --------------------
 8 files changed, 187 insertions(+), 246 deletions(-)
 create mode 100644 drivers/video/backlight/sharp_ls037v7dw01.c
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
  2010-11-30 12:07 [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Bryan Wu
@ 2010-11-30 12:07 ` Bryan Wu
  2010-11-30 13:09   ` Janorkar, Mayuresh
  2010-11-30 12:07 ` [PATCH 2/3] OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver Bryan Wu
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Bryan Wu @ 2010-11-30 12:07 UTC (permalink / raw)
  To: linux-arm-kernel

This driver is split from drivers/video/backlight/sharp_ls037v7dw01.c

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/backlight/Kconfig             |   10 ++
 drivers/video/backlight/Makefile            |    1 +
 drivers/video/backlight/sharp_ls037v7dw01.c |  144 +++++++++++++++++++++++++++
 3 files changed, 155 insertions(+), 0 deletions(-)
 create mode 100644 drivers/video/backlight/sharp_ls037v7dw01.c

diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index e54a337..46b2415 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -307,6 +307,16 @@ config BACKLIGHT_PCF50633
 	  If you have a backlight driven by a NXP PCF50633 MFD, say Y here to
 	  enable its driver.
 
+config BACKLIGHT_SHARP_LS037V7DW01
+	tristate "Backlight driver for SHARP LS037V7DW01 Panel"
+	depends on PANEL_GENERIC_DPI
+	help
+	  If you are using Sharp LS037V7DW01 LCD panel, say Y here to enable this driver.
+
+	  To compile this driver as a module, choose M here: the module will
+	  be called sharp_ls037v7dw01.
+
+
 endif # BACKLIGHT_CLASS_DEVICE
 
 endif # BACKLIGHT_LCD_SUPPORT
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index 44c0f81..c756f49 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -35,4 +35,5 @@ obj-$(CONFIG_BACKLIGHT_ADP5520)	+= adp5520_bl.o
 obj-$(CONFIG_BACKLIGHT_ADP8860)	+= adp8860_bl.o
 obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
 obj-$(CONFIG_BACKLIGHT_PCF50633)	+= pcf50633-backlight.o
+obj-$(CONFIG_BACKLIGHT_SHARP_LS037V7DW01)	+= sharp_ls037v7dw01.o
 
diff --git a/drivers/video/backlight/sharp_ls037v7dw01.c b/drivers/video/backlight/sharp_ls037v7dw01.c
new file mode 100644
index 0000000..e90595e
--- /dev/null
+++ b/drivers/video/backlight/sharp_ls037v7dw01.c
@@ -0,0 +1,144 @@
+/*
+ * Backlight driver for Sharp LS037V7DW01
+ *
+ * Copyright (C) 2010 Canonical Ltd.
+ * Author: Bryan Wu <bryan.wu@canonical.com>
+ *
+ * Copyright (C) 2008 Nokia Corporation
+ * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/backlight.h>
+#include <linux/fb.h>
+#include <linux/err.h>
+
+/* This OMAP platform header file is required by this driver */
+#include <plat/display.h>
+
+static int sharp_ls_bl_update_status(struct backlight_device *bl)
+{
+	struct omap_dss_device *dssdev = bl_get_data(bl);
+	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);
+}
+
+static int sharp_ls_bl_get_brightness(struct backlight_device *bl)
+{
+	if (bl->props.fb_blank == FB_BLANK_UNBLANK &&
+			bl->props.power == FB_BLANK_UNBLANK)
+		return bl->props.brightness;
+
+	return 0;
+}
+
+static const struct backlight_ops sharp_ls_bl_ops = {
+	.get_brightness = sharp_ls_bl_get_brightness,
+	.update_status  = sharp_ls_bl_update_status,
+};
+
+static int __devinit sharp_ls_bl_probe(struct platform_device *pdev)
+{
+	struct backlight_properties props;
+	struct backlight_device *bl;
+	struct omap_dss_device *dssdev = pdev->dev.platform_data;
+
+	if (!dssdev)
+		return -EINVAL;
+
+	memset(&props, 0, sizeof(struct backlight_properties));
+	props.max_brightness = dssdev->max_backlight_level;
+
+	bl = backlight_device_register("sharp-ls-bl", &dssdev->dev, dssdev,
+			&sharp_ls_bl_ops, &props);
+	if (IS_ERR(bl))
+		return PTR_ERR(bl);
+
+	bl->props.fb_blank = FB_BLANK_UNBLANK;
+	bl->props.power = FB_BLANK_UNBLANK;
+	bl->props.brightness = dssdev->max_backlight_level;
+	backlight_update_status(bl);
+
+	platform_set_drvdata(pdev, bl);
+	return 0;
+}
+
+static int __devexit sharp_ls_bl_remove(struct platform_device *pdev)
+{
+	struct backlight_device *bl = platform_get_drvdata(pdev);
+
+	bl->props.power = FB_BLANK_POWERDOWN;
+	backlight_update_status(bl);
+	backlight_device_unregister(bl);
+
+	return 0;
+}
+
+#ifdef CONFIG_PM
+static int sharp_ls_bl_suspend(struct platform_device *dev, pm_message_t state)
+{
+	return 0;
+}
+
+static int sharp_ls_bl_resume(struct platform_device *dev)
+{
+	struct backlight_device *bl = platform_get_drvdata(dev);
+
+	backlight_update_status(bl);
+	return 0;
+}
+#else
+#define sharp_ls_bl_suspend	NULL
+#define sharp_ls_bl_resume	NULL
+#endif
+
+static struct platform_driver sharp_ls_bl_driver = {
+	.driver		= {
+		.name	= "sharp-ls-bl",
+		.owner	= THIS_MODULE,
+	},
+	.probe		= sharp_ls_bl_probe,
+	.remove		= __devexit_p(sharp_ls_bl_remove),
+	.suspend	= sharp_ls_bl_suspend,
+	.resume		= sharp_ls_bl_resume,
+};
+
+static int __init sharp_ls_bl_init(void)
+{
+	return platform_driver_register(&sharp_ls_bl_driver);
+}
+module_init(sharp_ls_bl_init);
+
+static void __exit sharp_ls_bl_exit(void)
+{
+	platform_driver_unregister(&sharp_ls_bl_driver);
+}
+module_exit(sharp_ls_bl_exit);
+
+MODULE_DESCRIPTION("Sharp LS037V7DW01 Backlight Driver");
+MODULE_AUTHOR("Bryan Wu <bryan.wu@canonical.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:sharp-ls-bl");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver
  2010-11-30 12:07 [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Bryan Wu
  2010-11-30 12:07 ` [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine Bryan Wu
@ 2010-11-30 12:07 ` Bryan Wu
  2010-11-30 12:07 ` [PATCH 3/3] OMAP: DSS2: remove Sharp LS037V7DW01 panel driver Bryan Wu
  2010-12-01 15:32 ` [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Tomi Valkeinen
  3 siblings, 0 replies; 9+ messages in thread
From: Bryan Wu @ 2010-11-30 12:07 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 arch/arm/mach-omap2/board-3430sdp.c  |   18 +++++++++++++++---
 arch/arm/mach-omap2/board-omap3evm.c |   20 +++++++++++++++++---
 2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 1ca0156..4c7eaf0 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -261,14 +261,25 @@ static void sdp3430_panel_disable_tv(struct omap_dss_device *dssdev)
 {
 }
 
+static struct panel_generic_dpi_data lcd_panel = {
+	.name			= "sharp_ls",
+	.platform_enable	= sdp3430_panel_enable_lcd,
+	.platform_disable	= sdp3430_panel_disable_lcd,
+};
 
 static struct omap_dss_device sdp3430_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "sharp_ls_panel",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
+	.driver_name		= "generic_dpi_panel",
+	.data			= &lcd_panel,
 	.phy.dpi.data_lines	= 16,
-	.platform_enable	= sdp3430_panel_enable_lcd,
-	.platform_disable	= sdp3430_panel_disable_lcd,
+};
+
+static struct platform_device sdp3430_lcd_backlight_device = {
+	.name		= "sharp-ls-bl",
+	.dev		= {
+		.platform_data = &sdp3430_lcd_device,
+	},
 };
 
 static struct panel_generic_dpi_data dvi_panel = {
@@ -322,6 +333,7 @@ static struct regulator_consumer_supply sdp3430_vdda_dac_supply = {
 
 static struct platform_device *sdp3430_devices[] __initdata = {
 	&sdp3430_dss_device,
+	&sdp3430_lcd_backlight_device,
 };
 
 static struct omap_board_config_kernel sdp3430_config[] __initdata = {
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 369cbdc..4c507de 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -255,15 +255,28 @@ static void omap3_evm_disable_lcd(struct omap_dss_device *dssdev)
 	lcd_enabled = 0;
 }
 
+static struct panel_generic_dpi_data lcd_panel = {
+	.name			= "sharp_ls",
+	.platform_enable	= omap3_evm_enable_lcd,
+	.platform_disable	= omap3_evm_disable_lcd,
+};
+
 static struct omap_dss_device omap3_evm_lcd_device = {
 	.name			= "lcd",
-	.driver_name		= "sharp_ls_panel",
 	.type			= OMAP_DISPLAY_TYPE_DPI,
+	.driver_name		= "generic_dpi_panel",
+	.data			= &lcd_panel,
 	.phy.dpi.data_lines	= 18,
-	.platform_enable	= omap3_evm_enable_lcd,
-	.platform_disable	= omap3_evm_disable_lcd,
 };
 
+static struct platform_device omap3_evm_lcd_backlight_device = {
+	.name		= "sharp-ls-bl",
+	.dev		= {
+		.platform_data = &omap3_evm_lcd_device,
+	},
+};
+
+
 static int omap3_evm_enable_tv(struct omap_dss_device *dssdev)
 {
 	return 0;
@@ -636,6 +649,7 @@ static void __init omap3_evm_init_irq(void)
 
 static struct platform_device *omap3_evm_devices[] __initdata = {
 	&omap3_evm_dss_device,
+	&omap3_evm_lcd_backlight_device,
 };
 
 static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] OMAP: DSS2: remove Sharp LS037V7DW01 panel driver
  2010-11-30 12:07 [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Bryan Wu
  2010-11-30 12:07 ` [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine Bryan Wu
  2010-11-30 12:07 ` [PATCH 2/3] OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver Bryan Wu
@ 2010-11-30 12:07 ` Bryan Wu
  2010-12-01 15:32 ` [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Tomi Valkeinen
  3 siblings, 0 replies; 9+ messages in thread
From: Bryan Wu @ 2010-11-30 12:07 UTC (permalink / raw)
  To: linux-arm-kernel

panel-generic-dpi.c and backlight driver sharp-ls037v7dw01.c are the replacement.

Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
---
 drivers/video/omap2/displays/Kconfig               |    7 -
 drivers/video/omap2/displays/Makefile              |    1 -
 .../video/omap2/displays/panel-sharp-ls037v7dw01.c |  232 --------------------
 3 files changed, 0 insertions(+), 240 deletions(-)
 delete mode 100644 drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c

diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
index 9c09afd..304d214 100644
--- a/drivers/video/omap2/displays/Kconfig
+++ b/drivers/video/omap2/displays/Kconfig
@@ -9,13 +9,6 @@ config PANEL_GENERIC_DPI
 	  Supports LCD Panel used in TI SDP3430 and EVM boards,
 	  OMAP3517 EVM boards and CM-T35.
 
-config PANEL_SHARP_LS037V7DW01
-        tristate "Sharp LS037V7DW01 LCD Panel"
-        depends on OMAP2_DSS
-        select BACKLIGHT_CLASS_DEVICE
-        help
-          LCD Panel used in TI's SDP3430 and EVM boards
-
 config PANEL_TAAL
         tristate "Taal DSI Panel"
         depends on OMAP2_DSS_DSI
diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
index 3bebe4d..450965b 100644
--- a/drivers/video/omap2/displays/Makefile
+++ b/drivers/video/omap2/displays/Makefile
@@ -1,5 +1,4 @@
 obj-$(CONFIG_PANEL_GENERIC_DPI) += panel-generic-dpi.o
-obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
 
 obj-$(CONFIG_PANEL_TAAL) += panel-taal.o
 obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
diff --git a/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c b/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
deleted file mode 100644
index 9a138f6..0000000
--- a/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * LCD panel driver for Sharp LS037V7DW01
- *
- * Copyright (C) 2008 Nokia Corporation
- * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#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 <linux/slab.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,
-
-	.pixel_clock	= 19200,
-
-	.hsw		= 2,
-	.hfp		= 1,
-	.hbp		= 28,
-
-	.vsw		= 1,
-	.vfp		= 1,
-	.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);
-}
-
-static int sharp_ls_bl_get_brightness(struct backlight_device *bl)
-{
-	if (bl->props.fb_blank == FB_BLANK_UNBLANK &&
-			bl->props.power == FB_BLANK_UNBLANK)
-		return bl->props.brightness;
-
-	return 0;
-}
-
-static const struct backlight_ops sharp_ls_bl_ops = {
-	.get_brightness = sharp_ls_bl_get_brightness,
-	.update_status  = sharp_ls_bl_update_status,
-};
-
-
-
-static int sharp_ls_panel_probe(struct omap_dss_device *dssdev)
-{
-	struct backlight_properties props;
-	struct backlight_device *bl;
-	struct sharp_data *sd;
-	int r;
-
-	dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
-		OMAP_DSS_LCD_IHS;
-	dssdev->panel.acb = 0x28;
-	dssdev->panel.timings = sharp_ls_timings;
-
-	sd = kzalloc(sizeof(*sd), GFP_KERNEL);
-	if (!sd)
-		return -ENOMEM;
-
-	dev_set_drvdata(&dssdev->dev, sd);
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.max_brightness = dssdev->max_backlight_level;
-
-	bl = backlight_device_register("sharp-ls", &dssdev->dev, dssdev,
-			&sharp_ls_bl_ops, &props);
-	if (IS_ERR(bl)) {
-		r = PTR_ERR(bl);
-		kfree(sd);
-		return r;
-	}
-	sd->bl = bl;
-
-	bl->props.fb_blank = FB_BLANK_UNBLANK;
-	bl->props.power = FB_BLANK_UNBLANK;
-	bl->props.brightness = dssdev->max_backlight_level;
-	r = sharp_ls_bl_update_status(bl);
-	if (r < 0)
-		dev_err(&dssdev->dev, "failed to set lcd brightness\n");
-
-	return 0;
-}
-
-static void sharp_ls_panel_remove(struct omap_dss_device *dssdev)
-{
-	struct sharp_data *sd = dev_get_drvdata(&dssdev->dev);
-	struct backlight_device *bl = sd->bl;
-
-	bl->props.power = FB_BLANK_POWERDOWN;
-	sharp_ls_bl_update_status(bl);
-	backlight_device_unregister(bl);
-
-	kfree(sd);
-}
-
-static int sharp_ls_power_on(struct omap_dss_device *dssdev)
-{
-	int r = 0;
-
-	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)
-		return 0;
-
-	r = omapdss_dpi_display_enable(dssdev);
-	if (r)
-		goto err0;
-
-	/* wait couple of vsyncs until enabling the LCD */
-	msleep(50);
-
-	if (dssdev->platform_enable) {
-		r = dssdev->platform_enable(dssdev);
-		if (r)
-			goto err1;
-	}
-
-	return 0;
-err1:
-	omapdss_dpi_display_disable(dssdev);
-err0:
-	return r;
-}
-
-static void sharp_ls_power_off(struct omap_dss_device *dssdev)
-{
-	if (dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
-		return;
-
-	if (dssdev->platform_disable)
-		dssdev->platform_disable(dssdev);
-
-	/* wait at least 5 vsyncs after disabling the LCD */
-
-	msleep(100);
-
-	omapdss_dpi_display_disable(dssdev);
-}
-
-static int sharp_ls_panel_enable(struct omap_dss_device *dssdev)
-{
-	int r;
-	r = sharp_ls_power_on(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-	return r;
-}
-
-static void sharp_ls_panel_disable(struct omap_dss_device *dssdev)
-{
-	sharp_ls_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
-}
-
-static int sharp_ls_panel_suspend(struct omap_dss_device *dssdev)
-{
-	sharp_ls_power_off(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_SUSPENDED;
-	return 0;
-}
-
-static int sharp_ls_panel_resume(struct omap_dss_device *dssdev)
-{
-	int r;
-	r = sharp_ls_power_on(dssdev);
-	dssdev->state = OMAP_DSS_DISPLAY_ACTIVE;
-	return r;
-}
-
-static struct omap_dss_driver sharp_ls_driver = {
-	.probe		= sharp_ls_panel_probe,
-	.remove		= sharp_ls_panel_remove,
-
-	.enable		= sharp_ls_panel_enable,
-	.disable	= sharp_ls_panel_disable,
-	.suspend	= sharp_ls_panel_suspend,
-	.resume		= sharp_ls_panel_resume,
-
-	.driver         = {
-		.name   = "sharp_ls_panel",
-		.owner  = THIS_MODULE,
-	},
-};
-
-static int __init sharp_ls_panel_drv_init(void)
-{
-	return omap_dss_register_driver(&sharp_ls_driver);
-}
-
-static void __exit sharp_ls_panel_drv_exit(void)
-{
-	omap_dss_unregister_driver(&sharp_ls_driver);
-}
-
-module_init(sharp_ls_panel_drv_init);
-module_exit(sharp_ls_panel_drv_exit);
-MODULE_LICENSE("GPL");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
  2010-11-30 12:07 ` [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine Bryan Wu
@ 2010-11-30 13:09   ` Janorkar, Mayuresh
  2010-12-01 14:21     ` Bryan Wu
  0 siblings, 1 reply; 9+ messages in thread
From: Janorkar, Mayuresh @ 2010-11-30 13:09 UTC (permalink / raw)
  To: linux-arm-kernel



> -----Original Message-----
> From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
> owner at vger.kernel.org] On Behalf Of Bryan Wu
> Sent: Tuesday, November 30, 2010 5:38 PM
> To: tomi.valkeinen at nokia.com; linux-omap at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; Gadiyar, Anand; rpurdie at rpsys.net
> Subject: [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP
> machine
> 
> This driver is split from drivers/video/backlight/sharp_ls037v7dw01.c
> 
> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
> ---
>  drivers/video/backlight/Kconfig             |   10 ++
>  drivers/video/backlight/Makefile            |    1 +
>  drivers/video/backlight/sharp_ls037v7dw01.c |  144
> +++++++++++++++++++++++++++
>  3 files changed, 155 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/video/backlight/sharp_ls037v7dw01.c
> 
> diff --git a/drivers/video/backlight/Kconfig
> b/drivers/video/backlight/Kconfig
> index e54a337..46b2415 100644
> --- a/drivers/video/backlight/Kconfig
> +++ b/drivers/video/backlight/Kconfig
> @@ -307,6 +307,16 @@ config BACKLIGHT_PCF50633
>  	  If you have a backlight driven by a NXP PCF50633 MFD, say Y here
> to
>  	  enable its driver.
> 
> +config BACKLIGHT_SHARP_LS037V7DW01
> +	tristate "Backlight driver for SHARP LS037V7DW01 Panel"
> +	depends on PANEL_GENERIC_DPI
> +	help
> +	  If you are using Sharp LS037V7DW01 LCD panel, say Y here to enable
> this driver.
> +
> +	  To compile this driver as a module, choose M here: the module will
> +	  be called sharp_ls037v7dw01.
> +
> +
[Mayuresh]: Please do not introduce extra new lines.
>  endif # BACKLIGHT_CLASS_DEVICE
> 
>  endif # BACKLIGHT_LCD_SUPPORT
> diff --git a/drivers/video/backlight/Makefile
> b/drivers/video/backlight/Makefile
> index 44c0f81..c756f49 100644
> --- a/drivers/video/backlight/Makefile
> +++ b/drivers/video/backlight/Makefile
> @@ -35,4 +35,5 @@ obj-$(CONFIG_BACKLIGHT_ADP5520)	+= adp5520_bl.o
>  obj-$(CONFIG_BACKLIGHT_ADP8860)	+= adp8860_bl.o
>  obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
>  obj-$(CONFIG_BACKLIGHT_PCF50633)	+= pcf50633-backlight.o
> +obj-$(CONFIG_BACKLIGHT_SHARP_LS037V7DW01)	+= sharp_ls037v7dw01.o
> 
> diff --git a/drivers/video/backlight/sharp_ls037v7dw01.c
> b/drivers/video/backlight/sharp_ls037v7dw01.c
> new file mode 100644
> index 0000000..e90595e
> --- /dev/null
> +++ b/drivers/video/backlight/sharp_ls037v7dw01.c
> @@ -0,0 +1,144 @@
> +/*
> + * Backlight driver for Sharp LS037V7DW01
> + *
> + * Copyright (C) 2010 Canonical Ltd.
> + * Author: Bryan Wu <bryan.wu@canonical.com>
> + *
> + * Copyright (C) 2008 Nokia Corporation
> + * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> it
> + * under the terms of the GNU General Public License version 2 as
> published by
> + * the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful, but
> WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
> for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License
> along with
> + * this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <linux/module.h>
> +#include <linux/device.h>
> +#include <linux/backlight.h>
> +#include <linux/fb.h>
> +#include <linux/err.h>
> +
> +/* This OMAP platform header file is required by this driver */
> +#include <plat/display.h>
> +
> +static int sharp_ls_bl_update_status(struct backlight_device *bl)
> +{
> +	struct omap_dss_device *dssdev = bl_get_data(bl);
> +	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);
> +}
> +
> +static int sharp_ls_bl_get_brightness(struct backlight_device *bl)
> +{
> +	if (bl->props.fb_blank == FB_BLANK_UNBLANK &&
> +			bl->props.power == FB_BLANK_UNBLANK)
> +		return bl->props.brightness;
> +
> +	return 0;
> +}
> +
> +static const struct backlight_ops sharp_ls_bl_ops = {
> +	.get_brightness = sharp_ls_bl_get_brightness,
> +	.update_status  = sharp_ls_bl_update_status,
> +};
> +
> +static int __devinit sharp_ls_bl_probe(struct platform_device *pdev)
> +{
> +	struct backlight_properties props;
> +	struct backlight_device *bl;
> +	struct omap_dss_device *dssdev = pdev->dev.platform_data;
> +
> +	if (!dssdev)
> +		return -EINVAL;
> +
> +	memset(&props, 0, sizeof(struct backlight_properties));
> +	props.max_brightness = dssdev->max_backlight_level;
> +
> +	bl = backlight_device_register("sharp-ls-bl", &dssdev->dev, dssdev,
> +			&sharp_ls_bl_ops, &props);
> +	if (IS_ERR(bl))
> +		return PTR_ERR(bl);
> +
> +	bl->props.fb_blank = FB_BLANK_UNBLANK;
> +	bl->props.power = FB_BLANK_UNBLANK;
> +	bl->props.brightness = dssdev->max_backlight_level;
> +	backlight_update_status(bl);
> +
> +	platform_set_drvdata(pdev, bl);
> +	return 0;
> +}
> +
> +static int __devexit sharp_ls_bl_remove(struct platform_device *pdev)
> +{
> +	struct backlight_device *bl = platform_get_drvdata(pdev);
> +
> +	bl->props.power = FB_BLANK_POWERDOWN;
> +	backlight_update_status(bl);
> +	backlight_device_unregister(bl);
> +
> +	return 0;
> +}
> +
> +#ifdef CONFIG_PM
> +static int sharp_ls_bl_suspend(struct platform_device *dev, pm_message_t
> state)
> +{
> +	return 0;
> +}
> +
> +static int sharp_ls_bl_resume(struct platform_device *dev)
> +{
> +	struct backlight_device *bl = platform_get_drvdata(dev);
> +
> +	backlight_update_status(bl);
> +	return 0;
> +}
> +#else
> +#define sharp_ls_bl_suspend	NULL
> +#define sharp_ls_bl_resume	NULL
> +#endif
> +
> +static struct platform_driver sharp_ls_bl_driver = {
> +	.driver		= {
> +		.name	= "sharp-ls-bl",
> +		.owner	= THIS_MODULE,
> +	},
> +	.probe		= sharp_ls_bl_probe,
> +	.remove		= __devexit_p(sharp_ls_bl_remove),
> +	.suspend	= sharp_ls_bl_suspend,
> +	.resume		= sharp_ls_bl_resume,
> +};
> +
> +static int __init sharp_ls_bl_init(void)
> +{
> +	return platform_driver_register(&sharp_ls_bl_driver);
> +}
> +module_init(sharp_ls_bl_init);
> +
> +static void __exit sharp_ls_bl_exit(void)
> +{
> +	platform_driver_unregister(&sharp_ls_bl_driver);
> +}
> +module_exit(sharp_ls_bl_exit);
> +
> +MODULE_DESCRIPTION("Sharp LS037V7DW01 Backlight Driver");
> +MODULE_AUTHOR("Bryan Wu <bryan.wu@canonical.com>");
> +MODULE_LICENSE("GPL");
> +MODULE_ALIAS("platform:sharp-ls-bl");
> --
> 1.7.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
  2010-11-30 13:09   ` Janorkar, Mayuresh
@ 2010-12-01 14:21     ` Bryan Wu
  0 siblings, 0 replies; 9+ messages in thread
From: Bryan Wu @ 2010-12-01 14:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Nov 30, 2010 at 9:09 PM, Janorkar, Mayuresh <mayur@ti.com> wrote:
>
>
>> -----Original Message-----
>> From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
>> owner at vger.kernel.org] On Behalf Of Bryan Wu
>> Sent: Tuesday, November 30, 2010 5:38 PM
>> To: tomi.valkeinen at nokia.com; linux-omap at vger.kernel.org; linux-arm-
>> kernel at lists.infradead.org; Gadiyar, Anand; rpurdie at rpsys.net
>> Subject: [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP
>> machine
>>
>> This driver is split from drivers/video/backlight/sharp_ls037v7dw01.c
>>
>> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
>> ---
>> ?drivers/video/backlight/Kconfig ? ? ? ? ? ? | ? 10 ++
>> ?drivers/video/backlight/Makefile ? ? ? ? ? ?| ? ?1 +
>> ?drivers/video/backlight/sharp_ls037v7dw01.c | ?144
>> +++++++++++++++++++++++++++
>> ?3 files changed, 155 insertions(+), 0 deletions(-)
>> ?create mode 100644 drivers/video/backlight/sharp_ls037v7dw01.c
>>
>> diff --git a/drivers/video/backlight/Kconfig
>> b/drivers/video/backlight/Kconfig
>> index e54a337..46b2415 100644
>> --- a/drivers/video/backlight/Kconfig
>> +++ b/drivers/video/backlight/Kconfig
>> @@ -307,6 +307,16 @@ config BACKLIGHT_PCF50633
>> ? ? ? ? If you have a backlight driven by a NXP PCF50633 MFD, say Y here
>> to
>> ? ? ? ? enable its driver.
>>
>> +config BACKLIGHT_SHARP_LS037V7DW01
>> + ? ? tristate "Backlight driver for SHARP LS037V7DW01 Panel"
>> + ? ? depends on PANEL_GENERIC_DPI
>> + ? ? help
>> + ? ? ? If you are using Sharp LS037V7DW01 LCD panel, say Y here to enable
>> this driver.
>> +
>> + ? ? ? To compile this driver as a module, choose M here: the module will
>> + ? ? ? be called sharp_ls037v7dw01.
>> +
>> +
> [Mayuresh]: Please do not introduce extra new lines.

No problem, I will remove this for next try.

>> ?endif # BACKLIGHT_CLASS_DEVICE
>>
>> ?endif # BACKLIGHT_LCD_SUPPORT
>> diff --git a/drivers/video/backlight/Makefile
>> b/drivers/video/backlight/Makefile
>> index 44c0f81..c756f49 100644
>> --- a/drivers/video/backlight/Makefile
>> +++ b/drivers/video/backlight/Makefile
>> @@ -35,4 +35,5 @@ obj-$(CONFIG_BACKLIGHT_ADP5520) ? ? += adp5520_bl.o
>> ?obj-$(CONFIG_BACKLIGHT_ADP8860) ? ? ?+= adp8860_bl.o
>> ?obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
>> ?obj-$(CONFIG_BACKLIGHT_PCF50633) ? ? += pcf50633-backlight.o
>> +obj-$(CONFIG_BACKLIGHT_SHARP_LS037V7DW01) ? ?+= sharp_ls037v7dw01.o
>>
>> diff --git a/drivers/video/backlight/sharp_ls037v7dw01.c
>> b/drivers/video/backlight/sharp_ls037v7dw01.c
>> new file mode 100644
>> index 0000000..e90595e
>> --- /dev/null
>> +++ b/drivers/video/backlight/sharp_ls037v7dw01.c
>> @@ -0,0 +1,144 @@
>> +/*
>> + * Backlight driver for Sharp LS037V7DW01
>> + *
>> + * Copyright (C) 2010 Canonical Ltd.
>> + * Author: Bryan Wu <bryan.wu@canonical.com>
>> + *
>> + * Copyright (C) 2008 Nokia Corporation
>> + * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> it
>> + * under the terms of the GNU General Public License version 2 as
>> published by
>> + * the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful, but
>> WITHOUT
>> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
>> + * FITNESS FOR A PARTICULAR PURPOSE. ?See the GNU General Public License
>> for
>> + * more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> along with
>> + * this program. ?If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#include <linux/module.h>
>> +#include <linux/device.h>
>> +#include <linux/backlight.h>
>> +#include <linux/fb.h>
>> +#include <linux/err.h>
>> +
>> +/* This OMAP platform header file is required by this driver */
>> +#include <plat/display.h>
>> +
>> +static int sharp_ls_bl_update_status(struct backlight_device *bl)
>> +{
>> + ? ? struct omap_dss_device *dssdev = bl_get_data(bl);
>> + ? ? 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);
>> +}
>> +
>> +static int sharp_ls_bl_get_brightness(struct backlight_device *bl)
>> +{
>> + ? ? if (bl->props.fb_blank == FB_BLANK_UNBLANK &&
>> + ? ? ? ? ? ? ? ? ? ? bl->props.power == FB_BLANK_UNBLANK)
>> + ? ? ? ? ? ? return bl->props.brightness;
>> +
>> + ? ? return 0;
>> +}
>> +
>> +static const struct backlight_ops sharp_ls_bl_ops = {
>> + ? ? .get_brightness = sharp_ls_bl_get_brightness,
>> + ? ? .update_status ?= sharp_ls_bl_update_status,
>> +};
>> +
>> +static int __devinit sharp_ls_bl_probe(struct platform_device *pdev)
>> +{
>> + ? ? struct backlight_properties props;
>> + ? ? struct backlight_device *bl;
>> + ? ? struct omap_dss_device *dssdev = pdev->dev.platform_data;
>> +
>> + ? ? if (!dssdev)
>> + ? ? ? ? ? ? return -EINVAL;
>> +
>> + ? ? memset(&props, 0, sizeof(struct backlight_properties));
>> + ? ? props.max_brightness = dssdev->max_backlight_level;
>> +
>> + ? ? bl = backlight_device_register("sharp-ls-bl", &dssdev->dev, dssdev,
>> + ? ? ? ? ? ? ? ? ? ? &sharp_ls_bl_ops, &props);
>> + ? ? if (IS_ERR(bl))
>> + ? ? ? ? ? ? return PTR_ERR(bl);
>> +
>> + ? ? bl->props.fb_blank = FB_BLANK_UNBLANK;
>> + ? ? bl->props.power = FB_BLANK_UNBLANK;
>> + ? ? bl->props.brightness = dssdev->max_backlight_level;
>> + ? ? backlight_update_status(bl);
>> +
>> + ? ? platform_set_drvdata(pdev, bl);
>> + ? ? return 0;
>> +}
>> +
>> +static int __devexit sharp_ls_bl_remove(struct platform_device *pdev)
>> +{
>> + ? ? struct backlight_device *bl = platform_get_drvdata(pdev);
>> +
>> + ? ? bl->props.power = FB_BLANK_POWERDOWN;
>> + ? ? backlight_update_status(bl);
>> + ? ? backlight_device_unregister(bl);
>> +
>> + ? ? return 0;
>> +}
>> +
>> +#ifdef CONFIG_PM
>> +static int sharp_ls_bl_suspend(struct platform_device *dev, pm_message_t
>> state)
>> +{
>> + ? ? return 0;
>> +}
>> +
>> +static int sharp_ls_bl_resume(struct platform_device *dev)
>> +{
>> + ? ? struct backlight_device *bl = platform_get_drvdata(dev);
>> +
>> + ? ? backlight_update_status(bl);
>> + ? ? return 0;
>> +}
>> +#else
>> +#define sharp_ls_bl_suspend ?NULL
>> +#define sharp_ls_bl_resume ? NULL
>> +#endif
>> +
>> +static struct platform_driver sharp_ls_bl_driver = {
>> + ? ? .driver ? ? ? ? = {
>> + ? ? ? ? ? ? .name ? = "sharp-ls-bl",
>> + ? ? ? ? ? ? .owner ?= THIS_MODULE,
>> + ? ? },
>> + ? ? .probe ? ? ? ? ?= sharp_ls_bl_probe,
>> + ? ? .remove ? ? ? ? = __devexit_p(sharp_ls_bl_remove),
>> + ? ? .suspend ? ? ? ?= sharp_ls_bl_suspend,
>> + ? ? .resume ? ? ? ? = sharp_ls_bl_resume,
>> +};
>> +
>> +static int __init sharp_ls_bl_init(void)
>> +{
>> + ? ? return platform_driver_register(&sharp_ls_bl_driver);
>> +}
>> +module_init(sharp_ls_bl_init);
>> +
>> +static void __exit sharp_ls_bl_exit(void)
>> +{
>> + ? ? platform_driver_unregister(&sharp_ls_bl_driver);
>> +}
>> +module_exit(sharp_ls_bl_exit);
>> +
>> +MODULE_DESCRIPTION("Sharp LS037V7DW01 Backlight Driver");
>> +MODULE_AUTHOR("Bryan Wu <bryan.wu@canonical.com>");
>> +MODULE_LICENSE("GPL");
>> +MODULE_ALIAS("platform:sharp-ls-bl");
>> --
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>



-- 
Bryan Wu <bryan.wu@canonical.com>
Kernel Developer ? ?+86.138-1617-6545 Mobile
Ubuntu Kernel Team
Canonical Ltd. ? ? ?www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel
  2010-11-30 12:07 [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Bryan Wu
                   ` (2 preceding siblings ...)
  2010-11-30 12:07 ` [PATCH 3/3] OMAP: DSS2: remove Sharp LS037V7DW01 panel driver Bryan Wu
@ 2010-12-01 15:32 ` Tomi Valkeinen
  2010-12-06  5:06   ` Bryan Wu
  3 siblings, 1 reply; 9+ messages in thread
From: Tomi Valkeinen @ 2010-12-01 15:32 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Tue, 2010-11-30 at 20:07 +0800, ext Bryan Wu wrote:
> After instroducing generic DPI panel driver for OMAP DSS2 system, we need to
> split out backlight driver from Sharp LS037V7DW01 panel driver before we move
> to the generic DPI panel driver.
> 
> This patchset introcuded backlight driver and cleanup the old Sharp LS037V7DW01
> panel driver related code.
> 
> It's built on mainline 2.6.37-rc4
> 
> Bryan Wu (3):
>   Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
>   OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver
>   OMAP: DSS2: remove Sharp LS037V7DW01 panel driver

I don't think this is quite the right direction.

All the backlight driver does is call a function in the board file. It's
not really a "sharp ls backlight driver", but rather generic one. I'm
not even sure if it needs the dssdev pointer.

This kind of backlight is, in a sense, totally separate component from
the panel itself. All they have in common is that they are packaged in
the same physical display module, and they usually share the same
connector.

I have seen three kinds of backlights on OMAP devices:
- on/off GPIO (like on 3430 SDP)
- PWM based (zoom seems to have this)
- Panel controlled (Taal-panel. Also PWM based, but OMAP doesn't see
that)

The first two could (should?) be totally separate backlights from the
panel itself. For those, a generic backlight driver could perhaps work.
The third one needs to be quite tied to the panel driver, and I'm not
sure how easy it would be to have a separate driver for that.

 Tomi

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel
  2010-12-01 15:32 ` [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Tomi Valkeinen
@ 2010-12-06  5:06   ` Bryan Wu
  2010-12-14 13:53     ` Tomi Valkeinen
  0 siblings, 1 reply; 9+ messages in thread
From: Bryan Wu @ 2010-12-06  5:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Dec 1, 2010 at 11:32 PM, Tomi Valkeinen
<tomi.valkeinen@nokia.com> wrote:
> Hi,
>
> On Tue, 2010-11-30 at 20:07 +0800, ext Bryan Wu wrote:
>> After instroducing generic DPI panel driver for OMAP DSS2 system, we need to
>> split out backlight driver from Sharp LS037V7DW01 panel driver before we move
>> to the generic DPI panel driver.
>>
>> This patchset introcuded backlight driver and cleanup the old Sharp LS037V7DW01
>> panel driver related code.
>>
>> It's built on mainline 2.6.37-rc4
>>
>> Bryan Wu (3):
>> ? Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine
>> ? OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver
>> ? OMAP: DSS2: remove Sharp LS037V7DW01 panel driver
>
> I don't think this is quite the right direction.
>
> All the backlight driver does is call a function in the board file. It's
> not really a "sharp ls backlight driver", but rather generic one. I'm
> not even sure if it needs the dssdev pointer.
>

Since dssdev struct contains backlight releated fields, I passed that
into the driver. It can be replaced by a backlight related platform
data struct. Then we can remove those backlight related fields from
dssdev struct.

> This kind of backlight is, in a sense, totally separate component from
> the panel itself. All they have in common is that they are packaged in
> the same physical display module, and they usually share the same
> connector.
>
> I have seen three kinds of backlights on OMAP devices:
> - on/off GPIO (like on 3430 SDP)
It seems like that we need a gpio_bl.c driver for this kind of usage.

> - PWM based (zoom seems to have this)

I failed to find any PWM or Backlight code in ZOOM boards source file.
Is that possible to us pwm_bl.c driver which is used by pxa?

> - Panel controlled (Taal-panel. Also PWM based, but OMAP doesn't see
> that)
>
Yeah, I don't plan to reform this driver at this time.

> The first two could (should?) be totally separate backlights from the
> panel itself. For those, a generic backlight driver could perhaps work.
> The third one needs to be quite tied to the panel driver, and I'm not
> sure how easy it would be to have a separate driver for that.
>

OK, I totally understand you concern now. How about a GPIO based
backlight driver for the first 2 cases.

Thanks,
-- 
Bryan Wu <bryan.wu@canonical.com>
Kernel Developer ? ?+86.138-1617-6545 Mobile
Ubuntu Kernel Team
Canonical Ltd. ? ? ?www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel
  2010-12-06  5:06   ` Bryan Wu
@ 2010-12-14 13:53     ` Tomi Valkeinen
  0 siblings, 0 replies; 9+ messages in thread
From: Tomi Valkeinen @ 2010-12-14 13:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2010-12-06 at 13:06 +0800, ext Bryan Wu wrote:

> > This kind of backlight is, in a sense, totally separate component from
> > the panel itself. All they have in common is that they are packaged in
> > the same physical display module, and they usually share the same
> > connector.
> >
> > I have seen three kinds of backlights on OMAP devices:
> > - on/off GPIO (like on 3430 SDP)
> It seems like that we need a gpio_bl.c driver for this kind of usage.
> 
> > - PWM based (zoom seems to have this)
> 
> I failed to find any PWM or Backlight code in ZOOM boards source file.
> Is that possible to us pwm_bl.c driver which is used by pxa?

It's not yet in the official kernel. You can find it in
arch/arm/mach-omap2/board-zoom-display.c in my tree, under devel-branch.

I haven't looked at pwm_bl.c, but I wouldn't be surprised if there
already was a driver we can use for this.

> > - Panel controlled (Taal-panel. Also PWM based, but OMAP doesn't see
> > that)
> >
> Yeah, I don't plan to reform this driver at this time.
> 
> > The first two could (should?) be totally separate backlights from the
> > panel itself. For those, a generic backlight driver could perhaps work.
> > The third one needs to be quite tied to the panel driver, and I'm not
> > sure how easy it would be to have a separate driver for that.
> >
> 
> OK, I totally understand you concern now. How about a GPIO based
> backlight driver for the first 2 cases.

GPIO based backlight driver would work properly only for the first case.

 Tomi

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-12-14 13:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-30 12:07 [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Bryan Wu
2010-11-30 12:07 ` [PATCH 1/3] Backlight: driver for Sharp LS037V7DW01 panel on OMAP machine Bryan Wu
2010-11-30 13:09   ` Janorkar, Mayuresh
2010-12-01 14:21     ` Bryan Wu
2010-11-30 12:07 ` [PATCH 2/3] OMAP: move Sharp LS LCD panel device to generic DPI panel driver and new backlight driver Bryan Wu
2010-11-30 12:07 ` [PATCH 3/3] OMAP: DSS2: remove Sharp LS037V7DW01 panel driver Bryan Wu
2010-12-01 15:32 ` [PATCH 0/3] OMAP: Introduce Backlight driver for Sharp LS037V7DW01 LCD panel Tomi Valkeinen
2010-12-06  5:06   ` Bryan Wu
2010-12-14 13:53     ` Tomi Valkeinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).