summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/linux/linux-omap/0010-DSS-Support-for-OMAP3-SDP-board.patch296
-rw-r--r--packages/linux/linux-omap/mru-add-clk-get-parent.diff68
-rw-r--r--packages/linux/linux-omap/mru-make-dpll4-m4-ck-programmable.diff28
-rw-r--r--packages/linux/linux-omap_git.bb7
4 files changed, 2 insertions, 397 deletions
diff --git a/packages/linux/linux-omap/0010-DSS-Support-for-OMAP3-SDP-board.patch b/packages/linux/linux-omap/0010-DSS-Support-for-OMAP3-SDP-board.patch
deleted file mode 100644
index 707b6c4d66..0000000000
--- a/packages/linux/linux-omap/0010-DSS-Support-for-OMAP3-SDP-board.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From 06675e403dfe6fd9471513fb7db77db69c38c91d Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen@nokia.com>
-Date: Fri, 14 Nov 2008 15:47:55 +0200
-Subject: [PATCH] DSS: Support for OMAP3 SDP board
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
----
- arch/arm/mach-omap2/board-3430sdp.c | 234 +++++++++++++++++++++++++++++++++--
- 1 files changed, 223 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
-index b7d2e92..ac4f806 100644
---- a/arch/arm/mach-omap2/board-3430sdp.c
-+++ b/arch/arm/mach-omap2/board-3430sdp.c
-@@ -40,6 +40,8 @@
- #include <mach/keypad.h>
- #include <mach/dma.h>
- #include <mach/gpmc.h>
-+#include <mach/omapfb.h>
-+#include <mach/display.h>
-
- #include <asm/io.h>
- #include <asm/delay.h>
-@@ -240,14 +242,224 @@ static struct spi_board_info sdp3430_spi_board_info[] __initdata = {
- },
- };
-
--static struct platform_device sdp3430_lcd_device = {
-- .name = "sdp2430_lcd",
-- .id = -1,
-+static struct omap_fbmem_config sdp3430_fbmem0_config = {
-+ .size = 1024*768*4,
-+ .start = OMAPFB_MEMTYPE_SDRAM,
-+};
-+
-+static struct omap_fbmem_config sdp3430_fbmem1_config = {
-+ .size = 640*480*4,
-+ .start = OMAPFB_MEMTYPE_SDRAM,
- };
-
-+static struct omap_fbmem_config sdp3430_fbmem2_config = {
-+ .size = 640*480*4,
-+ .start = OMAPFB_MEMTYPE_SDRAM,
-+};
-+
-+
-+#define SDP2430_LCD_PANEL_BACKLIGHT_GPIO 91
-+#define SDP2430_LCD_PANEL_ENABLE_GPIO 154
-+#define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 24
-+#define SDP3430_LCD_PANEL_ENABLE_GPIO 28
-+
-+#define PM_RECEIVER TWL4030_MODULE_PM_RECEIVER
-+#define ENABLE_VAUX2_DEDICATED 0x09
-+#define ENABLE_VAUX2_DEV_GRP 0x20
-+#define ENABLE_VAUX3_DEDICATED 0x03
-+#define ENABLE_VAUX3_DEV_GRP 0x20
-+
-+#define ENABLE_VPLL2_DEDICATED 0x05
-+#define ENABLE_VPLL2_DEV_GRP 0xE0
-+#define TWL4030_VPLL2_DEV_GRP 0x33
-+#define TWL4030_VPLL2_DEDICATED 0x36
-+
-+#define t2_out(c, r, v) twl4030_i2c_write_u8(c, r, v)
-+
-+static unsigned backlight_gpio;
-+static unsigned enable_gpio;
-+static int lcd_enabled;
-+static int dvi_enabled;
-+
-+static void __init sdp3430_display_init(void)
-+{
-+ int r;
-+
-+ enable_gpio = SDP3430_LCD_PANEL_ENABLE_GPIO;
-+ backlight_gpio = SDP3430_LCD_PANEL_BACKLIGHT_GPIO;
-+
-+ r = gpio_request(enable_gpio, "LCD reset");
-+ if (r) {
-+ printk(KERN_ERR "failed to get LCD reset GPIO\n");
-+ goto err0;
-+ }
-+
-+ r = gpio_request(backlight_gpio, "LCD Backlight");
-+ if (r) {
-+ printk(KERN_ERR "failed to get LCD backlight GPIO\n");
-+ goto err1;
-+ }
-+
-+ gpio_direction_output(enable_gpio, 0);
-+ gpio_direction_output(backlight_gpio, 0);
-+
-+ return;
-+err1:
-+ gpio_free(enable_gpio);
-+err0:
-+ return;
-+}
-+
-+
-+static int sdp3430_panel_enable_lcd(struct omap_display *display)
-+{
-+ u8 ded_val, ded_reg;
-+ u8 grp_val, grp_reg;
-+
-+ if (dvi_enabled) {
-+ printk(KERN_ERR "cannot enable LCD, DVI is enabled\n");
-+ return -EINVAL;
-+ }
-+
-+ if (omap_rev() > OMAP3430_REV_ES1_0) {
-+ t2_out(PM_RECEIVER, ENABLE_VPLL2_DEDICATED,
-+ TWL4030_VPLL2_DEDICATED);
-+ t2_out(PM_RECEIVER, ENABLE_VPLL2_DEV_GRP,
-+ TWL4030_VPLL2_DEV_GRP);
-+ }
-+
-+ ded_reg = TWL4030_VAUX3_DEDICATED;
-+ ded_val = ENABLE_VAUX3_DEDICATED;
-+ grp_reg = TWL4030_VAUX3_DEV_GRP;
-+ grp_val = ENABLE_VAUX3_DEV_GRP;
-+
-+ gpio_direction_output(enable_gpio, 1);
-+ gpio_direction_output(backlight_gpio, 1);
-+
-+ if (0 != t2_out(PM_RECEIVER, ded_val, ded_reg))
-+ return -EIO;
-+ if (0 != t2_out(PM_RECEIVER, grp_val, grp_reg))
-+ return -EIO;
-+
-+ lcd_enabled = 1;
-+
-+ return 0;
-+}
-+
-+static void sdp3430_panel_disable_lcd(struct omap_display *display)
-+{
-+ lcd_enabled = 0;
-+
-+ gpio_direction_output(enable_gpio, 0);
-+ gpio_direction_output(backlight_gpio, 0);
-+
-+ if (omap_rev() > OMAP3430_REV_ES1_0) {
-+ t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEDICATED);
-+ t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEV_GRP);
-+ mdelay(4);
-+ }
-+}
-+
-+static struct omap_display_data sdp3430_display_data = {
-+ .type = OMAP_DISPLAY_TYPE_DPI,
-+ .name = "lcd",
-+ .panel_name = "sharp-ls037v7dw01",
-+ .u.dpi.data_lines = 16,
-+ .panel_enable = sdp3430_panel_enable_lcd,
-+ .panel_disable = sdp3430_panel_disable_lcd,
-+};
-+
-+static int sdp3430_panel_enable_dvi(struct omap_display *display)
-+{
-+ if (lcd_enabled) {
-+ printk(KERN_ERR "cannot enable DVI, LCD is enabled\n");
-+ return -EINVAL;
-+ }
-+
-+ if (omap_rev() > OMAP3430_REV_ES1_0) {
-+ t2_out(PM_RECEIVER, ENABLE_VPLL2_DEDICATED,
-+ TWL4030_VPLL2_DEDICATED);
-+ t2_out(PM_RECEIVER, ENABLE_VPLL2_DEV_GRP,
-+ TWL4030_VPLL2_DEV_GRP);
-+ }
-+
-+ dvi_enabled = 1;
-+
-+ return 0;
-+}
-+
-+static void sdp3430_panel_disable_dvi(struct omap_display *display)
-+{
-+ dvi_enabled = 0;
-+
-+ if (omap_rev() > OMAP3430_REV_ES1_0) {
-+ t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEDICATED);
-+ t2_out(PM_RECEIVER, 0x0, TWL4030_VPLL2_DEV_GRP);
-+ mdelay(4);
-+ }
-+}
-+
-+
-+static struct omap_display_data sdp3430_display_data_dvi = {
-+ .type = OMAP_DISPLAY_TYPE_DPI,
-+ .name = "dvi",
-+ .panel_name = "panel-dvi",
-+ .u.dpi.data_lines = 24,
-+ .panel_enable = sdp3430_panel_enable_dvi,
-+ .panel_disable = sdp3430_panel_disable_dvi,
-+};
-+
-+static int sdp3430_panel_enable_tv(struct omap_display *display)
-+{
-+#define ENABLE_VDAC_DEDICATED 0x03
-+#define ENABLE_VDAC_DEV_GRP 0x20
-+
-+ twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-+ ENABLE_VDAC_DEDICATED,
-+ TWL4030_VDAC_DEDICATED);
-+ twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
-+ ENABLE_VDAC_DEV_GRP, TWL4030_VDAC_DEV_GRP);
-+
-+ return 0;
-+}
-+
-+static void sdp3430_panel_disable_tv(struct omap_display *display)
-+{
-+ twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x00,
-+ TWL4030_VDAC_DEDICATED);
-+ twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, 0x00,
-+ TWL4030_VDAC_DEV_GRP);
-+}
-+
-+static struct omap_display_data sdp3430_display_data_tv = {
-+ .type = OMAP_DISPLAY_TYPE_VENC,
-+ .name = "tv",
-+ .u.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
-+ .panel_enable = sdp3430_panel_enable_tv,
-+ .panel_disable = sdp3430_panel_disable_tv,
-+};
-+
-+static struct omap_dss_platform_data sdp3430_dss_data = {
-+ .num_displays = 3,
-+ .displays = {
-+ &sdp3430_display_data,
-+ &sdp3430_display_data_dvi,
-+ &sdp3430_display_data_tv,
-+ }
-+};
-+
-+static struct platform_device sdp3430_dss_device = {
-+ .name = "omap-dss",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &sdp3430_dss_data,
-+ },
-+};
-+
-+
- static struct platform_device *sdp3430_devices[] __initdata = {
- &sdp3430_smc91x_device,
-- &sdp3430_lcd_device,
-+ &sdp3430_dss_device,
- };
-
- static inline void __init sdp3430_init_smc91x(void)
-@@ -294,13 +506,11 @@ static struct omap_uart_config sdp3430_uart_config __initdata = {
- .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)),
- };
-
--static struct omap_lcd_config sdp3430_lcd_config __initdata = {
-- .ctrl_name = "internal",
--};
--
- static struct omap_board_config_kernel sdp3430_config[] __initdata = {
- { OMAP_TAG_UART, &sdp3430_uart_config },
-- { OMAP_TAG_LCD, &sdp3430_lcd_config },
-+ { OMAP_TAG_FBMEM, &sdp3430_fbmem0_config },
-+ { OMAP_TAG_FBMEM, &sdp3430_fbmem1_config },
-+ { OMAP_TAG_FBMEM, &sdp3430_fbmem2_config },
- };
-
- static int sdp3430_batt_table[] = {
-@@ -467,8 +677,6 @@ static void __init omap_3430sdp_init(void)
- {
- omap3430_i2c_init();
- platform_add_devices(sdp3430_devices, ARRAY_SIZE(sdp3430_devices));
-- omap_board_config = sdp3430_config;
-- omap_board_config_size = ARRAY_SIZE(sdp3430_config);
- if (omap_rev() > OMAP3430_REV_ES1_0)
- ts_gpio = OMAP34XX_TS_GPIO_IRQ_SDPV2;
- else
-@@ -483,10 +691,14 @@ static void __init omap_3430sdp_init(void)
- usb_musb_init();
- usb_ehci_init();
- hsmmc_init(mmc);
-+ sdp3430_display_init();
- }
-
- static void __init omap_3430sdp_map_io(void)
- {
-+ omap_board_config = sdp3430_config;
-+ omap_board_config_size = ARRAY_SIZE(sdp3430_config);
-+
- omap2_set_globals_343x();
- omap2_map_common_io();
- }
---
-1.5.6.3
-
diff --git a/packages/linux/linux-omap/mru-add-clk-get-parent.diff b/packages/linux/linux-omap/mru-add-clk-get-parent.diff
deleted file mode 100644
index 4488b311a0..0000000000
--- a/packages/linux/linux-omap/mru-add-clk-get-parent.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-From 2414b5ac7596904dd8951619316b63d644f544db Mon Sep 17 00:00:00 2001
-From: Mans Rullgard <mans@mansr.com>
-Date: Tue, 22 Jul 2008 01:58:18 +0100
-Subject: [PATCH] ARM: OMAP: add clk_get_parent() for OMAP2/3
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
- arch/arm/mach-omap2/clock.c | 5 +++++
- arch/arm/mach-omap2/clock.h | 1 +
- arch/arm/mach-omap2/clock24xx.c | 1 +
- arch/arm/mach-omap2/clock34xx.c | 1 +
- 4 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
-index c3af24e..9e502a0 100644
---- a/arch/arm/mach-omap2/clock.c
-+++ b/arch/arm/mach-omap2/clock.c
-@@ -817,6 +817,11 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
- return 0;
- }
-
-+struct clk *omap2_clk_get_parent(struct clk *clk)
-+{
-+ return clk->parent;
-+}
-+
- /* DPLL rate rounding code */
-
- /**
-diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
-index bcb0c03..a5183d0 100644
---- a/arch/arm/mach-omap2/clock.h
-+++ b/arch/arm/mach-omap2/clock.h
-@@ -29,6 +29,7 @@ int omap2_clk_set_rate(struct clk *clk, unsigned long rate);
- int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent);
- int omap2_dpll_set_rate_tolerance(struct clk *clk, unsigned int tolerance);
- long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate);
-+struct clk *omap2_clk_get_parent(struct clk *clk);
-
- #ifdef CONFIG_OMAP_RESET_CLOCKS
- void omap2_clk_disable_unused(struct clk *clk);
-diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
-index a54f10f..4382e60 100644
---- a/arch/arm/mach-omap2/clock24xx.c
-+++ b/arch/arm/mach-omap2/clock24xx.c
-@@ -416,6 +416,7 @@ static struct clk_functions omap2_clk_functions = {
- .clk_round_rate = omap2_clk_round_rate,
- .clk_set_rate = omap2_clk_set_rate,
- .clk_set_parent = omap2_clk_set_parent,
-+ .clk_get_parent = omap2_clk_get_parent,
- .clk_disable_unused = omap2_clk_disable_unused,
- #ifdef CONFIG_CPU_FREQ
- .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table,
-diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
-index cc43f4f..2a1a6b1 100644
---- a/arch/arm/mach-omap2/clock34xx.c
-+++ b/arch/arm/mach-omap2/clock34xx.c
-@@ -635,6 +635,7 @@ static struct clk_functions omap2_clk_functions = {
- .clk_round_rate = omap2_clk_round_rate,
- .clk_set_rate = omap2_clk_set_rate,
- .clk_set_parent = omap2_clk_set_parent,
-+ .clk_get_parent = omap2_clk_get_parent,
- .clk_disable_unused = omap2_clk_disable_unused,
- };
-
---
-1.5.6.3
-
diff --git a/packages/linux/linux-omap/mru-make-dpll4-m4-ck-programmable.diff b/packages/linux/linux-omap/mru-make-dpll4-m4-ck-programmable.diff
deleted file mode 100644
index 85f9cc3129..0000000000
--- a/packages/linux/linux-omap/mru-make-dpll4-m4-ck-programmable.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-From 38e48da3c27d38b05bed4572930240e73e4dfb22 Mon Sep 17 00:00:00 2001
-From: Mans Rullgard <mans@mansr.com>
-Date: Tue, 22 Jul 2008 01:31:11 +0100
-Subject: [PATCH] ARM: OMAP: make dpll4_m4_ck programmable with clk_set_rate()
-
-Filling the set_rate and round_rate fields of dpll4_m4_ck makes
-this clock programmable through clk_set_rate(). This is needed
-to give omapfb control over the dss1_alwon_fck rate.
----
- arch/arm/mach-omap2/clock34xx.h | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
-index 08789c8..1032577 100644
---- a/arch/arm/mach-omap2/clock34xx.h
-+++ b/arch/arm/mach-omap2/clock34xx.h
-@@ -821,6 +821,8 @@ static struct clk dpll4_m4_ck = {
- PARENT_CONTROLS_CLOCK,
- .clkdm = { .name = "dpll4_clkdm" },
- .recalc = &omap2_clksel_recalc,
-+ .set_rate = &omap2_clksel_set_rate,
-+ .round_rate = &omap2_clksel_round_rate,
- };
-
- /* The PWRDN bit is apparently only available on 3430ES2 and above */
---
-1.5.6.3
-
diff --git a/packages/linux/linux-omap_git.bb b/packages/linux/linux-omap_git.bb
index 390199d43e..8aca34a8b3 100644
--- a/packages/linux/linux-omap_git.bb
+++ b/packages/linux/linux-omap_git.bb
@@ -6,9 +6,9 @@ KERNEL_IMAGETYPE = "uImage"
COMPATIBLE_MACHINE = "omap5912osk|omap1710h3|omap2430sdp|omap2420h4|beagleboard|omap3evm"
-SRCREV = "75b7ae0e97f0862a13df9a6ac036ad0865b6703d"
+SRCREV = "014ba70469e889ebb74516052c43fd06a419b17b"
-PV = "2.6.27+2.6.28-rc6+${PR}+gitr${SRCREV}"
+PV = "2.6.27+2.6.28-rc7+${PR}+gitr${SRCREV}"
#PV = "2.6.27+${PR}+gitr${SRCREV}"
PR = "r3"
@@ -23,8 +23,6 @@ SRC_URI_append = " \
file://musb-support-high-bandwidth.patch.eml;patch=1 \
file://mru-fix-timings.diff;patch=1 \
file://mru-fix-display-panning.diff;patch=1 \
- file://mru-make-dpll4-m4-ck-programmable.diff;patch=1 \
- file://mru-add-clk-get-parent.diff;patch=1 \
file://mru-improve-pixclock-config.diff;patch=1 \
file://mru-make-video-timings-selectable.diff;patch=1 \
file://mru-enable-overlay-optimalization.diff;patch=1 \
@@ -38,7 +36,6 @@ SRC_URI_append = " \
file://0007-DSS-support-for-Beagle-Board.patch;patch=1 \
file://0008-DSS-BEAGLE-Enable-DSS-in-beagle-defconfig.patch;patch=1 \
file://0009-DSS-Sharp-LS037V7DW01-LCD-Panel-driver.patch;patch=1 \
- file://0010-DSS-Support-for-OMAP3-SDP-board.patch;patch=1 \
file://0011-DSS-Support-for-OMAP3-EVM-board.patch;patch=1 \
http://www.bat.org/~tomba/git/0001-DSS-OMAPFB-Check-that-var-pixclock-is-not-zero.patch;patch=1 \
"