mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-05-30 23:40:29 +00:00
linux-3.0: add support for 'uLCD' expansionboard
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
+170
@@ -0,0 +1,170 @@
|
|||||||
|
From 79f2013a573226d43a9d07760f81c297ba93b3c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Roger Monk <r-monk@ti.com>
|
||||||
|
Date: Wed, 10 Aug 2011 16:54:34 +0200
|
||||||
|
Subject: [PATCH 1/3] omap2-displays: Add support for ThreeFiveCorp S9700 Display
|
||||||
|
|
||||||
|
* Add support for s9700rtwv35tr01b display panel
|
||||||
|
* This is used on BeagleBoardToys ULCD/-lite daugtercards
|
||||||
|
|
||||||
|
Signed-off-by: Roger Monk <r-monk@ti.com>
|
||||||
|
---
|
||||||
|
drivers/video/omap2/displays/Kconfig | 6 +
|
||||||
|
drivers/video/omap2/displays/Makefile | 1 +
|
||||||
|
.../omap2/displays/panel-tfc-s9700rtwv35tr01b.c | 118 ++++++++++++++++++++
|
||||||
|
3 files changed, 125 insertions(+), 0 deletions(-)
|
||||||
|
create mode 100644 drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
|
||||||
|
diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
|
||||||
|
index 609a280..f8be2a8 100644
|
||||||
|
--- a/drivers/video/omap2/displays/Kconfig
|
||||||
|
+++ b/drivers/video/omap2/displays/Kconfig
|
||||||
|
@@ -30,6 +30,12 @@ config PANEL_NEC_NL8048HL11_01B
|
||||||
|
This NEC NL8048HL11-01B panel is TFT LCD
|
||||||
|
used in the Zoom2/3/3630 sdp boards.
|
||||||
|
|
||||||
|
+config PANEL_TFCS9700RTWV35TR01B
|
||||||
|
+ tristate "TFC S9700RTWV35TR01B"
|
||||||
|
+ depends on OMAP2_DSS
|
||||||
|
+ help
|
||||||
|
+ LCD Panel used on BeagleboardToys 800x480 LCD Expansion Module
|
||||||
|
+
|
||||||
|
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 0f601ab..8abdf50 100644
|
||||||
|
--- a/drivers/video/omap2/displays/Makefile
|
||||||
|
+++ b/drivers/video/omap2/displays/Makefile
|
||||||
|
@@ -5,4 +5,5 @@ obj-$(CONFIG_PANEL_NEC_NL8048HL11_01B) += panel-nec-nl8048hl11-01b.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_PANEL_TAAL) += panel-taal.o
|
||||||
|
obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
|
||||||
|
+obj-$(CONFIG_PANEL_TFCS9700RTWV35TR01B) += panel-tfc-s9700rtwv35tr01b.o
|
||||||
|
obj-$(CONFIG_PANEL_ACX565AKM) += panel-acx565akm.o
|
||||||
|
diff --git a/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c b/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..796393d
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
@@ -0,0 +1,118 @@
|
||||||
|
+/*
|
||||||
|
+ * LCD panel driver for TFC S9700RTWV35TR-01B
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2011 Texas Instruments Inc
|
||||||
|
+ * Author: Roger Monk <r-monk@ti.com>
|
||||||
|
+ * From Original by : Vaibhav Hiremath <hvaibhav@ti.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/err.h>
|
||||||
|
+
|
||||||
|
+#include <plat/display.h>
|
||||||
|
+
|
||||||
|
+static struct omap_video_timings tfc_timings = {
|
||||||
|
+ .x_res = 800,
|
||||||
|
+ .y_res = 480,
|
||||||
|
+
|
||||||
|
+ .pixel_clock = 30000,
|
||||||
|
+
|
||||||
|
+ .hsw = 49,
|
||||||
|
+ .hfp = 41,
|
||||||
|
+ .hbp = 40,
|
||||||
|
+
|
||||||
|
+ .vsw = 4,
|
||||||
|
+ .vfp = 14,
|
||||||
|
+ .vbp = 29,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int tfc_panel_probe(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ dssdev->panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
|
||||||
|
+ OMAP_DSS_LCD_IHS; // | OMAP_DSS_LCD_IEO; - TODO check this - doesn't work with this enabled
|
||||||
|
+ dssdev->panel.acb = 0x0;
|
||||||
|
+ dssdev->panel.timings = tfc_timings;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void tfc_panel_remove(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int tfc_panel_enable(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ int r = 0;
|
||||||
|
+
|
||||||
|
+ /* wait couple of vsyncs until enabling the LCD */
|
||||||
|
+ msleep(50);
|
||||||
|
+
|
||||||
|
+ if (dssdev->platform_enable)
|
||||||
|
+ r = dssdev->platform_enable(dssdev);
|
||||||
|
+
|
||||||
|
+ return r;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void tfc_panel_disable(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ if (dssdev->platform_disable)
|
||||||
|
+ dssdev->platform_disable(dssdev);
|
||||||
|
+
|
||||||
|
+ /* wait at least 5 vsyncs after disabling the LCD */
|
||||||
|
+
|
||||||
|
+ msleep(100);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int tfc_panel_suspend(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ tfc_panel_disable(dssdev);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int tfc_panel_resume(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ return tfc_panel_enable(dssdev);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static struct omap_dss_driver tfc_s9700_driver = {
|
||||||
|
+ .probe = tfc_panel_probe,
|
||||||
|
+ .remove = tfc_panel_remove,
|
||||||
|
+
|
||||||
|
+ .enable = tfc_panel_enable,
|
||||||
|
+ .disable = tfc_panel_disable,
|
||||||
|
+ .suspend = tfc_panel_suspend,
|
||||||
|
+ .resume = tfc_panel_resume,
|
||||||
|
+
|
||||||
|
+ .driver = {
|
||||||
|
+ .name = "tfc_s9700_panel",
|
||||||
|
+ .owner = THIS_MODULE,
|
||||||
|
+ },
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int __init tfc_panel_drv_init(void)
|
||||||
|
+{
|
||||||
|
+ return omap_dss_register_driver(&tfc_s9700_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void __exit tfc_panel_drv_exit(void)
|
||||||
|
+{
|
||||||
|
+ omap_dss_unregister_driver(&tfc_s9700_driver);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+module_init(tfc_panel_drv_init);
|
||||||
|
+module_exit(tfc_panel_drv_exit);
|
||||||
|
+MODULE_LICENSE("GPL");
|
||||||
|
--
|
||||||
|
1.6.6.1
|
||||||
|
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
From 1fc2bd36acf09d22db63b59985eab1a663855581 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jason Kridner <jkridner@beagleboard.org>
|
||||||
|
Date: Fri, 5 Aug 2011 18:07:09 +0000
|
||||||
|
Subject: [PATCH 2/3] omap3: beagle: added lcd driver
|
||||||
|
|
||||||
|
This enables the tfc_s9700_panel by default. Needs to be extended to
|
||||||
|
redefine the driver name at boot time.
|
||||||
|
---
|
||||||
|
arch/arm/mach-omap2/board-omap3beagle.c | 25 +++++++++++++++++++++++++
|
||||||
|
1 files changed, 25 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||||
|
index 5e1d9f9..b525a5e 100644
|
||||||
|
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||||
|
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||||
|
@@ -84,11 +84,13 @@ static struct {
|
||||||
|
int usb_pwr_level;
|
||||||
|
int reset_gpio;
|
||||||
|
int usr_button_gpio;
|
||||||
|
+ char *lcd_driver_name;
|
||||||
|
} beagle_config = {
|
||||||
|
.mmc1_gpio_wp = -EINVAL,
|
||||||
|
.usb_pwr_level = GPIOF_OUT_INIT_LOW,
|
||||||
|
.reset_gpio = 129,
|
||||||
|
.usr_button_gpio = 4,
|
||||||
|
+ .lcd_driver_name = "",
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct gpio omap3_beagle_rev_gpios[] __initdata = {
|
||||||
|
@@ -387,9 +389,28 @@ static struct omap_dss_device beagle_tv_device = {
|
||||||
|
.phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
|
||||||
|
};
|
||||||
|
|
||||||
|
+static int beagle_enable_lcd(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int beagle_disable_lcd(struct omap_dss_device *dssdev)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static struct omap_dss_device beagle_lcd_device = {
|
||||||
|
+ .name = "lcd",
|
||||||
|
+ .driver_name = "",
|
||||||
|
+ .type = OMAP_DISPLAY_TYPE_DPI,
|
||||||
|
+ .phy.dpi.data_lines = 24,
|
||||||
|
+ .platform_enable = beagle_enable_lcd,
|
||||||
|
+ .platform_disable = beagle_disable_lcd,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static struct omap_dss_device *beagle_dss_devices[] = {
|
||||||
|
&beagle_dvi_device,
|
||||||
|
&beagle_tv_device,
|
||||||
|
+ &beagle_lcd_device,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct omap_dss_board_info beagle_dss_data = {
|
||||||
|
@@ -733,6 +754,10 @@ static void __init omap3_beagle_init(void)
|
||||||
|
|
||||||
|
gpio_buttons[0].gpio = beagle_config.usr_button_gpio;
|
||||||
|
|
||||||
|
+ /* TODO: set lcd_driver_name by command line or device tree */
|
||||||
|
+ beagle_config.lcd_driver_name = "tfc_s9700_panel";
|
||||||
|
+ beagle_lcd_device.driver_name = beagle_config.lcd_driver_name;
|
||||||
|
+
|
||||||
|
platform_add_devices(omap3_beagle_devices,
|
||||||
|
ARRAY_SIZE(omap3_beagle_devices));
|
||||||
|
omap_display_init(&beagle_dss_data);
|
||||||
|
--
|
||||||
|
1.6.6.1
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
From a2fa8fa573f44d60d812779cf55e546303dcd6cb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joel A Fernandes <agnel.joel@gmail.com>
|
||||||
|
Date: Wed, 17 Aug 2011 00:28:49 -0500
|
||||||
|
Subject: [PATCH 3/3] Make fbset show correct timing values
|
||||||
|
|
||||||
|
Signed-off-by: Joel A Fernandes <agnel.joel@gmail.com>
|
||||||
|
Cc: "Monk, Roger" <r-monk@ti.com>
|
||||||
|
---
|
||||||
|
.../omap2/displays/panel-tfc-s9700rtwv35tr01b.c | 8 +++++++-
|
||||||
|
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c b/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
index 796393d..9689a2c 100644
|
||||||
|
--- a/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
+++ b/drivers/video/omap2/displays/panel-tfc-s9700rtwv35tr01b.c
|
||||||
|
@@ -88,6 +88,12 @@ static int tfc_panel_resume(struct omap_dss_device *dssdev)
|
||||||
|
return tfc_panel_enable(dssdev);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void tfc_panel_get_timings(struct omap_dss_device *dssdev,
|
||||||
|
+ struct omap_video_timings *timings)
|
||||||
|
+{
|
||||||
|
+ *timings = dssdev->panel.timings;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static struct omap_dss_driver tfc_s9700_driver = {
|
||||||
|
.probe = tfc_panel_probe,
|
||||||
|
.remove = tfc_panel_remove,
|
||||||
|
@@ -96,7 +102,7 @@ static struct omap_dss_driver tfc_s9700_driver = {
|
||||||
|
.disable = tfc_panel_disable,
|
||||||
|
.suspend = tfc_panel_suspend,
|
||||||
|
.resume = tfc_panel_resume,
|
||||||
|
-
|
||||||
|
+ .get_timings = tfc_panel_get_timings,
|
||||||
|
.driver = {
|
||||||
|
.name = "tfc_s9700_panel",
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
--
|
||||||
|
1.6.6.1
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ COMPATIBLE_MACHINE = "(beagleboard)"
|
|||||||
SRCREV_pn-${PN} = "94ed5b4788a7cdbe68bc7cb8516972cbebdc8274"
|
SRCREV_pn-${PN} = "94ed5b4788a7cdbe68bc7cb8516972cbebdc8274"
|
||||||
|
|
||||||
# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
|
# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
|
||||||
MACHINE_KERNEL_PR_append = "m"
|
MACHINE_KERNEL_PR_append = "n"
|
||||||
|
|
||||||
FILESPATHPKG_prepend = "linux-3.0:"
|
FILESPATHPKG_prepend = "linux-3.0:"
|
||||||
|
|
||||||
@@ -215,6 +215,10 @@ SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
|
|||||||
file://sakoman/0014-rtc-twl-add-support-for-backup-battery-recharge.patch \
|
file://sakoman/0014-rtc-twl-add-support-for-backup-battery-recharge.patch \
|
||||||
\
|
\
|
||||||
file://sgx/0001-ARM-L2-Add-and-export-outer_clean_all.patch \
|
file://sgx/0001-ARM-L2-Add-and-export-outer_clean_all.patch \
|
||||||
|
\
|
||||||
|
file://ulcd/0001-omap2-displays-Add-support-for-ThreeFiveCorp-S9700-D.patch \
|
||||||
|
file://ulcd/0002-omap3-beagle-added-lcd-driver.patch \
|
||||||
|
file://ulcd/0003-Make-fbset-show-correct-timing-values.patch \
|
||||||
file://defconfig"
|
file://defconfig"
|
||||||
|
|
||||||
SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
|
SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
|
||||||
|
|||||||
Reference in New Issue
Block a user