9
0
Fork 0

at91sam9m10ihd: add lcd support

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2013-01-27 12:20:47 +01:00 committed by Sascha Hauer
parent 6d8a951667
commit 9d8cef4687
3 changed files with 79 additions and 0 deletions

View File

@ -0,0 +1,8 @@
#!/bin/sh
splash=/env/splash.png
if [ -f ${splash} -a -e /dev/fb0 ]; then
splash -o ${splash}
fb0.enable=1
fi

View File

@ -173,6 +173,71 @@ static int at91sam9m10g45ek_mem_init(void)
}
mem_initcall(at91sam9m10g45ek_mem_init);
#if defined(CONFIG_DRIVER_VIDEO_ATMEL)
static int ek_gpio_request_output(int gpio, const char *name)
{
int ret;
ret = gpio_request(gpio, name);
if (ret) {
pr_err("%s: can not request gpio %d (%d)\n", name, gpio, ret);
return ret;
}
ret = gpio_direction_output(gpio, 1);
if (ret)
pr_err("%s: can not configure gpio %d as output (%d)\n", name, gpio, ret);
return ret;
}
static struct fb_videomode at91fb_default_monspecs[] = {
{
.name = "MULTEK",
.refresh = 60,
.xres = 800, .yres = 480,
.pixclock = KHZ2PICOS(15000),
.left_margin = 40, .right_margin = 40,
.upper_margin = 29, .lower_margin = 13,
.hsync_len = 48, .vsync_len = 3,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED,
},
};
#define AT91SAM9G45_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
| ATMEL_LCDC_DISTYPE_TFT \
| ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
static void at91_lcdc_power_control(int on)
{
gpio_set_value(AT91_PIN_PE6, on);
}
/* Driver datas */
static struct atmel_lcdfb_platform_data ek_lcdc_data = {
.lcdcon_is_backlight = true,
.default_bpp = 16,
.default_dmacon = ATMEL_LCDC_DMAEN,
.default_lcdcon2 = AT91SAM9G45_DEFAULT_LCDCON2,
.guard_time = 9,
.lcd_wiring_mode = ATMEL_LCDC_WIRING_RGB,
.mode_list = at91fb_default_monspecs,
.num_modes = ARRAY_SIZE(at91fb_default_monspecs),
};
static void ek_add_device_lcd(void)
{
if (ek_gpio_request_output(AT91_PIN_PE6, "lcdc_power"))
return;
at91_add_device_lcdc(&ek_lcdc_data);
}
#else
static void ek_add_device_lcd(void) {}
#endif
static void ek_add_device_w1(void)
{
at91_set_gpio_input(w1_pdata.pin, 0);
@ -191,6 +256,7 @@ static int at91sam9m10ihd_devices_init(void)
ek_add_device_spi();
ek_add_device_i2c();
ek_add_device_usb();
ek_add_device_lcd();
devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw");
dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap");

View File

@ -6,6 +6,7 @@ CONFIG_AEABI=y
CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
CONFIG_PBL_IMAGE=y
CONFIG_MMU=y
CONFIG_MALLOC_SIZE=0xa00000
CONFIG_MALLOC_TLSF=y
CONFIG_PROMPT="9M10IHD:"
CONFIG_LONGHELP=y
@ -45,6 +46,7 @@ CONFIG_CMD_GO=y
CONFIG_CMD_OFTREE=y
CONFIG_CMD_MTEST=y
CONFIG_CMD_MTEST_ALTERNATIVE=y
CONFIG_CMD_SPLASH=y
CONFIG_CMD_TIMEOUT=y
CONFIG_CMD_PARTITION=y
CONFIG_CMD_MAGICVAR=y
@ -78,6 +80,8 @@ CONFIG_USB=y
CONFIG_USB_EHCI=y
CONFIG_USB_EHCI_ATMEL=y
CONFIG_USB_STORAGE=y
CONFIG_VIDEO=y
CONFIG_DRIVER_VIDEO_ATMEL=y
CONFIG_MCI=y
CONFIG_MCI_STARTUP=y
CONFIG_MCI_ATMEL=y
@ -92,3 +96,4 @@ CONFIG_FS_TFTP=y
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
CONFIG_FS_FAT_LFN=y
CONFIG_PNG=y