diff options
Diffstat (limited to 'board/htkw/mcx/mcx.c')
| -rw-r--r-- | board/htkw/mcx/mcx.c | 48 | 
1 files changed, 38 insertions, 10 deletions
| diff --git a/board/htkw/mcx/mcx.c b/board/htkw/mcx/mcx.c index 7c9d34ab8..9fe6408ec 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 @@ -37,12 +39,16 @@  DECLARE_GLOBAL_DATA_PTR; -#define HOT_WATER_BUTTON	38 +#define HOT_WATER_BUTTON	42 +#define LCD_OUTPUT		55 + +/* Address of the framebuffer in RAM. */ +#define FB_START_ADDRESS 0x88000000  #ifdef CONFIG_USB_EHCI  static struct omap_usbhs_board_data usbhs_bdata = {  	.port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, -	.port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, +	.port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,  	.port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,  }; @@ -67,6 +73,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;  } @@ -87,6 +95,7 @@ int board_late_init(void)  		return 0;  	setenv("bootcmd", "run swupdate"); +  	return 0;  }  #endif @@ -109,15 +118,34 @@ int board_mmc_init(bd_t *bis)  }  #endif -#ifdef CONFIG_USB_EHCI_OMAP -#define USB_HOST_PWR_EN		132 -int board_usb_init(void) +#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)  { -	if (gpio_request(USB_HOST_PWR_EN, "USB_HOST_PWR_EN") < 0) { -		puts("Failed to get USB_HOST_PWR_EN pin\n"); -		return -ENODEV; -	} -	gpio_direction_output(USB_HOST_PWR_EN, 1); +	struct prcm *prcm_base = (struct prcm *)PRCM_BASE; +	void *fb; + +	fb = (void *)FB_START_ADDRESS; + +	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;  } |