1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-30 17:40:16 +02:00

omap24xx: Fix n810 LCD initialization

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28685 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
mb 2011-10-30 20:31:45 +00:00
parent bcb479b352
commit e77f6c670d
4 changed files with 75 additions and 21 deletions

View File

@ -1,7 +1,7 @@
Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
===================================================================
--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:31:54.096705150 +0100
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:34:46.537525210 +0100
--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:04:56.008818251 +0100
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:14:31.600257909 +0100
@@ -15,8 +15,11 @@
#include <linux/delay.h>
#include <linux/gpio.h>
@ -137,7 +137,7 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
Index: linux-3.1/include/linux/platform_data/cbus.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.1/include/linux/platform_data/cbus.h 2011-10-30 19:31:55.452679772 +0100
+++ linux-3.1/include/linux/platform_data/cbus.h 2011-10-30 21:05:07.540709042 +0100
@@ -0,0 +1,38 @@
+/*
+ * cbus.h - CBUS platform_data definition

View File

@ -1,7 +1,7 @@
Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
===================================================================
--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:31:22.825292085 +0100
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 19:31:25.817235793 +0100
--- linux-3.1.orig/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:14:31.600257909 +0100
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0.c 2011-10-30 21:14:46.712140689 +0100
@@ -24,6 +24,7 @@
#include <linux/spi/spi.h>
#include <linux/usb/musb.h>
@ -127,8 +127,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0.c
Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c 2011-10-30 19:31:25.817235793 +0100
@@ -0,0 +1,229 @@
+++ linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c 2011-10-30 21:14:46.712140689 +0100
@@ -0,0 +1,231 @@
+/*
+ * linux/arch/arm/mach-omap2/board-n8x0.c
+ *
@ -208,6 +208,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
+
+ dev_set_drvdata(pd->dev, pd);
+ tahvo_pwm = pd;
+
+ return 0;
+}
+
+static struct platform_driver n8x0_tahvo_pwm_driver = {
@ -360,8 +362,8 @@ Index: linux-3.1/arch/arm/mach-omap2/board-n8x0-lcd.c
+}
Index: linux-3.1/arch/arm/mach-omap2/Makefile
===================================================================
--- linux-3.1.orig/arch/arm/mach-omap2/Makefile 2011-10-30 19:14:57.705562343 +0100
+++ linux-3.1/arch/arm/mach-omap2/Makefile 2011-10-30 19:31:25.817235793 +0100
--- linux-3.1.orig/arch/arm/mach-omap2/Makefile 2011-10-30 21:14:31.608257847 +0100
+++ linux-3.1/arch/arm/mach-omap2/Makefile 2011-10-30 21:14:46.712140689 +0100
@@ -209,6 +209,7 @@ obj-$(CONFIG_MACH_OMAP_3430SDP) += boar
hsmmc.o \
board-flash.o
@ -370,15 +372,3 @@ Index: linux-3.1/arch/arm/mach-omap2/Makefile
obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \
sdram-nokia.o \
hsmmc.o
Index: linux-3.1/arch/arm/mach-omap2/omap_hwmod_2420_data.c
===================================================================
--- linux-3.1.orig/arch/arm/mach-omap2/omap_hwmod_2420_data.c 2011-10-30 19:14:57.689562700 +0100
+++ linux-3.1/arch/arm/mach-omap2/omap_hwmod_2420_data.c 2011-10-30 19:31:25.817235793 +0100
@@ -1181,6 +1181,7 @@ static struct omap_hwmod_ocp_if *omap242
static struct omap_hwmod omap2420_gpio1_hwmod = {
.name = "gpio1",
+ .flags = HWMOD_INIT_NO_RESET, /* Workaround: Don't reset the n810 MIPID */
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.mpu_irqs = omap2_gpio1_irqs,
.main_clk = "gpios_fck",

View File

@ -0,0 +1,34 @@
Index: linux-3.1/drivers/video/omap/dispc.c
===================================================================
--- linux-3.1.orig/drivers/video/omap/dispc.c 2011-10-30 21:14:30.228268542 +0100
+++ linux-3.1/drivers/video/omap/dispc.c 2011-10-30 21:14:49.416119695 +0100
@@ -922,14 +922,14 @@ static int get_dss_clocks(void)
return PTR_ERR(dispc.dss_ick);
}
- dispc.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "fck");
+ dispc.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss1_fck");
if (IS_ERR(dispc.dss1_fck)) {
dev_err(dispc.fbdev->dev, "can't get dss1_fck\n");
clk_put(dispc.dss_ick);
return PTR_ERR(dispc.dss1_fck);
}
- dispc.dss_54m_fck = clk_get(&dispc.fbdev->dssdev->dev, "tv_clk");
+ dispc.dss_54m_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss_54m_fck");
if (IS_ERR(dispc.dss_54m_fck)) {
dev_err(dispc.fbdev->dev, "can't get tv_fck\n");
clk_put(dispc.dss_ick);
Index: linux-3.1/drivers/video/omap/rfbi.c
===================================================================
--- linux-3.1.orig/drivers/video/omap/rfbi.c 2011-10-30 21:14:30.220268604 +0100
+++ linux-3.1/drivers/video/omap/rfbi.c 2011-10-30 21:14:49.416119695 +0100
@@ -90,7 +90,7 @@ static int rfbi_get_clocks(void)
return PTR_ERR(rfbi.dss_ick);
}
- rfbi.dss1_fck = clk_get(&rfbi.fbdev->dssdev->dev, "fck");
+ rfbi.dss1_fck = clk_get(&rfbi.fbdev->dssdev->dev, "dss1_fck");
if (IS_ERR(rfbi.dss1_fck)) {
dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n");
clk_put(rfbi.dss_ick);

View File

@ -0,0 +1,30 @@
Index: linux-3.1/arch/arm/mach-omap2/omap_hwmod.c
===================================================================
--- linux-3.1.orig/arch/arm/mach-omap2/omap_hwmod.c 2011-10-30 21:20:19.205515660 +0100
+++ linux-3.1/arch/arm/mach-omap2/omap_hwmod.c 2011-10-30 21:28:16.769945954 +0100
@@ -145,6 +145,8 @@
#include <plat/omap_hwmod.h>
#include <plat/prcm.h>
+#include <asm/mach-types.h>
+
#include "cm2xxx_3xxx.h"
#include "cminst44xx.h"
#include "prm2xxx_3xxx.h"
@@ -1704,6 +1706,16 @@ static int _setup(struct omap_hwmod *oh,
oh->_state = _HWMOD_STATE_INITIALIZED;
+ if (machine_is_nokia770() ||
+ machine_is_nokia_n800() ||
+ machine_is_nokia_n810() ||
+ machine_is_nokia_n810_wimax()) {
+ /* Nokia N-series workaround: Don't reset any hwmod. Some drivers expect
+ * the NOLO bootloader initializations to be effective. */
+ oh->flags |= HWMOD_INIT_NO_RESET;
+ printk_once(KERN_INFO "Nokia N-series HWMOD_INIT_NO_RESET workaround enabled\n");
+ }
+
/*
* In the case of hwmod with hardreset that should not be
* de-assert at boot time, we have to keep the module