mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-04-20 19:53:43 +00:00
linux-3.0: added bbtoys ulcd support
Signed-off-by: Jason Kridner <jdk@ti.com> Cc: John Weber <rjohnweber@gmail.com> Cc: Roger Monk <r-monk@ti.com> Cc: Joel A Fernandes <agnel.joel@gmail.com> Cc: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
From 47282736d78c31ba07a83748b3d8f7a1510e082e Mon Sep 17 00:00:00 2001
|
||||
From: archit taneja <archit@ti.com>
|
||||
Date: Fri, 5 Aug 2011 07:19:21 +0000
|
||||
Subject: [PATCH 1/2] OMAP_VOUT: Fix build break caused by update_mode removal in DSS2
|
||||
|
||||
The DSS2 driver does not support the configuration of the update_mode of a
|
||||
panel anymore. Remove the setting of update_mode done in omap_vout_probe().
|
||||
Ignore configuration of TE since omap_vout driver doesn't support manual update
|
||||
displays anyway.
|
||||
|
||||
Signed-off-by: Archit Taneja <archit@ti.com>
|
||||
Tested-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
|
||||
---
|
||||
drivers/media/video/omap/omap_vout.c | 13 -------------
|
||||
1 files changed, 0 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
|
||||
index 4d07c58..d17d6b6 100644
|
||||
--- a/drivers/media/video/omap/omap_vout.c
|
||||
+++ b/drivers/media/video/omap/omap_vout.c
|
||||
@@ -2557,19 +2557,6 @@ static int __init omap_vout_probe(struct platform_device *pdev)
|
||||
"'%s' Display already enabled\n",
|
||||
def_display->name);
|
||||
}
|
||||
- /* set the update mode */
|
||||
- if (def_display->caps &
|
||||
- OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
|
||||
- if (dssdrv->enable_te)
|
||||
- dssdrv->enable_te(def_display, 0);
|
||||
- if (dssdrv->set_update_mode)
|
||||
- dssdrv->set_update_mode(def_display,
|
||||
- OMAP_DSS_UPDATE_MANUAL);
|
||||
- } else {
|
||||
- if (dssdrv->set_update_mode)
|
||||
- dssdrv->set_update_mode(def_display,
|
||||
- OMAP_DSS_UPDATE_AUTO);
|
||||
- }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.4.1
|
||||
|
||||
@@ -1,170 +0,0 @@
|
||||
From 364e5e30ff9257f1bac68d7f30f3e7f51e8b1bfc 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/4] 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..c2a1a19
|
||||
--- /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 <video/omapdss.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,235 @@
|
||||
From 2ced51c12594c56d15b5376a5ff72aedddf41b6a Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jdk@ti.com>
|
||||
Date: Mon, 12 Sep 2011 10:28:14 -0400
|
||||
Subject: [PATCH 2/2] WIP: omap: beagleboard: add bbtoys ulcd-lite support
|
||||
|
||||
Added support for the BeagleBoardToys ULCD-Lite.
|
||||
* Added ThreeFiveCorp s9700rtwv35tr-01b panel to
|
||||
panel-generic-dpi driver.
|
||||
* Added TSC2007 and LCD panel to board file.
|
||||
|
||||
Relied heavily on the TSC2007 integration work done by
|
||||
John Weber and panel timings from Roger Monk.
|
||||
|
||||
Signed-off-by: Jason Kridner <jdk@ti.com>
|
||||
Cc: John Weber <rjohnweber@gmail.com>
|
||||
Cc: Roger Monk <r-monk@ti.com>
|
||||
Cc: Joel A Fernandes <agnel.joel@gmail.com>
|
||||
Cc: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 112 ++++++++++++++++++++++
|
||||
drivers/video/omap2/displays/panel-generic-dpi.c | 25 +++++
|
||||
2 files changed, 137 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index 9712099..8c0d1a3 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/if_ether.h>
|
||||
+#include <linux/i2c/tsc2007.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
@@ -87,11 +88,15 @@ static struct {
|
||||
int usb_pwr_level;
|
||||
int reset_gpio;
|
||||
int usr_button_gpio;
|
||||
+ char *lcd_driver_name;
|
||||
+ int lcd_pwren;
|
||||
} beagle_config = {
|
||||
.mmc1_gpio_wp = -EINVAL,
|
||||
.usb_pwr_level = GPIOF_OUT_INIT_LOW,
|
||||
.reset_gpio = 129,
|
||||
.usr_button_gpio = 4,
|
||||
+ .lcd_driver_name = "",
|
||||
+ .lcd_pwren = 156
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -477,9 +482,53 @@ 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)
|
||||
+{
|
||||
+ if (gpio_is_valid(beagle_config.lcd_pwren)) {
|
||||
+ printk(KERN_INFO "%s: Enabling LCD\n", __FUNCTION__);
|
||||
+ gpio_set_value(beagle_config.lcd_pwren, 0);
|
||||
+ } else {
|
||||
+ printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
|
||||
+ __FUNCTION__, beagle_config.lcd_pwren);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void beagle_disable_lcd(struct omap_dss_device *dssdev)
|
||||
+{
|
||||
+ if (gpio_is_valid(beagle_config.lcd_pwren)) {
|
||||
+ printk(KERN_INFO "%s: Disabling LCD\n", __FUNCTION__);
|
||||
+ gpio_set_value(beagle_config.lcd_pwren, 1);
|
||||
+ } else {
|
||||
+ printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
|
||||
+ __FUNCTION__, beagle_config.lcd_pwren);
|
||||
+ }
|
||||
+
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+static struct panel_generic_dpi_data lcd_panel = {
|
||||
+ .name = "tfc_s9700rtwv35tr-01b",
|
||||
+ .platform_enable = beagle_enable_lcd,
|
||||
+ .platform_disable = beagle_disable_lcd,
|
||||
+};
|
||||
+
|
||||
+static struct omap_dss_device beagle_lcd_device = {
|
||||
+ .type = OMAP_DISPLAY_TYPE_DPI,
|
||||
+ .name = "lcd",
|
||||
+ .driver_name = "generic_dpi_panel",
|
||||
+ .phy.dpi.data_lines = 24,
|
||||
+ .platform_enable = beagle_enable_lcd,
|
||||
+ .platform_disable = beagle_disable_lcd,
|
||||
+ .reset_gpio = -EINVAL,
|
||||
+ .data = &lcd_panel,
|
||||
+};
|
||||
+
|
||||
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 = {
|
||||
@@ -496,6 +545,11 @@ static void __init beagle_display_init(void)
|
||||
"DVI reset");
|
||||
if (r < 0)
|
||||
printk(KERN_ERR "Unable to get DVI reset GPIO\n");
|
||||
+
|
||||
+ r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW,
|
||||
+ "LCD power");
|
||||
+ if (r < 0)
|
||||
+ printk(KERN_ERR "Unable to get LCD power enable GPIO\n");
|
||||
}
|
||||
|
||||
#include "sdram-micron-mt46h32m32lf-6.h"
|
||||
@@ -654,6 +708,53 @@ static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {
|
||||
static struct i2c_board_info __initdata beagle_i2c2_zippy[] = {};
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_INPUT_TOUCHSCREEN) && \
|
||||
+ defined(CONFIG_TOUCHSCREEN_TSC2007)
|
||||
+/* Touchscreen */
|
||||
+#define OMAP3BEAGLE_TSC2007_GPIO 157
|
||||
+static int omap3beagle_tsc2007_get_pendown_state(void)
|
||||
+{
|
||||
+ return !gpio_get_value(OMAP3BEAGLE_TSC2007_GPIO);
|
||||
+}
|
||||
+
|
||||
+static int omap3beagle_tsc2007_init(void)
|
||||
+{
|
||||
+ int gpio = OMAP3BEAGLE_TSC2007_GPIO;
|
||||
+ int ret = 0;
|
||||
+ printk(KERN_WARNING "TSC2007_init started");
|
||||
+ ret = gpio_request(gpio, "tsc2007_pen_down");
|
||||
+ if (ret < 0) {
|
||||
+ printk(KERN_ERR "Failed to request GPIO %d for "
|
||||
+ "tsc2007 pen down IRQ\n", gpio);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ omap_mux_init_gpio(OMAP3BEAGLE_TSC2007_GPIO, OMAP_PIN_INPUT_PULLUP);
|
||||
+ gpio_direction_input(gpio);
|
||||
+
|
||||
+ irq_set_irq_type(OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO), IRQ_TYPE_EDGE_FALLING);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static struct tsc2007_platform_data tsc2007_info = {
|
||||
+ .model = 2007,
|
||||
+ .x_plate_ohms = 180,
|
||||
+ .get_pendown_state = omap3beagle_tsc2007_get_pendown_state,
|
||||
+ .init_platform_hw = omap3beagle_tsc2007_init,
|
||||
+};
|
||||
+
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {
|
||||
+ {
|
||||
+ I2C_BOARD_INFO("tsc2007", 0x48),
|
||||
+ .irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO),
|
||||
+ .platform_data = &tsc2007_info,
|
||||
+ },
|
||||
+};
|
||||
+#else
|
||||
+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {};
|
||||
+#endif
|
||||
+
|
||||
static int __init omap3_beagle_i2c_init(void)
|
||||
{
|
||||
omap3_pmic_get_config(&beagle_twldata,
|
||||
@@ -823,6 +924,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_s9700rtwv35tr-01b",
|
||||
+ lcd_panel.name = beagle_config.lcd_driver_name;
|
||||
+
|
||||
platform_add_devices(omap3_beagle_devices,
|
||||
ARRAY_SIZE(omap3_beagle_devices));
|
||||
omap_display_init(&beagle_dss_data);
|
||||
@@ -898,6 +1003,13 @@ static void __init omap3_beagle_init(void)
|
||||
platform_device_register(&omap_vwlan_device);
|
||||
}
|
||||
|
||||
+ if(!strcmp(expansionboard_name, "bbtoys-ulcd"))
|
||||
+ {
|
||||
+ printk(KERN_INFO "Beagle expansionboard: registering bbtoys-ulcd\n");
|
||||
+ omap_register_i2c_bus(2, 400, beagle_i2c2_bbtoys_ulcd,
|
||||
+ ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd));
|
||||
+ }
|
||||
+
|
||||
usb_musb_init(NULL);
|
||||
usbhs_init(&usbhs_bdata);
|
||||
omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
|
||||
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
|
||||
index 9c90f75..82c1ac3 100644
|
||||
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
|
||||
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
|
||||
@@ -232,6 +232,31 @@ static struct panel_config generic_dpi_panels[] = {
|
||||
.power_off_delay = 0,
|
||||
.name = "powertip_ph480272t",
|
||||
},
|
||||
+
|
||||
+ /* ThreeFiveCorp S9700RTWV35TR-01B */
|
||||
+ {
|
||||
+ {
|
||||
+ .x_res = 800,
|
||||
+ .y_res = 480,
|
||||
+
|
||||
+ .pixel_clock = 30000,
|
||||
+
|
||||
+ .hsw = 49,
|
||||
+ .hfp = 41,
|
||||
+ .hbp = 40,
|
||||
+
|
||||
+ .vsw = 4,
|
||||
+ .vfp = 14,
|
||||
+ .vbp = 29,
|
||||
+ },
|
||||
+ .acbi = 0x0,
|
||||
+ .acb = 0x0,
|
||||
+ .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
|
||||
+ .power_on_delay = 50,
|
||||
+ .power_off_delay = 100,
|
||||
+ .name = "tfc_s9700rtwv35tr-01b",
|
||||
+ },
|
||||
};
|
||||
|
||||
struct panel_drv_data {
|
||||
--
|
||||
1.7.4.1
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
From 6b0587615fd0099261d049be17f12eae9f92ae85 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/4] 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
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
From 4b175ec2e08d1fa4a0bbaeb79ee2381164572fba Mon Sep 17 00:00:00 2001
|
||||
From: Joel A Fernandes <agnel.joel@gmail.com>
|
||||
Date: Thu, 18 Aug 2011 16:19:40 -0500
|
||||
Subject: [PATCH 3/4] lcd: Set LCD power-enable GPIO in board file
|
||||
|
||||
With this, the ULCD-lite display works with the 3.0 kernel
|
||||
|
||||
v2 changes:
|
||||
Fixed the beagle_config structure
|
||||
|
||||
Signed-off-by: Joel A Fernandes <agnel.joel@gmail.com>
|
||||
---
|
||||
arch/arm/mach-omap2/board-omap3beagle.c | 7 +++++++
|
||||
1 files changed, 7 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
index b525a5e..6b0afda 100644
|
||||
--- a/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
|
||||
@@ -85,12 +85,14 @@ static struct {
|
||||
int reset_gpio;
|
||||
int usr_button_gpio;
|
||||
char *lcd_driver_name;
|
||||
+ int lcd_pwren;
|
||||
} beagle_config = {
|
||||
.mmc1_gpio_wp = -EINVAL,
|
||||
.usb_pwr_level = GPIOF_OUT_INIT_LOW,
|
||||
.reset_gpio = 129,
|
||||
.usr_button_gpio = 4,
|
||||
.lcd_driver_name = "",
|
||||
+ .lcd_pwren = 156
|
||||
};
|
||||
|
||||
static struct gpio omap3_beagle_rev_gpios[] __initdata = {
|
||||
@@ -423,6 +425,11 @@ static void __init beagle_display_init(void)
|
||||
{
|
||||
int r;
|
||||
|
||||
+ r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW,
|
||||
+ "LCD power");
|
||||
+ if (r < 0)
|
||||
+ printk(KERN_ERR "Unable to get LCD power enable GPIO\n");
|
||||
+
|
||||
r = gpio_request_one(beagle_dvi_device.reset_gpio, GPIOF_OUT_INIT_LOW,
|
||||
"DVI reset");
|
||||
if (r < 0)
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
From 1d70480dca0c7648f5f51fad5ffb0e191212615a 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 4/4] 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 c2a1a19..6afd4e3 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
|
||||
|
||||
@@ -10,7 +10,7 @@ PV = "3.0.4"
|
||||
SRCREV_pn-${PN} = "04aa37b5f943920017ad094e776cd5514b1a9246"
|
||||
|
||||
# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
|
||||
MACHINE_KERNEL_PR_append = "b"
|
||||
MACHINE_KERNEL_PR_append = "c"
|
||||
|
||||
FILESPATH =. "${FILE_DIRNAME}/linux-3.0:${FILE_DIRNAME}/linux-3.0/${MACHINE}:"
|
||||
|
||||
@@ -210,10 +210,8 @@ SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-3.0.y.git
|
||||
\
|
||||
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-lcd-Set-LCD-power-enable-GPIO-in-board-file.patch \
|
||||
file://ulcd/0004-Make-fbset-show-correct-timing-values.patch \
|
||||
file://ulcd/0001-OMAP_VOUT-Fix-build-break-caused-by-update_mode-remo.patch \
|
||||
file://ulcd/0002-WIP-omap-beagleboard-add-bbtoys-ulcd-lite-support.patch \
|
||||
\
|
||||
file://omap4/0001-OMAP-Fix-linking-error-in-twl-common.c-for-OMAP2-3-4.patch \
|
||||
\
|
||||
|
||||
Reference in New Issue
Block a user