* [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 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 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 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