diff mbox

[U-Boot,v1,4/4] OMAP3: add video support to the mcx board

Message ID 1350396426-11400-4-git-send-email-sbabic@denx.de
State Changes Requested
Delegated to: Tom Rini
Headers show

Commit Message

Stefano Babic Oct. 16, 2012, 2:07 p.m. UTC
Add video support to the board with the display
focaltech etm070003dh6.

Signed-off-by: Stefano Babic <sbabic@denx.de>
---
 board/htkw/mcx/mcx.c  |   38 ++++++++++++++++++++++++++++++++++++++
 board/htkw/mcx/mcx.h  |    2 ++
 include/configs/mcx.h |   16 +++++++++++++++-
 3 files changed, 55 insertions(+), 1 deletion(-)

Comments

Tom Rini Oct. 17, 2012, 10:58 p.m. UTC | #1
On Tue, Oct 16, 2012 at 04:07:06PM +0200, Stefano Babic wrote:

> Add video support to the board with the display
> focaltech etm070003dh6.
> 
> Signed-off-by: Stefano Babic <sbabic@denx.de>
[snip]
> +int board_video_init(void)
> +{
> +	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
> +	void *fb;
> +
> +	fb = (void *)0x88000000;

What's at this magic location in DDR?  #define please, thanks.
diff mbox

Patch

diff --git a/board/htkw/mcx/mcx.c b/board/htkw/mcx/mcx.c
index 1f9840c..cfb74a2 100644
--- a/board/htkw/mcx/mcx.c
+++ b/board/htkw/mcx/mcx.c
@@ -27,6 +27,8 @@ 
 #include <asm/mach-types.h>
 #include <asm/gpio.h>
 #include <asm/omap_gpio.h>
+#include <asm/arch/dss.h>
+#include <asm/arch/clocks.h>
 #include "errno.h"
 #include <i2c.h>
 #ifdef CONFIG_USB_EHCI
@@ -38,6 +40,7 @@ 
 DECLARE_GLOBAL_DATA_PTR;
 
 #define HOT_WATER_BUTTON	42
+#define LCD_OUTPUT		55
 
 #ifdef CONFIG_USB_EHCI
 static struct omap_usbhs_board_data usbhs_bdata = {
@@ -67,6 +70,8 @@  int board_init(void)
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
+	gpio_direction_output(LCD_OUTPUT, 0);
+
 	return 0;
 }
 
@@ -109,3 +114,36 @@  int board_mmc_init(bd_t *bis)
 	return omap_mmc_init(0, 0, 0);
 }
 #endif
+
+#if defined(CONFIG_VIDEO) && !defined(CONFIG_SPL_BUILD)
+
+static struct panel_config lcd_cfg = {
+	.timing_h       = PANEL_TIMING_H(40, 40, 48),
+	.timing_v       = PANEL_TIMING_V(29, 13, 3),
+	.pol_freq       = 0x00003000, /* Pol Freq */
+	.divisor        = 0x0001000E,
+	.panel_type     = 0x01, /* TFT */
+	.data_lines     = 0x03, /* 24 Bit RGB */
+	.load_mode      = 0x02, /* Frame Mode */
+	.panel_color	= 0,
+	.lcd_size	= PANEL_LCD_SIZE(800, 480),
+};
+
+int board_video_init(void)
+{
+	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
+	void *fb;
+
+	fb = (void *)0x88000000;
+
+	lcd_cfg.frame_buffer = fb;
+
+	setbits_le32(&prcm_base->fclken_dss, FCK_DSS_ON);
+	setbits_le32(&prcm_base->iclken_dss, ICK_DSS_ON);
+
+	omap3_dss_panel_config(&lcd_cfg);
+	omap3_dss_enable();
+
+	return 0;
+}
+#endif
diff --git a/board/htkw/mcx/mcx.h b/board/htkw/mcx/mcx.h
index f9601c6..0d4c642 100644
--- a/board/htkw/mcx/mcx.h
+++ b/board/htkw/mcx/mcx.h
@@ -264,6 +264,8 @@  const omap3_sysinfo sysinfo = {
 	MUX_VAL(CP(I2C3_SDA),		(IEN  | PTU | EN  | M0)) \
 	MUX_VAL(CP(I2C4_SCL),		(IEN  | PTU | EN  | M0)) \
 	MUX_VAL(CP(I2C4_SDA),		(IEN  | PTU | EN  | M0)) \
+	MUX_VAL(CP(HDQ_SIO),		(IEN  | PTU | EN  | M4)) \
+					/* GPIO_170 Touchscreen ISR */\
 	/* McSPI */\
 	MUX_VAL(CP(MCSPI1_CLK),		(IEN  | PTD | DIS | M0)) \
 	MUX_VAL(CP(MCSPI1_SIMO),	(IEN  | PTD | DIS | M0)) \
diff --git a/include/configs/mcx.h b/include/configs/mcx.h
index 96e1059..bf49cc1 100644
--- a/include/configs/mcx.h
+++ b/include/configs/mcx.h
@@ -181,7 +181,7 @@ 
 #define CONFIG_JFFS2_PART_SIZE		0xf980000	/* sz of jffs2 part */
 
 /* Environment information */
-#define CONFIG_BOOTDELAY	10
+#define CONFIG_BOOTDELAY	3
 
 #define CONFIG_BOOTFILE		"uImage"
 
@@ -257,6 +257,10 @@ 
 		"ubi readvol ${loadaddr} kernel;"			\
 		"run addtty addmtd addfb addeth addmisc;"		\
 		"bootm ${loadaddr}\0"					\
+	"preboot=ubi part nand0,7;"					\
+		"ubi readvol ${loadaddr} splash;"			\
+		"bmp display ${loadaddr};"				\
+		"gpio set 55\0"						\
 	"swupdate_args=setenv bootargs root=/dev/ram "			\
 		"quiet loglevel=1 "					\
 		"consoleblank=0 ${swupdate_misc}\0"			\
@@ -303,6 +307,7 @@ 
 
 #define CONFIG_SYS_LOAD_ADDR		(OMAP34XX_SDRC_CS0) /* default load */
 								/* address */
+#define CONFIG_PREBOOT
 
 /*
  * AM3517 has 12 GP timers, they can be driven by the system clock
@@ -422,4 +427,13 @@ 
 #define CONFIG_NET_RETRY_COUNT 10
 #endif
 
+#define CONFIG_VIDEO
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_CMD_BMP
+#define CONFIG_VIDEO_OMAP3
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+
 #endif /* __CONFIG_H */